@farazirfan/costar-server-executor 1.6.1 → 1.7.0
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/dist/agent/agent.d.ts +14 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +57 -2
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/pi-embedded-runner/system-prompt.d.ts +4 -1
- package/dist/agent/pi-embedded-runner/system-prompt.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/system-prompt.js +102 -33
- package/dist/agent/pi-embedded-runner/system-prompt.js.map +1 -1
- package/dist/agent/pi-embedded-runner/tools.d.ts +10 -0
- package/dist/agent/pi-embedded-runner/tools.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/tools.js +67 -0
- package/dist/agent/pi-embedded-runner/tools.js.map +1 -1
- package/dist/config/types.d.ts +13 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/heartbeat/runner.d.ts +10 -8
- package/dist/heartbeat/runner.d.ts.map +1 -1
- package/dist/heartbeat/runner.js +124 -47
- package/dist/heartbeat/runner.js.map +1 -1
- package/dist/memory/curation-state.d.ts +51 -0
- package/dist/memory/curation-state.d.ts.map +1 -0
- package/dist/memory/curation-state.js +82 -0
- package/dist/memory/curation-state.js.map +1 -0
- package/dist/memory/curator.d.ts +73 -0
- package/dist/memory/curator.d.ts.map +1 -0
- package/dist/memory/curator.js +198 -0
- package/dist/memory/curator.js.map +1 -0
- package/dist/memory/daily-log.d.ts +56 -0
- package/dist/memory/daily-log.d.ts.map +1 -0
- package/dist/memory/daily-log.js +176 -0
- package/dist/memory/daily-log.js.map +1 -0
- package/dist/memory/index.d.ts +10 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +13 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/supabase/index.d.ts +2 -2
- package/dist/supabase/index.d.ts.map +1 -1
- package/dist/supabase/index.js +2 -2
- package/dist/supabase/index.js.map +1 -1
- package/dist/supabase/notifications.d.ts.map +1 -1
- package/dist/supabase/notifications.js +10 -1
- package/dist/supabase/notifications.js.map +1 -1
- package/dist/supabase/requests.d.ts +10 -0
- package/dist/supabase/requests.d.ts.map +1 -1
- package/dist/supabase/requests.js +34 -0
- package/dist/supabase/requests.js.map +1 -1
- package/dist/supabase/workspace-storage.d.ts +41 -0
- package/dist/supabase/workspace-storage.d.ts.map +1 -1
- package/dist/supabase/workspace-storage.js +126 -0
- package/dist/supabase/workspace-storage.js.map +1 -1
- package/dist/tools/message.d.ts +8 -2
- package/dist/tools/message.d.ts.map +1 -1
- package/dist/tools/message.js +183 -23
- package/dist/tools/message.js.map +1 -1
- package/dist/workspace/templates.d.ts +3 -3
- package/dist/workspace/templates.d.ts.map +1 -1
- package/dist/workspace/templates.js +97 -69
- package/dist/workspace/templates.js.map +1 -1
- package/dist/workspace/workspace.d.ts +2 -1
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/dist/workspace/workspace.js +19 -4
- package/dist/workspace/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -61,10 +61,17 @@ export declare class HeartbeatRunner {
|
|
|
61
61
|
*/
|
|
62
62
|
private runHeartbeatCheck;
|
|
63
63
|
/**
|
|
64
|
-
* Sync
|
|
65
|
-
*
|
|
64
|
+
* Sync ALL workspace files back to Supabase Storage (after heartbeat turn).
|
|
65
|
+
* Agent may have edited MEMORY.md, AGENTS.md, TOOLS.md, etc. during the heartbeat.
|
|
66
|
+
* Central storage must always be up to date for the client executor.
|
|
66
67
|
*/
|
|
67
|
-
private
|
|
68
|
+
private syncAllWorkspaceToStorage;
|
|
69
|
+
/**
|
|
70
|
+
* Sync ALL workspace files from Supabase Storage to local filesystem (before heartbeat).
|
|
71
|
+
* The client executor can update USER.md, SOUL.md, IDENTITY.md, HEARTBEAT.md at any time.
|
|
72
|
+
* We must pull the latest before building the system prompt for this heartbeat turn.
|
|
73
|
+
*/
|
|
74
|
+
private syncAllWorkspaceFromStorage;
|
|
68
75
|
/**
|
|
69
76
|
* Sync HEARTBEAT.md from local filesystem back to Supabase Storage (after heartbeat)
|
|
70
77
|
* Preserves any edits the AI agent made during the heartbeat turn
|
|
@@ -74,11 +81,6 @@ export declare class HeartbeatRunner {
|
|
|
74
81
|
* Check quiet hours (OpenClaw: isWithinActiveHours inverted)
|
|
75
82
|
*/
|
|
76
83
|
private isQuietHours;
|
|
77
|
-
/**
|
|
78
|
-
* Send heartbeat notification
|
|
79
|
-
* Pattern: OpenClaw's deliverOutboundPayloads (via Supabase instead of channels)
|
|
80
|
-
*/
|
|
81
|
-
private sendHeartbeatNotification;
|
|
82
84
|
/**
|
|
83
85
|
* Log heartbeat result to history (best-effort)
|
|
84
86
|
* Pattern: OpenClaw's emitHeartbeatEvent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/heartbeat/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/heartbeat/runner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA4KlD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AA4BF,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAUX;IACF,OAAO,CAAC,SAAS,CAIf;gBAGA,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,eAAe,GAAE,eAGhB;IASH;;;OAGG;IACH,KAAK,IAAI,IAAI;IAoBb;;OAEG;IACH,IAAI,IAAI,IAAI;IAgBZ;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOtC;;;OAGG;IACH,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA+B1E;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAiBlE;;;OAGG;YACW,OAAO;IAgBrB;;;OAGG;YACW,iBAAiB;IAoQ/B;;;;OAIG;YACW,yBAAyB;IAcvC;;;;OAIG;YACW,2BAA2B;IAezC;;;OAGG;YACW,sBAAsB;IAcpC;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;;OAGG;YACW,mBAAmB;IAsBjC,SAAS;;;;;;;;;;IAaH,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAK9C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAQnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,YAAY,EACpB,eAAe,CAAC,EAAE,eAAe,GAChC,eAAe,CAEjB"}
|
package/dist/heartbeat/runner.js
CHANGED
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
import cron from "node-cron";
|
|
7
7
|
import fs from "node:fs";
|
|
8
8
|
import path from "node:path";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { createHeartbeatHistory } from "../supabase/notifications.js";
|
|
10
|
+
import { syncLocalFileToStorage, syncAllLocalFilesToStorage, syncWorkspaceToLocal } from "../supabase/workspace-storage.js";
|
|
11
11
|
import { isSupabaseInitialized } from "../supabase/client.js";
|
|
12
|
+
import { loadCurationState, saveCurationState, shouldPrune, fetchUnprocessedData, buildCurationDigest, buildCurationPrompt, updatedCursors, pruneOldDailyLogs, pruneOldDailyLogsFromStorage, ensureMemoryDir, } from "../memory/index.js";
|
|
12
13
|
// ---------- constants (from OpenClaw auto-reply/heartbeat.ts) ----------
|
|
13
14
|
/**
|
|
14
15
|
* OpenClaw heartbeat prompt - keep it tight, avoid the model inventing tasks
|
|
@@ -318,23 +319,81 @@ export class HeartbeatRunner {
|
|
|
318
319
|
await this.logHeartbeatHistory(result);
|
|
319
320
|
return result;
|
|
320
321
|
}
|
|
321
|
-
// 2a. Sync
|
|
322
|
-
//
|
|
322
|
+
// 2a. Sync ALL workspace files from Supabase Storage (source of truth).
|
|
323
|
+
// The client executor can update USER.md, SOUL.md, IDENTITY.md, HEARTBEAT.md
|
|
324
|
+
// at any time — we must pull the latest before building the system prompt.
|
|
323
325
|
const isExecEvent = reason === "exec-event";
|
|
324
326
|
const heartbeatFilePath = path.join(this.workspaceDir, "HEARTBEAT.md");
|
|
325
|
-
await this.
|
|
326
|
-
// 2b.
|
|
327
|
+
await this.syncAllWorkspaceFromStorage();
|
|
328
|
+
// 2b. Memory curation: load cursors and check for new data
|
|
329
|
+
// This MUST run before the empty-heartbeat skip so we don't miss curation
|
|
330
|
+
// when HEARTBEAT.md is empty but new user activity exists.
|
|
331
|
+
let curationState = null;
|
|
332
|
+
let curationPromptText = "";
|
|
333
|
+
let didCurate = false;
|
|
334
|
+
const userId = this.config.agent?.userId || "default";
|
|
335
|
+
if (isSupabaseInitialized() && !isExecEvent) {
|
|
336
|
+
try {
|
|
337
|
+
// Ensure memory/ dir exists
|
|
338
|
+
ensureMemoryDir(this.workspaceDir);
|
|
339
|
+
curationState = loadCurationState(this.workspaceDir);
|
|
340
|
+
const maxConversations = this.config.memory?.maxConversationsPerDigest ?? 20;
|
|
341
|
+
const delta = await fetchUnprocessedData(userId, this.workspaceDir, curationState, maxConversations);
|
|
342
|
+
if (delta.hasNewData) {
|
|
343
|
+
const maxDigestChars = this.config.memory?.maxDigestChars ?? 3000;
|
|
344
|
+
const digest = buildCurationDigest(delta, maxDigestChars);
|
|
345
|
+
curationPromptText = buildCurationPrompt(digest);
|
|
346
|
+
didCurate = true;
|
|
347
|
+
console.log(`[HEARTBEAT] Curation delta: ${delta.newConversations.length} conversations, ` +
|
|
348
|
+
`${delta.newLogContent.length} bytes of new log content`);
|
|
349
|
+
// Pre-compute updated cursors (saved after heartbeat completes)
|
|
350
|
+
curationState = updatedCursors(curationState, delta, this.workspaceDir);
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
console.log("[HEARTBEAT] No new data for curation — skipping");
|
|
354
|
+
}
|
|
355
|
+
// 2c. Prune old daily logs once per day
|
|
356
|
+
if (shouldPrune(curationState)) {
|
|
357
|
+
const keepDays = this.config.memory?.dailyLogRetentionDays ?? 7;
|
|
358
|
+
try {
|
|
359
|
+
pruneOldDailyLogs(this.workspaceDir, keepDays);
|
|
360
|
+
await pruneOldDailyLogsFromStorage(userId, keepDays);
|
|
361
|
+
curationState = {
|
|
362
|
+
...curationState,
|
|
363
|
+
lastPrunedAt: new Date().toISOString(),
|
|
364
|
+
};
|
|
365
|
+
console.log("[HEARTBEAT] Daily log pruning completed");
|
|
366
|
+
}
|
|
367
|
+
catch (pruneErr) {
|
|
368
|
+
console.warn("[HEARTBEAT] Daily log pruning failed (non-critical):", pruneErr);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
console.warn("[HEARTBEAT] Memory curation setup failed (non-critical):", err);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// 2d. Check if HEARTBEAT.md is effectively empty (OpenClaw pattern: save API calls)
|
|
377
|
+
// Skip ONLY if: empty heartbeat AND no exec event AND no system events AND no curation data
|
|
378
|
+
// This ensures heartbeats still run for curation/proactive signals even when HEARTBEAT.md is empty.
|
|
327
379
|
try {
|
|
328
380
|
if (fs.existsSync(heartbeatFilePath)) {
|
|
329
381
|
const content = fs.readFileSync(heartbeatFilePath, "utf-8");
|
|
330
|
-
if (isHeartbeatContentEffectivelyEmpty(content) && !isExecEvent && this.state.systemEvents.length === 0) {
|
|
331
|
-
console.log("[HEARTBEAT] HEARTBEAT.md is effectively empty, skipping");
|
|
382
|
+
if (isHeartbeatContentEffectivelyEmpty(content) && !isExecEvent && this.state.systemEvents.length === 0 && !didCurate) {
|
|
383
|
+
console.log("[HEARTBEAT] HEARTBEAT.md is effectively empty and no new data, skipping");
|
|
332
384
|
const result = {
|
|
333
385
|
status: "skipped",
|
|
334
386
|
reason: "empty-heartbeat-file",
|
|
335
387
|
duration: Date.now() - startTime,
|
|
336
388
|
executedAt,
|
|
337
389
|
};
|
|
390
|
+
// Still save curation state if pruning happened
|
|
391
|
+
if (curationState) {
|
|
392
|
+
try {
|
|
393
|
+
saveCurationState(this.workspaceDir, curationState);
|
|
394
|
+
}
|
|
395
|
+
catch { }
|
|
396
|
+
}
|
|
338
397
|
await this.logHeartbeatHistory(result);
|
|
339
398
|
return result;
|
|
340
399
|
}
|
|
@@ -343,7 +402,6 @@ export class HeartbeatRunner {
|
|
|
343
402
|
catch {
|
|
344
403
|
// File doesn't exist or can't be read - proceed with heartbeat
|
|
345
404
|
}
|
|
346
|
-
console.log(`[HEARTBEAT] Running heartbeat check (reason: ${reason || "scheduled"})...`);
|
|
347
405
|
// 3. Build prompt (OpenClaw pattern: exec event vs standard heartbeat)
|
|
348
406
|
let heartbeatPrompt;
|
|
349
407
|
if (isExecEvent) {
|
|
@@ -357,6 +415,10 @@ export class HeartbeatRunner {
|
|
|
357
415
|
else {
|
|
358
416
|
heartbeatPrompt = HEARTBEAT_PROMPT;
|
|
359
417
|
}
|
|
418
|
+
// Append curation instructions if there's new data
|
|
419
|
+
if (curationPromptText) {
|
|
420
|
+
heartbeatPrompt += `\n\n${curationPromptText}`;
|
|
421
|
+
}
|
|
360
422
|
try {
|
|
361
423
|
// 4. Execute heartbeat via agent using the constructed prompt
|
|
362
424
|
const agentResult = isExecEvent
|
|
@@ -376,8 +438,20 @@ export class HeartbeatRunner {
|
|
|
376
438
|
await this.logHeartbeatHistory(result);
|
|
377
439
|
return result;
|
|
378
440
|
}
|
|
379
|
-
// 4b.
|
|
441
|
+
// 4b. Save curation state if curation ran (update cursors for next cycle)
|
|
442
|
+
if (didCurate && curationState) {
|
|
443
|
+
try {
|
|
444
|
+
saveCurationState(this.workspaceDir, curationState);
|
|
445
|
+
}
|
|
446
|
+
catch (saveErr) {
|
|
447
|
+
console.warn("[HEARTBEAT] Failed to save curation state:", saveErr);
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
// 4c. Sync ALL workspace files back to Storage (agent may have edited
|
|
451
|
+
// HEARTBEAT.md, MEMORY.md, AGENTS.md, etc. during the heartbeat turn).
|
|
452
|
+
// The per-tool auto-sync handles individual writes, but this is a safety net.
|
|
380
453
|
await this.syncHeartbeatToStorage(heartbeatFilePath);
|
|
454
|
+
await this.syncAllWorkspaceToStorage();
|
|
381
455
|
// 5. Process response (OpenClaw pattern: stripHeartbeatToken)
|
|
382
456
|
const response = agentResult.response?.trim() || "";
|
|
383
457
|
const stripped = stripHeartbeatToken(response);
|
|
@@ -412,20 +486,22 @@ export class HeartbeatRunner {
|
|
|
412
486
|
await this.logHeartbeatHistory(result);
|
|
413
487
|
return result;
|
|
414
488
|
}
|
|
415
|
-
// 7.
|
|
416
|
-
|
|
489
|
+
// 7. Log response to history (notifications are handled exclusively by the message tool)
|
|
490
|
+
// The agent uses the `message` tool to send user-facing notifications during its turn.
|
|
491
|
+
// We no longer auto-send heartbeat responses as notifications — this prevents
|
|
492
|
+
// self-narration, bad titles ("Heartbeat Alert"), and unstructured content from
|
|
493
|
+
// reaching the user. The response is still logged for debugging/history.
|
|
494
|
+
console.log("[HEARTBEAT] Heartbeat completed with response (logged, not auto-sent)");
|
|
417
495
|
console.log(`[HEARTBEAT] Response: ${normalizedText.slice(0, 200)}...`);
|
|
418
|
-
|
|
419
|
-
this.state.totalNotifications++;
|
|
420
|
-
// Record for dedup
|
|
496
|
+
// Record for dedup (still useful to detect repeated agent responses)
|
|
421
497
|
this.state.lastHeartbeatText = normalizedText;
|
|
422
498
|
this.state.lastHeartbeatSentAt = startTime;
|
|
423
499
|
const result = {
|
|
424
500
|
status: "ran",
|
|
425
|
-
reason: "
|
|
501
|
+
reason: "completed",
|
|
426
502
|
response: normalizedText,
|
|
427
503
|
duration,
|
|
428
|
-
notificationSent:
|
|
504
|
+
notificationSent: false,
|
|
429
505
|
executedAt,
|
|
430
506
|
};
|
|
431
507
|
await this.logHeartbeatHistory(result);
|
|
@@ -450,24 +526,42 @@ export class HeartbeatRunner {
|
|
|
450
526
|
// HELPERS
|
|
451
527
|
// ═══════════════════════════════════════════════════
|
|
452
528
|
/**
|
|
453
|
-
* Sync
|
|
454
|
-
*
|
|
529
|
+
* Sync ALL workspace files back to Supabase Storage (after heartbeat turn).
|
|
530
|
+
* Agent may have edited MEMORY.md, AGENTS.md, TOOLS.md, etc. during the heartbeat.
|
|
531
|
+
* Central storage must always be up to date for the client executor.
|
|
455
532
|
*/
|
|
456
|
-
async
|
|
533
|
+
async syncAllWorkspaceToStorage() {
|
|
457
534
|
if (!isSupabaseInitialized())
|
|
458
535
|
return;
|
|
459
536
|
const userId = this.config.agent?.userId || "default";
|
|
460
537
|
try {
|
|
461
|
-
const
|
|
462
|
-
if (
|
|
463
|
-
|
|
464
|
-
console.log("[HEARTBEAT] Synced HEARTBEAT.md from Storage (source of truth)");
|
|
538
|
+
const result = await syncAllLocalFilesToStorage(userId, this.workspaceDir);
|
|
539
|
+
if (result.uploaded.length > 0) {
|
|
540
|
+
console.log(`[HEARTBEAT] Post-turn sync: uploaded ${result.uploaded.join(", ")}`);
|
|
465
541
|
}
|
|
466
|
-
// If null (not in Storage), keep existing local copy or let template creation handle it
|
|
467
542
|
}
|
|
468
543
|
catch (err) {
|
|
469
|
-
console.warn("[HEARTBEAT]
|
|
470
|
-
|
|
544
|
+
console.warn("[HEARTBEAT] Post-turn workspace sync failed (non-critical):", err);
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
/**
|
|
548
|
+
* Sync ALL workspace files from Supabase Storage to local filesystem (before heartbeat).
|
|
549
|
+
* The client executor can update USER.md, SOUL.md, IDENTITY.md, HEARTBEAT.md at any time.
|
|
550
|
+
* We must pull the latest before building the system prompt for this heartbeat turn.
|
|
551
|
+
*/
|
|
552
|
+
async syncAllWorkspaceFromStorage() {
|
|
553
|
+
if (!isSupabaseInitialized())
|
|
554
|
+
return;
|
|
555
|
+
const userId = this.config.agent?.userId || "default";
|
|
556
|
+
try {
|
|
557
|
+
const result = await syncWorkspaceToLocal(userId, this.workspaceDir);
|
|
558
|
+
if (result.synced.length > 0) {
|
|
559
|
+
console.log(`[HEARTBEAT] Pulled latest workspace files: ${result.synced.join(", ")}`);
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
catch (err) {
|
|
563
|
+
console.warn("[HEARTBEAT] Failed to pull workspace from Storage (non-critical):", err);
|
|
564
|
+
// Continue with local copies — best-effort
|
|
471
565
|
}
|
|
472
566
|
}
|
|
473
567
|
/**
|
|
@@ -508,26 +602,9 @@ export class HeartbeatRunner {
|
|
|
508
602
|
}
|
|
509
603
|
return currentTime >= quietStart && currentTime < quietEnd;
|
|
510
604
|
}
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
*/
|
|
515
|
-
async sendHeartbeatNotification(response) {
|
|
516
|
-
const userId = this.config.agent?.userId || "default";
|
|
517
|
-
try {
|
|
518
|
-
await sendNotification({
|
|
519
|
-
user_id: userId,
|
|
520
|
-
type: "heartbeat",
|
|
521
|
-
title: "Heartbeat Alert",
|
|
522
|
-
message: response,
|
|
523
|
-
priority: "normal",
|
|
524
|
-
});
|
|
525
|
-
console.log("[HEARTBEAT] Notification sent successfully");
|
|
526
|
-
}
|
|
527
|
-
catch (error) {
|
|
528
|
-
console.error("[HEARTBEAT] Failed to send notification:", error);
|
|
529
|
-
}
|
|
530
|
-
}
|
|
605
|
+
// NOTE: sendHeartbeatNotification() removed — all user-facing notifications now go
|
|
606
|
+
// through the `message` tool exclusively. This prevents self-narration, bad titles,
|
|
607
|
+
// and unstructured content from reaching the user.
|
|
531
608
|
/**
|
|
532
609
|
* Log heartbeat result to history (best-effort)
|
|
533
610
|
* Pattern: OpenClaw's emitHeartbeatEvent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/heartbeat/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/heartbeat/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoStar Server Executor - Curation State (Cursors)
|
|
3
|
+
*
|
|
4
|
+
* Manages the cursor state for incremental memory curation.
|
|
5
|
+
* Stored as .curation_state.json in the workspace directory.
|
|
6
|
+
* Auto-synced to Supabase Storage by the existing workspace sync infrastructure.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Cursor state for incremental memory curation.
|
|
10
|
+
* Tracks what data has already been processed to avoid re-processing.
|
|
11
|
+
*/
|
|
12
|
+
export type CurationState = {
|
|
13
|
+
/** ID of the last processed user_requests row */
|
|
14
|
+
lastProcessedRequestId: string | null;
|
|
15
|
+
/** Timestamp of the last processed user_requests row */
|
|
16
|
+
lastProcessedRequestAt: string | null;
|
|
17
|
+
/** Date of the last processed daily log (YYYY-MM-DD) */
|
|
18
|
+
lastProcessedLogDate: string | null;
|
|
19
|
+
/** Byte size of the daily log file when last processed */
|
|
20
|
+
lastProcessedLogSize: number;
|
|
21
|
+
/** Timestamp of the last prune operation */
|
|
22
|
+
lastPrunedAt: string | null;
|
|
23
|
+
/** Total number of curation entries processed lifetime */
|
|
24
|
+
totalEntriesCurated: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Load the curation state from the workspace directory.
|
|
28
|
+
* Returns default state if the file doesn't exist.
|
|
29
|
+
*
|
|
30
|
+
* @param workspaceDir - Workspace root directory
|
|
31
|
+
* @returns Current curation state
|
|
32
|
+
*/
|
|
33
|
+
export declare function loadCurationState(workspaceDir: string): CurationState;
|
|
34
|
+
/**
|
|
35
|
+
* Save the curation state to the workspace directory.
|
|
36
|
+
* The file will be auto-synced to Supabase Storage by the existing
|
|
37
|
+
* workspace sync infrastructure.
|
|
38
|
+
*
|
|
39
|
+
* @param workspaceDir - Workspace root directory
|
|
40
|
+
* @param state - Curation state to save
|
|
41
|
+
*/
|
|
42
|
+
export declare function saveCurationState(workspaceDir: string, state: CurationState): void;
|
|
43
|
+
/**
|
|
44
|
+
* Check if daily log pruning should run.
|
|
45
|
+
* Returns true if lastPrunedAt is null or more than 24 hours ago.
|
|
46
|
+
*
|
|
47
|
+
* @param state - Current curation state
|
|
48
|
+
* @returns true if pruning should run
|
|
49
|
+
*/
|
|
50
|
+
export declare function shouldPrune(state: CurationState): boolean;
|
|
51
|
+
//# sourceMappingURL=curation-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curation-state.d.ts","sourceRoot":"","sources":["../../src/memory/curation-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,iDAAiD;IACjD,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wDAAwD;IACxD,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wDAAwD;IACxD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,0DAA0D;IAC1D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,0DAA0D;IAC1D,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAcF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAoBrE;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,GACnB,IAAI,CASN;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAQzD"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoStar Server Executor - Curation State (Cursors)
|
|
3
|
+
*
|
|
4
|
+
* Manages the cursor state for incremental memory curation.
|
|
5
|
+
* Stored as .curation_state.json in the workspace directory.
|
|
6
|
+
* Auto-synced to Supabase Storage by the existing workspace sync infrastructure.
|
|
7
|
+
*/
|
|
8
|
+
import fs from "node:fs";
|
|
9
|
+
import path from "node:path";
|
|
10
|
+
/** File name for curation state */
|
|
11
|
+
const CURATION_STATE_FILE = ".curation_state.json";
|
|
12
|
+
/**
|
|
13
|
+
* Default curation state for first-time initialization.
|
|
14
|
+
*/
|
|
15
|
+
const DEFAULT_STATE = {
|
|
16
|
+
lastProcessedRequestId: null,
|
|
17
|
+
lastProcessedRequestAt: null,
|
|
18
|
+
lastProcessedLogDate: null,
|
|
19
|
+
lastProcessedLogSize: 0,
|
|
20
|
+
lastPrunedAt: null,
|
|
21
|
+
totalEntriesCurated: 0,
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Load the curation state from the workspace directory.
|
|
25
|
+
* Returns default state if the file doesn't exist.
|
|
26
|
+
*
|
|
27
|
+
* @param workspaceDir - Workspace root directory
|
|
28
|
+
* @returns Current curation state
|
|
29
|
+
*/
|
|
30
|
+
export function loadCurationState(workspaceDir) {
|
|
31
|
+
const filePath = path.join(workspaceDir, CURATION_STATE_FILE);
|
|
32
|
+
try {
|
|
33
|
+
if (!fs.existsSync(filePath)) {
|
|
34
|
+
return { ...DEFAULT_STATE };
|
|
35
|
+
}
|
|
36
|
+
const raw = fs.readFileSync(filePath, "utf-8");
|
|
37
|
+
const parsed = JSON.parse(raw);
|
|
38
|
+
// Merge with defaults to handle schema evolution
|
|
39
|
+
return {
|
|
40
|
+
...DEFAULT_STATE,
|
|
41
|
+
...parsed,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
console.warn(`[MEMORY] Failed to load curation state, using defaults:`, err);
|
|
46
|
+
return { ...DEFAULT_STATE };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Save the curation state to the workspace directory.
|
|
51
|
+
* The file will be auto-synced to Supabase Storage by the existing
|
|
52
|
+
* workspace sync infrastructure.
|
|
53
|
+
*
|
|
54
|
+
* @param workspaceDir - Workspace root directory
|
|
55
|
+
* @param state - Curation state to save
|
|
56
|
+
*/
|
|
57
|
+
export function saveCurationState(workspaceDir, state) {
|
|
58
|
+
const filePath = path.join(workspaceDir, CURATION_STATE_FILE);
|
|
59
|
+
try {
|
|
60
|
+
fs.writeFileSync(filePath, JSON.stringify(state, null, 2), "utf-8");
|
|
61
|
+
console.log(`[MEMORY] Curation state saved (curated: ${state.totalEntriesCurated})`);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
console.error(`[MEMORY] Failed to save curation state:`, err);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Check if daily log pruning should run.
|
|
69
|
+
* Returns true if lastPrunedAt is null or more than 24 hours ago.
|
|
70
|
+
*
|
|
71
|
+
* @param state - Current curation state
|
|
72
|
+
* @returns true if pruning should run
|
|
73
|
+
*/
|
|
74
|
+
export function shouldPrune(state) {
|
|
75
|
+
if (!state.lastPrunedAt)
|
|
76
|
+
return true;
|
|
77
|
+
const lastPruned = new Date(state.lastPrunedAt).getTime();
|
|
78
|
+
const now = Date.now();
|
|
79
|
+
const twentyFourHours = 24 * 60 * 60 * 1000;
|
|
80
|
+
return now - lastPruned >= twentyFourHours;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=curation-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curation-state.js","sourceRoot":"","sources":["../../src/memory/curation-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,mCAAmC;AACnC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAqBnD;;GAEG;AACH,MAAM,aAAa,GAAkB;IACnC,sBAAsB,EAAE,IAAI;IAC5B,sBAAsB,EAAE,IAAI;IAC5B,oBAAoB,EAAE,IAAI;IAC1B,oBAAoB,EAAE,CAAC;IACvB,YAAY,EAAE,IAAI;IAClB,mBAAmB,EAAE,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,iDAAiD;QACjD,OAAO;YACL,GAAG,aAAa;YAChB,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,GAAG,CAAC,CAAC;QAC7E,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,KAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,2CAA2C,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAoB;IAC9C,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE5C,OAAO,GAAG,GAAG,UAAU,IAAI,eAAe,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CoStar Server Executor - Memory Curator
|
|
3
|
+
*
|
|
4
|
+
* Incremental, cursor-based memory curation.
|
|
5
|
+
* Fetches only new/unprocessed data (client conversations + daily logs),
|
|
6
|
+
* builds a compact digest, and produces a curation prompt to append to heartbeats.
|
|
7
|
+
*
|
|
8
|
+
* The LLM then processes the digest and updates MEMORY.md, USER.md,
|
|
9
|
+
* and the daily log in a single heartbeat turn.
|
|
10
|
+
*/
|
|
11
|
+
import type { CurationState } from "./curation-state.js";
|
|
12
|
+
/**
|
|
13
|
+
* Represents a single client conversation entry for curation.
|
|
14
|
+
*/
|
|
15
|
+
export type ConversationEntry = {
|
|
16
|
+
id: string;
|
|
17
|
+
request: string;
|
|
18
|
+
response: string | null;
|
|
19
|
+
createdAt: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Delta of new data to be curated.
|
|
23
|
+
*/
|
|
24
|
+
export type CurationDelta = {
|
|
25
|
+
/** New client conversations since last cursor */
|
|
26
|
+
newConversations: ConversationEntry[];
|
|
27
|
+
/** New content appended to daily logs since last offset */
|
|
28
|
+
newLogContent: string;
|
|
29
|
+
/** Whether there is any new data to process */
|
|
30
|
+
hasNewData: boolean;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Fetch unprocessed data since the last curation cursors.
|
|
34
|
+
*
|
|
35
|
+
* 1. Queries user_requests after lastProcessedRequestAt (new client conversations)
|
|
36
|
+
* 2. Reads today's daily log from lastProcessedLogSize offset (new LLM-written entries)
|
|
37
|
+
* Also checks yesterday if lastProcessedLogDate != today (handles midnight rollover)
|
|
38
|
+
* 3. Returns only the delta — if both empty, hasNewData = false
|
|
39
|
+
*
|
|
40
|
+
* @param userId - User ID for querying conversations
|
|
41
|
+
* @param workspaceDir - Workspace root for reading daily logs
|
|
42
|
+
* @param state - Current curation state (cursors)
|
|
43
|
+
* @param maxConversations - Max conversations to fetch per curation cycle
|
|
44
|
+
* @returns The delta of new data
|
|
45
|
+
*/
|
|
46
|
+
export declare function fetchUnprocessedData(userId: string, workspaceDir: string, state: CurationState, maxConversations?: number): Promise<CurationDelta>;
|
|
47
|
+
/**
|
|
48
|
+
* Build a compact markdown digest from the curation delta.
|
|
49
|
+
* Caps total content at maxChars to keep the heartbeat prompt small.
|
|
50
|
+
*
|
|
51
|
+
* @param delta - The curation delta
|
|
52
|
+
* @param maxChars - Maximum characters for the digest (default: 3000)
|
|
53
|
+
* @returns Formatted markdown digest string
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildCurationDigest(delta: CurationDelta, maxChars?: number): string;
|
|
56
|
+
/**
|
|
57
|
+
* Build the curation prompt to append to the heartbeat message.
|
|
58
|
+
* Only called when new data exists.
|
|
59
|
+
*
|
|
60
|
+
* @param digest - The formatted digest from buildCurationDigest()
|
|
61
|
+
* @returns Full curation instructions + digest
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildCurationPrompt(digest: string): string;
|
|
64
|
+
/**
|
|
65
|
+
* Compute updated cursor state after a curation cycle.
|
|
66
|
+
*
|
|
67
|
+
* @param state - Previous curation state
|
|
68
|
+
* @param delta - The delta that was just processed
|
|
69
|
+
* @param workspaceDir - Workspace root for reading current log size
|
|
70
|
+
* @returns New curation state with updated cursors
|
|
71
|
+
*/
|
|
72
|
+
export declare function updatedCursors(state: CurationState, delta: CurationDelta, workspaceDir: string): CurationState;
|
|
73
|
+
//# sourceMappingURL=curator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"curator.d.ts","sourceRoot":"","sources":["../../src/memory/curator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,iDAAiD;IACjD,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,aAAa,EACpB,gBAAgB,GAAE,MAAW,GAC5B,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,QAAQ,GAAE,MAAa,GACtB,MAAM,CA8BR;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwC1D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,MAAM,GACnB,aAAa,CAuBf"}
|