daycare-cli 0.0.8 → 0.0.10
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/commands/start.js +9 -9
- package/dist/commands/start.js.map +1 -1
- package/dist/engine/agents/agent.d.ts.map +1 -1
- package/dist/engine/agents/agent.js +50 -41
- package/dist/engine/agents/agent.js.map +1 -1
- package/dist/engine/agents/agentSystem.js +21 -21
- package/dist/engine/agents/agentSystem.js.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.js +46 -50
- package/dist/engine/agents/ops/agentLoopRun.js.map +1 -1
- package/dist/engine/agents/ops/agentLoopRun.spec.d.ts +2 -0
- package/dist/engine/agents/ops/agentLoopRun.spec.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentLoopRun.spec.js +183 -0
- package/dist/engine/agents/ops/agentLoopRun.spec.js.map +1 -0
- package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentPromptFilesEnsure.js +3 -2
- package/dist/engine/agents/ops/agentPromptFilesEnsure.js.map +1 -1
- package/dist/engine/agents/ops/agentRestoreContextResolve.d.ts +7 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.js +11 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.js.map +1 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.spec.d.ts +2 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.spec.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.spec.js +22 -0
- package/dist/engine/agents/ops/agentRestoreContextResolve.spec.js.map +1 -0
- package/dist/engine/agents/ops/agentStateRead.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentStateRead.js +8 -1
- package/dist/engine/agents/ops/agentStateRead.js.map +1 -1
- package/dist/engine/agents/ops/agentStateRead.spec.d.ts +2 -0
- package/dist/engine/agents/ops/agentStateRead.spec.d.ts.map +1 -0
- package/dist/engine/agents/ops/agentStateRead.spec.js +67 -0
- package/dist/engine/agents/ops/agentStateRead.spec.js.map +1 -0
- package/dist/engine/agents/ops/agentStateWrite.d.ts.map +1 -1
- package/dist/engine/agents/ops/agentStateWrite.js +1 -0
- package/dist/engine/agents/ops/agentStateWrite.js.map +1 -1
- package/dist/engine/agents/ops/contextCompact.js +2 -2
- package/dist/engine/agents/ops/contextCompact.js.map +1 -1
- package/dist/engine/cron/crons.js +2 -2
- package/dist/engine/cron/crons.js.map +1 -1
- package/dist/engine/cron/ops/cronScheduler.js +25 -25
- package/dist/engine/cron/ops/cronScheduler.js.map +1 -1
- package/dist/engine/cron/ops/cronStore.js +10 -10
- package/dist/engine/cron/ops/cronStore.js.map +1 -1
- package/dist/engine/engine.js +32 -32
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/heartbeat/heartbeats.js +5 -5
- package/dist/engine/heartbeat/heartbeats.js.map +1 -1
- package/dist/engine/heartbeat/ops/heartbeatScheduler.js +12 -12
- package/dist/engine/heartbeat/ops/heartbeatScheduler.js.map +1 -1
- package/dist/engine/heartbeat/ops/heartbeatStore.js +4 -4
- package/dist/engine/heartbeat/ops/heartbeatStore.js.map +1 -1
- package/dist/engine/ipc/server.js +61 -61
- package/dist/engine/ipc/server.js.map +1 -1
- package/dist/engine/modules/connectorRegistry.js +16 -16
- package/dist/engine/modules/connectorRegistry.js.map +1 -1
- package/dist/engine/modules/imageGenerationRegistry.js +5 -5
- package/dist/engine/modules/imageGenerationRegistry.js.map +1 -1
- package/dist/engine/modules/inference/router.js +13 -13
- package/dist/engine/modules/inference/router.js.map +1 -1
- package/dist/engine/modules/inferenceRegistry.js +6 -6
- package/dist/engine/modules/inferenceRegistry.js.map +1 -1
- package/dist/engine/modules/toolResolver.js +12 -12
- package/dist/engine/modules/toolResolver.js.map +1 -1
- package/dist/engine/permissions/permissionBuildDefault.d.ts.map +1 -1
- package/dist/engine/permissions/permissionBuildDefault.js +2 -1
- package/dist/engine/permissions/permissionBuildDefault.js.map +1 -1
- package/dist/engine/permissions/permissionBuildDefault.spec.js +2 -1
- package/dist/engine/permissions/permissionBuildDefault.spec.js.map +1 -1
- package/dist/engine/plugins/descriptor.d.ts +2 -2
- package/dist/engine/plugins/inference.js +1 -1
- package/dist/engine/plugins/inference.js.map +1 -1
- package/dist/engine/plugins/manager.js +44 -44
- package/dist/engine/plugins/manager.js.map +1 -1
- package/dist/engine/processes/processes.js +6 -6
- package/dist/engine/processes/processes.js.map +1 -1
- package/dist/engine/signals/delayedSignals.js +2 -2
- package/dist/engine/signals/delayedSignals.js.map +1 -1
- package/dist/engine/signals/signals.js +2 -2
- package/dist/engine/signals/signals.js.map +1 -1
- package/dist/engine/skills/skillListFromRoot.js +2 -2
- package/dist/engine/skills/skillListFromRoot.js.map +1 -1
- package/dist/engine/skills/skillResolve.js +2 -2
- package/dist/engine/skills/skillResolve.js.map +1 -1
- package/dist/log.d.ts +8 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +191 -3
- package/dist/log.js.map +1 -1
- package/dist/log.spec.d.ts +2 -0
- package/dist/log.spec.d.ts.map +1 -0
- package/dist/log.spec.js +54 -0
- package/dist/log.spec.js.map +1 -0
- package/dist/paths.d.ts +1 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +1 -0
- package/dist/paths.js.map +1 -1
- package/dist/plugins/memory/store.js +2 -2
- package/dist/plugins/memory/store.js.map +1 -1
- package/dist/plugins/telegram/connector.js +63 -63
- package/dist/plugins/telegram/connector.js.map +1 -1
- package/dist/plugins/telegram/plugin.js +1 -1
- package/dist/plugins/telegram/plugin.js.map +1 -1
- package/dist/plugins/whatsapp/authenticate.js +3 -3
- package/dist/plugins/whatsapp/authenticate.js.map +1 -1
- package/dist/plugins/whatsapp/connector.js +19 -19
- package/dist/plugins/whatsapp/connector.js.map +1 -1
- package/dist/plugins/whatsapp/plugin.js +2 -2
- package/dist/plugins/whatsapp/plugin.js.map +1 -1
- package/dist/prompts/AGENTS.md +183 -0
- package/dist/prompts/MEMORY.md +1 -0
- package/dist/prompts/PERMISSIONS.md +1 -0
- package/dist/prompts/SYSTEM.md +10 -2
- package/dist/providers/manager.js +14 -14
- package/dist/providers/manager.js.map +1 -1
- package/dist/sandbox/runtime.js +1 -1
- package/dist/sandbox/runtime.js.map +1 -1
- package/dist/util/shutdown.js +7 -7
- package/dist/util/shutdown.js.map +1 -1
- package/dist/util/time.d.ts.map +1 -1
- package/dist/util/time.js +3 -1
- package/dist/util/time.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,7 +36,7 @@ export class Heartbeats {
|
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
38
|
onError: async (error, taskIds) => {
|
|
39
|
-
logger.warn({ taskIds, error }, "Heartbeat task failed");
|
|
39
|
+
logger.warn({ taskIds, error }, "error: Heartbeat task failed");
|
|
40
40
|
},
|
|
41
41
|
onGatePermissionSkip: async (task, missing) => {
|
|
42
42
|
const label = task.title ? `"${task.title}" (${task.id})` : task.id;
|
|
@@ -62,7 +62,7 @@ export class Heartbeats {
|
|
|
62
62
|
const tasks = await this.listTasks();
|
|
63
63
|
this.eventBus.emit("heartbeat.started", { tasks });
|
|
64
64
|
if (tasks.length === 0) {
|
|
65
|
-
logger.info("No heartbeat tasks found on boot.");
|
|
65
|
+
logger.info("event: No heartbeat tasks found on boot.");
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
const withLastRun = tasks.filter((task) => !!task.lastRunAt);
|
|
@@ -75,18 +75,18 @@ export class Heartbeats {
|
|
|
75
75
|
logger.info({
|
|
76
76
|
taskCount: tasks.length,
|
|
77
77
|
mostRecentRunAt: mostRecent
|
|
78
|
-
}, "Heartbeat last run loaded on boot");
|
|
78
|
+
}, "load: Heartbeat last run loaded on boot");
|
|
79
79
|
}
|
|
80
80
|
if (missingLastRun.length > 0) {
|
|
81
81
|
logger.info({
|
|
82
82
|
taskCount: missingLastRun.length,
|
|
83
83
|
taskIds: missingLastRun.map((task) => task.id)
|
|
84
|
-
}, "Heartbeat missing last run info; running now");
|
|
84
|
+
}, "event: Heartbeat missing last run info; running now");
|
|
85
85
|
await this.runNow({ ids: missingLastRun.map((task) => task.id) });
|
|
86
86
|
}
|
|
87
87
|
const nextRunAt = this.scheduler.getNextRunAt() ??
|
|
88
88
|
new Date(Date.now() + this.scheduler.getIntervalMs());
|
|
89
|
-
logger.info({ nextRunAt: nextRunAt.toISOString() }, "Next heartbeat run scheduled");
|
|
89
|
+
logger.info({ nextRunAt: nextRunAt.toISOString() }, "schedule: Next heartbeat run scheduled");
|
|
90
90
|
}
|
|
91
91
|
stop() {
|
|
92
92
|
this.scheduler.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeats.js","sourceRoot":"","sources":["../../../sources/engine/heartbeat/heartbeats.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;AAS7C;;;GAGG;AACH,MAAM,OAAO,UAAU;IACJ,QAAQ,CAAiB;IACzB,WAAW,CAAc;IACzB,SAAS,CAAqB;IAC9B,KAAK,CAAiB;IAEvC,YAAY,OAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;YACpD,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAC7B,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;gBACpC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE;aACjD,CAAC;YACJ,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CACjC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EACpD;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE;oBAC/B,OAAO,EAAE,EAAE;iBACZ,CACF,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"heartbeats.js","sourceRoot":"","sources":["../../../sources/engine/heartbeat/heartbeats.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,10 +36,10 @@ export class HeartbeatScheduler {
|
|
|
36
36
|
this.defaultPermissions = options.defaultPermissions;
|
|
37
37
|
this.resolvePermissions = options.resolvePermissions;
|
|
38
38
|
this.gateCheck = options.gateCheck ?? execGateCheck;
|
|
39
|
-
logger.debug("HeartbeatScheduler initialized");
|
|
39
|
+
logger.debug("init: HeartbeatScheduler initialized");
|
|
40
40
|
}
|
|
41
41
|
async start() {
|
|
42
|
-
logger.debug(`start() called started=${this.started} stopped=${this.stopped}`);
|
|
42
|
+
logger.debug(`start: start() called started=${this.started} stopped=${this.stopped}`);
|
|
43
43
|
if (this.started || this.stopped) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
@@ -47,7 +47,7 @@ export class HeartbeatScheduler {
|
|
|
47
47
|
this.scheduleNext();
|
|
48
48
|
}
|
|
49
49
|
stop() {
|
|
50
|
-
logger.debug(`stop() called stopped=${this.stopped}`);
|
|
50
|
+
logger.debug(`stop: stop() called stopped=${this.stopped}`);
|
|
51
51
|
if (this.stopped) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
@@ -56,7 +56,7 @@ export class HeartbeatScheduler {
|
|
|
56
56
|
clearTimeout(this.timer);
|
|
57
57
|
this.timer = null;
|
|
58
58
|
}
|
|
59
|
-
logger.debug("HeartbeatScheduler stopped");
|
|
59
|
+
logger.debug("stop: HeartbeatScheduler stopped");
|
|
60
60
|
}
|
|
61
61
|
async runNow(taskIds) {
|
|
62
62
|
return this.runOnce(taskIds);
|
|
@@ -99,7 +99,7 @@ export class HeartbeatScheduler {
|
|
|
99
99
|
}
|
|
100
100
|
async runOnceUnlocked(taskIds) {
|
|
101
101
|
if (this.running) {
|
|
102
|
-
logger.debug("HeartbeatScheduler run skipped (already running)");
|
|
102
|
+
logger.debug("skip: HeartbeatScheduler run skipped (already running)");
|
|
103
103
|
return { ran: 0, taskIds: [] };
|
|
104
104
|
}
|
|
105
105
|
this.running = true;
|
|
@@ -121,12 +121,12 @@ export class HeartbeatScheduler {
|
|
|
121
121
|
logger.info({
|
|
122
122
|
taskCount: gated.length,
|
|
123
123
|
taskIds: ids
|
|
124
|
-
}, "Heartbeat run started");
|
|
124
|
+
}, "start: Heartbeat run started");
|
|
125
125
|
try {
|
|
126
126
|
await this.onRun(gated, runAt);
|
|
127
127
|
}
|
|
128
128
|
catch (error) {
|
|
129
|
-
logger.warn({ taskIds: ids, error }, "Heartbeat run failed");
|
|
129
|
+
logger.warn({ taskIds: ids, error }, "error: Heartbeat run failed");
|
|
130
130
|
await this.onError?.(error, ids);
|
|
131
131
|
}
|
|
132
132
|
finally {
|
|
@@ -139,11 +139,11 @@ export class HeartbeatScheduler {
|
|
|
139
139
|
logger.info({
|
|
140
140
|
taskCount: filtered.length,
|
|
141
141
|
taskIds: ids
|
|
142
|
-
}, "Heartbeat run completed");
|
|
142
|
+
}, "event: Heartbeat run completed");
|
|
143
143
|
return { ran: gated.length, taskIds: ids };
|
|
144
144
|
}
|
|
145
145
|
catch (error) {
|
|
146
|
-
logger.warn({ error }, "Heartbeat run failed");
|
|
146
|
+
logger.warn({ error }, "error: Heartbeat run failed");
|
|
147
147
|
await this.onError?.(error, undefined);
|
|
148
148
|
return { ran: 0, taskIds: [] };
|
|
149
149
|
}
|
|
@@ -161,7 +161,7 @@ export class HeartbeatScheduler {
|
|
|
161
161
|
const permissions = permissionClone(basePermissions);
|
|
162
162
|
const permissionCheck = await gatePermissionsCheck(permissions, task.gate.permissions);
|
|
163
163
|
if (!permissionCheck.allowed) {
|
|
164
|
-
logger.warn({ taskId: task.id, missing: permissionCheck.missing }, "Heartbeat gate permissions not satisfied; continuing without gate");
|
|
164
|
+
logger.warn({ taskId: task.id, missing: permissionCheck.missing }, "event: Heartbeat gate permissions not satisfied; continuing without gate");
|
|
165
165
|
await this.onGatePermissionSkip?.(task, permissionCheck.missing);
|
|
166
166
|
eligible.push(task);
|
|
167
167
|
continue;
|
|
@@ -177,12 +177,12 @@ export class HeartbeatScheduler {
|
|
|
177
177
|
continue;
|
|
178
178
|
}
|
|
179
179
|
if (result.error) {
|
|
180
|
-
logger.warn({ taskId: task.id, error: result.error }, "Heartbeat gate failed");
|
|
180
|
+
logger.warn({ taskId: task.id, error: result.error }, "error: Heartbeat gate failed");
|
|
181
181
|
await this.onError?.(result.error, [task.id]);
|
|
182
182
|
continue;
|
|
183
183
|
}
|
|
184
184
|
if (!result.shouldRun) {
|
|
185
|
-
logger.debug({ taskId: task.id, exitCode: result.exitCode }, "Heartbeat gate skipped execution");
|
|
185
|
+
logger.debug({ taskId: task.id, exitCode: result.exitCode }, "skip: Heartbeat gate skipped execution");
|
|
186
186
|
continue;
|
|
187
187
|
}
|
|
188
188
|
const prompt = execGateOutputAppend(task.prompt, result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeatScheduler.js","sourceRoot":"","sources":["../../../../sources/engine/heartbeat/ops/heartbeatScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAsC;IAC5C,KAAK,CAA0B;IAC/B,UAAU,CAAS;IACnB,KAAK,CAAqC;IAC1C,OAAO,CAAwC;IAC/C,oBAAoB,CAAqD;IACzE,cAAc,CAA+C;IAC7D,kBAAkB,CAAkD;IACpE,kBAAkB,CAAmD;IACrE,SAAS,CAAyC;IAClD,KAAK,GAA0B,IAAI,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAgB,IAAI,CAAC;IAEtC,YAAY,OAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"heartbeatScheduler.js","sourceRoot":"","sources":["../../../../sources/engine/heartbeat/ops/heartbeatScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,MAAM,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAsC;IAC5C,KAAK,CAA0B;IAC/B,UAAU,CAAS;IACnB,KAAK,CAAqC;IAC1C,OAAO,CAAwC;IAC/C,oBAAoB,CAAqD;IACzE,cAAc,CAA+C;IAC7D,kBAAkB,CAAkD;IACpE,kBAAkB,CAAmD;IACrE,SAAS,CAAyC;IAClD,KAAK,GAA0B,IAAI,CAAC;IACpC,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAgB,IAAI,CAAC;IAEtC,YAAY,OAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,OAAO,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,IAAI;QACF,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAkB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAAkB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAkB;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC5C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnD,CAAC,CAAC,KAAK,CAAC;YACV,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACjC,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC;YACrF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACjC,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CACT;gBACE,SAAS,EAAE,KAAK,CAAC,MAAM;gBACvB,OAAO,EAAE,GAAG;aACb,EACD,8BAA8B,CAC/B,CAAC;YACF,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;gBACpE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACnC,CAAC;oBAAS,CAAC;gBACT,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CACT;gBACE,SAAS,EAAE,QAAQ,CAAC,MAAM;gBAC1B,OAAO,EAAE,GAAG;aACb,EACD,gCAAgC,CACjC,CAAC;YACF,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACvC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,KAA4B,EAC5B,eAAgE;QAEhE,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACvF,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,EACrD,0EAA0E,CAC3E,CAAC;gBACF,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;gBACjE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW;gBACX,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,8BAA8B,CAAC,CAAC;gBACtF,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9C,SAAS;YACX,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,EAC9C,wCAAwC,CACzC,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -102,7 +102,7 @@ export class HeartbeatStore {
|
|
|
102
102
|
const id = stringSlugify(baseName) || baseName;
|
|
103
103
|
const { title, prompt } = heartbeatParse(parsed.body, parsed.frontmatter, baseName);
|
|
104
104
|
if (!prompt) {
|
|
105
|
-
logger.warn({ filePath }, "Heartbeat file missing prompt");
|
|
105
|
+
logger.warn({ filePath }, "event: Heartbeat file missing prompt");
|
|
106
106
|
return null;
|
|
107
107
|
}
|
|
108
108
|
const lastRunAt = state?.lastRunAt;
|
|
@@ -120,7 +120,7 @@ export class HeartbeatStore {
|
|
|
120
120
|
if (error.code === "ENOENT") {
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
|
-
logger.warn({ filePath, error }, "Failed to load heartbeat file");
|
|
123
|
+
logger.warn({ filePath, error }, "error: Failed to load heartbeat file");
|
|
124
124
|
return null;
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -170,7 +170,7 @@ export class HeartbeatStore {
|
|
|
170
170
|
if (error.code === "ENOENT") {
|
|
171
171
|
return {};
|
|
172
172
|
}
|
|
173
|
-
logger.warn({ error }, "Failed to read heartbeat state");
|
|
173
|
+
logger.warn({ error }, "error: Failed to read heartbeat state");
|
|
174
174
|
return {};
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -181,7 +181,7 @@ export class HeartbeatStore {
|
|
|
181
181
|
await fs.writeFile(statePath, `${JSON.stringify(state, null, 2)}\n`, "utf8");
|
|
182
182
|
}
|
|
183
183
|
catch (error) {
|
|
184
|
-
logger.warn({ error }, "Failed to write heartbeat state");
|
|
184
|
+
logger.warn({ error }, "error: Failed to write heartbeat state");
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeatStore.js","sourceRoot":"","sources":["../../../../sources/engine/heartbeat/ops/heartbeatStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,CAAS;IAEzB,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,KAAK,GAA0B,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClD,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAmC;QAClD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;QACzC,IAAI,UAAU,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,GAAG,UAAU,IAAI,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,WAAW,GAA4B,EAAE,KAAK,EAAE,CAAC;QACvD,IAAI,IAAI,EAAE,CAAC;YACT,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9C,OAAO;YACL,EAAE;YACF,KAAK;YACL,MAAM;YACN,QAAQ;YACR,IAAI;YACJ,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,KAAsB;QACrD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjE,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;YAE/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"heartbeatStore.js","sourceRoot":"","sources":["../../../../sources/engine/heartbeat/ops/heartbeatStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,45 +48,45 @@ const engineEventSchema = z.object({
|
|
|
48
48
|
});
|
|
49
49
|
export async function startEngineServer(options) {
|
|
50
50
|
const logger = getLogger("engine.server");
|
|
51
|
-
logger.debug(`startEngineServer() called settingsPath=${options.settingsPath}`);
|
|
51
|
+
logger.debug(`event: startEngineServer() called settingsPath=${options.settingsPath}`);
|
|
52
52
|
const socketPath = resolveEngineSocketPath(options.socketPath);
|
|
53
|
-
logger.debug(`Socket path resolved socketPath=${socketPath}`);
|
|
53
|
+
logger.debug(`event: Socket path resolved socketPath=${socketPath}`);
|
|
54
54
|
await fs.mkdir(path.dirname(socketPath), { recursive: true });
|
|
55
55
|
await fs.rm(socketPath, { force: true });
|
|
56
|
-
logger.debug("Socket directory prepared");
|
|
56
|
+
logger.debug("event: Socket directory prepared");
|
|
57
57
|
const app = fastify({ logger: false });
|
|
58
|
-
logger.debug("Fastify app created");
|
|
58
|
+
logger.debug("create: Fastify app created");
|
|
59
59
|
const pluginCatalog = buildPluginCatalog();
|
|
60
60
|
app.get("/v1/engine/status", async (_request, reply) => {
|
|
61
|
-
logger.debug("GET /v1/engine/status");
|
|
61
|
+
logger.debug("event: GET /v1/engine/status");
|
|
62
62
|
const status = options.runtime.getStatus();
|
|
63
|
-
logger.debug(`Status retrieved pluginCount=${status.plugins.length} connectorCount=${status.connectors.length}`);
|
|
63
|
+
logger.debug(`event: Status retrieved pluginCount=${status.plugins.length} connectorCount=${status.connectors.length}`);
|
|
64
64
|
return reply.send({
|
|
65
65
|
ok: true,
|
|
66
66
|
status
|
|
67
67
|
});
|
|
68
68
|
});
|
|
69
69
|
app.get("/v1/engine/cron/tasks", async (_request, reply) => {
|
|
70
|
-
logger.debug("GET /v1/engine/cron/tasks");
|
|
70
|
+
logger.debug("event: GET /v1/engine/cron/tasks");
|
|
71
71
|
const tasks = options.runtime.crons.listScheduledTasks();
|
|
72
|
-
logger.debug(`Cron tasks retrieved taskCount=${tasks.length}`);
|
|
72
|
+
logger.debug(`event: Cron tasks retrieved taskCount=${tasks.length}`);
|
|
73
73
|
return reply.send({ ok: true, tasks });
|
|
74
74
|
});
|
|
75
75
|
app.get("/v1/engine/heartbeat/tasks", async (_request, reply) => {
|
|
76
|
-
logger.debug("GET /v1/engine/heartbeat/tasks");
|
|
76
|
+
logger.debug("event: GET /v1/engine/heartbeat/tasks");
|
|
77
77
|
const tasks = await options.runtime.heartbeats.listTasks();
|
|
78
|
-
logger.debug(`Heartbeat tasks retrieved taskCount=${tasks.length}`);
|
|
78
|
+
logger.debug(`event: Heartbeat tasks retrieved taskCount=${tasks.length}`);
|
|
79
79
|
return reply.send({ ok: true, tasks });
|
|
80
80
|
});
|
|
81
81
|
app.get("/v1/engine/processes", async (_request, reply) => {
|
|
82
|
-
logger.debug("GET /v1/engine/processes");
|
|
82
|
+
logger.debug("event: GET /v1/engine/processes");
|
|
83
83
|
const processes = await options.runtime.processes.list();
|
|
84
|
-
logger.debug(`Processes retrieved count=${processes.length}`);
|
|
84
|
+
logger.debug(`event: Processes retrieved count=${processes.length}`);
|
|
85
85
|
return reply.send({ ok: true, processes });
|
|
86
86
|
});
|
|
87
87
|
app.get("/v1/engine/processes/:processId", async (request, reply) => {
|
|
88
88
|
const processId = request.params.processId;
|
|
89
|
-
logger.debug(`GET /v1/engine/processes/:processId processId=${processId}`);
|
|
89
|
+
logger.debug(`event: GET /v1/engine/processes/:processId processId=${processId}`);
|
|
90
90
|
try {
|
|
91
91
|
const processInfo = await options.runtime.processes.get(processId);
|
|
92
92
|
return reply.send({ ok: true, process: processInfo });
|
|
@@ -100,18 +100,18 @@ export async function startEngineServer(options) {
|
|
|
100
100
|
}
|
|
101
101
|
});
|
|
102
102
|
app.get("/v1/engine/signals/events", async (request, reply) => {
|
|
103
|
-
logger.debug("GET /v1/engine/signals/events");
|
|
103
|
+
logger.debug("event: GET /v1/engine/signals/events");
|
|
104
104
|
const parsed = signalEventsQuerySchema.safeParse(request.query);
|
|
105
105
|
if (!parsed.success) {
|
|
106
106
|
return reply.status(400).send({ ok: false, error: "Invalid query" });
|
|
107
107
|
}
|
|
108
108
|
const limit = parsed.data.limit ?? 200;
|
|
109
109
|
const events = await options.runtime.signals.listRecent(limit);
|
|
110
|
-
logger.debug(`Signal events retrieved eventCount=${events.length} limit=${limit}`);
|
|
110
|
+
logger.debug(`event: Signal events retrieved eventCount=${events.length} limit=${limit}`);
|
|
111
111
|
return reply.send({ ok: true, events });
|
|
112
112
|
});
|
|
113
113
|
app.post("/v1/engine/signals/generate", async (request, reply) => {
|
|
114
|
-
logger.debug("POST /v1/engine/signals/generate");
|
|
114
|
+
logger.debug("event: POST /v1/engine/signals/generate");
|
|
115
115
|
const payload = parseBody(signalGenerateSchema, request.body, reply);
|
|
116
116
|
if (!payload) {
|
|
117
117
|
return;
|
|
@@ -122,7 +122,7 @@ export async function startEngineServer(options) {
|
|
|
122
122
|
source: payload.source,
|
|
123
123
|
data: payload.data
|
|
124
124
|
});
|
|
125
|
-
logger.info({ signalId: signal.id, type: signal.type }, "Signal generated via API");
|
|
125
|
+
logger.info({ signalId: signal.id, type: signal.type }, "event: Signal generated via API");
|
|
126
126
|
return reply.send({ ok: true, signal });
|
|
127
127
|
}
|
|
128
128
|
catch (error) {
|
|
@@ -131,47 +131,47 @@ export async function startEngineServer(options) {
|
|
|
131
131
|
}
|
|
132
132
|
});
|
|
133
133
|
app.get("/v1/engine/signals/subscriptions", async (_request, reply) => {
|
|
134
|
-
logger.debug("GET /v1/engine/signals/subscriptions");
|
|
134
|
+
logger.debug("event: GET /v1/engine/signals/subscriptions");
|
|
135
135
|
const subscriptions = options.runtime.signals.listSubscriptions();
|
|
136
|
-
logger.debug(`Signal subscriptions retrieved count=${subscriptions.length}`);
|
|
136
|
+
logger.debug(`event: Signal subscriptions retrieved count=${subscriptions.length}`);
|
|
137
137
|
return reply.send({ ok: true, subscriptions });
|
|
138
138
|
});
|
|
139
139
|
app.get("/v1/engine/agents/background", async (_request, reply) => {
|
|
140
|
-
logger.debug("GET /v1/engine/agents/background");
|
|
140
|
+
logger.debug("event: GET /v1/engine/agents/background");
|
|
141
141
|
const agents = await agentBackgroundList(options.runtime.config.current);
|
|
142
|
-
logger.debug(`Background agents retrieved agentCount=${agents.length}`);
|
|
142
|
+
logger.debug(`event: Background agents retrieved agentCount=${agents.length}`);
|
|
143
143
|
return reply.send({ ok: true, agents });
|
|
144
144
|
});
|
|
145
145
|
app.get("/v1/engine/agents", async (_request, reply) => {
|
|
146
|
-
logger.debug("GET /v1/engine/agents");
|
|
146
|
+
logger.debug("event: GET /v1/engine/agents");
|
|
147
147
|
const agents = await agentList(options.runtime.config.current);
|
|
148
|
-
logger.debug(`Agents retrieved agentCount=${agents.length}`);
|
|
148
|
+
logger.debug(`event: Agents retrieved agentCount=${agents.length}`);
|
|
149
149
|
return reply.send({ ok: true, agents });
|
|
150
150
|
});
|
|
151
151
|
app.get("/v1/engine/agents/:agentId/history", async (request, reply) => {
|
|
152
152
|
const agentId = request.params.agentId;
|
|
153
|
-
logger.debug(`GET /v1/engine/agents/:agentId/history agentId=${agentId}`);
|
|
153
|
+
logger.debug(`event: GET /v1/engine/agents/:agentId/history agentId=${agentId}`);
|
|
154
154
|
const records = await agentHistoryLoad(options.runtime.config.current, agentId);
|
|
155
|
-
logger.debug(`Agent history retrieved agentId=${agentId} recordCount=${records.length}`);
|
|
155
|
+
logger.debug(`event: Agent history retrieved agentId=${agentId} recordCount=${records.length}`);
|
|
156
156
|
return reply.send({ ok: true, records });
|
|
157
157
|
});
|
|
158
158
|
app.post("/v1/engine/agents/:agentId/reset", async (request, reply) => {
|
|
159
159
|
const agentId = request.params.agentId;
|
|
160
|
-
logger.debug(`POST /v1/engine/agents/:agentId/reset agentId=${agentId}`);
|
|
160
|
+
logger.debug(`event: POST /v1/engine/agents/:agentId/reset agentId=${agentId}`);
|
|
161
161
|
const ok = options.runtime.agentSystem.post({ agentId }, { type: "reset", message: "Manual reset requested by the user." });
|
|
162
162
|
if (!ok) {
|
|
163
|
-
logger.debug(`Agent reset failed agentId=${agentId}`);
|
|
163
|
+
logger.debug(`error: Agent reset failed agentId=${agentId}`);
|
|
164
164
|
return reply.status(404).send({ ok: false, error: "Agent not found" });
|
|
165
165
|
}
|
|
166
|
-
logger.info({ agentId }, "Agent reset");
|
|
166
|
+
logger.info({ agentId }, "event: Agent reset");
|
|
167
167
|
return reply.send({ ok: true });
|
|
168
168
|
});
|
|
169
169
|
app.get("/v1/engine/plugins", async (_request, reply) => {
|
|
170
|
-
logger.debug("GET /v1/engine/plugins");
|
|
170
|
+
logger.debug("event: GET /v1/engine/plugins");
|
|
171
171
|
const settings = await readSettingsFile(options.settingsPath);
|
|
172
172
|
const loaded = options.runtime.pluginManager.listLoaded();
|
|
173
173
|
const configured = listPlugins(settings);
|
|
174
|
-
logger.debug(`Plugin list retrieved loadedCount=${loaded.length} configuredCount=${configured.length}`);
|
|
174
|
+
logger.debug(`event: Plugin list retrieved loadedCount=${loaded.length} configuredCount=${configured.length}`);
|
|
175
175
|
return reply.send({
|
|
176
176
|
ok: true,
|
|
177
177
|
loaded,
|
|
@@ -179,10 +179,10 @@ export async function startEngineServer(options) {
|
|
|
179
179
|
});
|
|
180
180
|
});
|
|
181
181
|
app.post("/v1/engine/plugins/load", async (request, reply) => {
|
|
182
|
-
logger.debug("POST /v1/engine/plugins/load");
|
|
182
|
+
logger.debug("load: POST /v1/engine/plugins/load");
|
|
183
183
|
const payload = parseBody(pluginLoadSchema, request.body, reply);
|
|
184
184
|
if (!payload) {
|
|
185
|
-
logger.debug("Invalid payload for plugin load");
|
|
185
|
+
logger.debug("load: Invalid payload for plugin load");
|
|
186
186
|
return;
|
|
187
187
|
}
|
|
188
188
|
const pluginId = payload.pluginId ?? payload.id ?? payload.instanceId;
|
|
@@ -193,7 +193,7 @@ export async function startEngineServer(options) {
|
|
|
193
193
|
: undefined;
|
|
194
194
|
const resolvedPluginId = pluginId ?? existing?.pluginId;
|
|
195
195
|
if (!resolvedPluginId) {
|
|
196
|
-
logger.debug("Missing pluginId");
|
|
196
|
+
logger.debug("event: Missing pluginId");
|
|
197
197
|
reply.status(400).send({ error: "pluginId required" });
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
@@ -203,7 +203,7 @@ export async function startEngineServer(options) {
|
|
|
203
203
|
exclusive: definition?.descriptor.exclusive
|
|
204
204
|
});
|
|
205
205
|
if (!definition) {
|
|
206
|
-
logger.debug(`Unknown pluginId=${resolvedPluginId}`);
|
|
206
|
+
logger.debug(`event: Unknown pluginId=${resolvedPluginId}`);
|
|
207
207
|
reply.status(400).send({ error: `Unknown pluginId: ${resolvedPluginId}` });
|
|
208
208
|
return;
|
|
209
209
|
}
|
|
@@ -222,8 +222,8 @@ export async function startEngineServer(options) {
|
|
|
222
222
|
reply.status(400).send({ error: message });
|
|
223
223
|
return;
|
|
224
224
|
}
|
|
225
|
-
logger.info({ plugin: resolvedPluginId, instance: instanceId }, "Plugin load requested");
|
|
226
|
-
logger.debug(`Processing plugin load pluginId=${resolvedPluginId} instanceId=${instanceId} hasSettings=${!!payload.settings}`);
|
|
225
|
+
logger.info({ plugin: resolvedPluginId, instance: instanceId }, "load: Plugin load requested");
|
|
226
|
+
logger.debug(`load: Processing plugin load pluginId=${resolvedPluginId} instanceId=${instanceId} hasSettings=${!!payload.settings}`);
|
|
227
227
|
try {
|
|
228
228
|
await updateSettingsFile(options.settingsPath, (current) => {
|
|
229
229
|
const existingEntry = listPlugins(current).find((plugin) => plugin.instanceId === instanceId);
|
|
@@ -232,7 +232,7 @@ export async function startEngineServer(options) {
|
|
|
232
232
|
pluginId: resolvedPluginId,
|
|
233
233
|
enabled: true
|
|
234
234
|
};
|
|
235
|
-
logger.debug(`Updating settings file existing=${!!existingEntry}`);
|
|
235
|
+
logger.debug(`event: Updating settings file existing=${!!existingEntry}`);
|
|
236
236
|
const nextPlugins = upsertPlugin(current.plugins, {
|
|
237
237
|
...config,
|
|
238
238
|
enabled: true,
|
|
@@ -267,24 +267,24 @@ export async function startEngineServer(options) {
|
|
|
267
267
|
return;
|
|
268
268
|
}
|
|
269
269
|
options.eventBus.emit("plugin.loaded", { id: instanceId });
|
|
270
|
-
logger.debug(`Plugin load completed instanceId=${instanceId}`);
|
|
270
|
+
logger.debug(`load: Plugin load completed instanceId=${instanceId}`);
|
|
271
271
|
return reply.send({ ok: true });
|
|
272
272
|
});
|
|
273
273
|
app.post("/v1/engine/plugins/unload", async (request, reply) => {
|
|
274
|
-
logger.debug("POST /v1/engine/plugins/unload");
|
|
274
|
+
logger.debug("unload: POST /v1/engine/plugins/unload");
|
|
275
275
|
const payload = parseBody(pluginUnloadSchema, request.body, reply);
|
|
276
276
|
if (!payload) {
|
|
277
|
-
logger.debug("Invalid payload for plugin unload");
|
|
277
|
+
logger.debug("unload: Invalid payload for plugin unload");
|
|
278
278
|
return;
|
|
279
279
|
}
|
|
280
280
|
const instanceId = payload.instanceId ?? payload.id;
|
|
281
281
|
if (!instanceId) {
|
|
282
|
-
logger.debug("Missing instanceId");
|
|
282
|
+
logger.debug("event: Missing instanceId");
|
|
283
283
|
reply.status(400).send({ error: "instanceId required" });
|
|
284
284
|
return;
|
|
285
285
|
}
|
|
286
|
-
logger.info({ instance: instanceId }, "Plugin unload requested");
|
|
287
|
-
logger.debug(`Updating settings file for unload instanceId=${instanceId}`);
|
|
286
|
+
logger.info({ instance: instanceId }, "unload: Plugin unload requested");
|
|
287
|
+
logger.debug(`unload: Updating settings file for unload instanceId=${instanceId}`);
|
|
288
288
|
await updateSettingsFile(options.settingsPath, (current) => ({
|
|
289
289
|
...current,
|
|
290
290
|
plugins: upsertPlugin(current.plugins, {
|
|
@@ -304,30 +304,30 @@ export async function startEngineServer(options) {
|
|
|
304
304
|
return;
|
|
305
305
|
}
|
|
306
306
|
options.eventBus.emit("plugin.unloaded", { id: instanceId });
|
|
307
|
-
logger.debug(`Plugin unload completed instanceId=${instanceId}`);
|
|
307
|
+
logger.debug(`unload: Plugin unload completed instanceId=${instanceId}`);
|
|
308
308
|
return reply.send({ ok: true });
|
|
309
309
|
});
|
|
310
310
|
app.post("/v1/engine/auth", async (request, reply) => {
|
|
311
|
-
logger.debug("POST /v1/engine/auth");
|
|
311
|
+
logger.debug("event: POST /v1/engine/auth");
|
|
312
312
|
const payload = parseBody(authSchema, request.body, reply);
|
|
313
313
|
if (!payload) {
|
|
314
|
-
logger.debug("Invalid payload for auth");
|
|
314
|
+
logger.debug("event: Invalid payload for auth");
|
|
315
315
|
return;
|
|
316
316
|
}
|
|
317
|
-
logger.debug(`Setting auth field id=${payload.id} key=${payload.key}`);
|
|
317
|
+
logger.debug(`event: Setting auth field id=${payload.id} key=${payload.key}`);
|
|
318
318
|
await options.runtime.authStore.setField(payload.id, payload.key, payload.value);
|
|
319
|
-
logger.debug("Auth field set");
|
|
319
|
+
logger.debug("event: Auth field set");
|
|
320
320
|
return reply.send({ ok: true });
|
|
321
321
|
});
|
|
322
322
|
app.post("/v1/engine/shutdown", async (_request, reply) => {
|
|
323
|
-
logger.info("Shutdown requested via API");
|
|
323
|
+
logger.info("event: Shutdown requested via API");
|
|
324
324
|
reply.send({ ok: true });
|
|
325
325
|
setImmediate(() => {
|
|
326
326
|
requestShutdown("SIGTERM");
|
|
327
327
|
});
|
|
328
328
|
});
|
|
329
329
|
app.post("/v1/engine/reload", async (_request, reply) => {
|
|
330
|
-
logger.info("Reload requested via API");
|
|
330
|
+
logger.info("reload: Reload requested via API");
|
|
331
331
|
try {
|
|
332
332
|
await reloadRuntime(options.runtime);
|
|
333
333
|
}
|
|
@@ -339,17 +339,17 @@ export async function startEngineServer(options) {
|
|
|
339
339
|
reply.send({ ok: true });
|
|
340
340
|
});
|
|
341
341
|
app.post("/v1/engine/events", async (request, reply) => {
|
|
342
|
-
logger.debug("POST /v1/engine/events");
|
|
342
|
+
logger.debug("event: POST /v1/engine/events");
|
|
343
343
|
const payload = parseBody(engineEventSchema, request.body, reply);
|
|
344
344
|
if (!payload) {
|
|
345
345
|
return;
|
|
346
346
|
}
|
|
347
347
|
options.eventBus.emit(payload.type, payload.payload ?? null);
|
|
348
|
-
logger.info({ eventType: payload.type }, "Engine event emitted via API");
|
|
348
|
+
logger.info({ eventType: payload.type }, "event: Engine event emitted via API");
|
|
349
349
|
return reply.send({ ok: true });
|
|
350
350
|
});
|
|
351
351
|
app.get("/v1/engine/events", async (request, reply) => {
|
|
352
|
-
logger.debug("GET /v1/engine/events (SSE connection)");
|
|
352
|
+
logger.debug("event: GET /v1/engine/events (SSE connection)");
|
|
353
353
|
reply.raw.setHeader("Content-Type", "text/event-stream");
|
|
354
354
|
reply.raw.setHeader("Cache-Control", "no-cache");
|
|
355
355
|
reply.raw.setHeader("Connection", "keep-alive");
|
|
@@ -357,7 +357,7 @@ export async function startEngineServer(options) {
|
|
|
357
357
|
const sendEvent = (event) => {
|
|
358
358
|
reply.raw.write(`data: ${JSON.stringify(event)}\n\n`);
|
|
359
359
|
};
|
|
360
|
-
logger.debug("Sending init event");
|
|
360
|
+
logger.debug("send: Sending init event");
|
|
361
361
|
sendEvent({
|
|
362
362
|
type: "init",
|
|
363
363
|
payload: {
|
|
@@ -369,25 +369,25 @@ export async function startEngineServer(options) {
|
|
|
369
369
|
timestamp: new Date().toISOString()
|
|
370
370
|
});
|
|
371
371
|
const unsubscribe = options.eventBus.onEvent((event) => {
|
|
372
|
-
logger.debug(`Forwarding event to SSE client eventType=${event.type}`);
|
|
372
|
+
logger.debug(`event: Forwarding event to SSE client eventType=${event.type}`);
|
|
373
373
|
sendEvent(event);
|
|
374
374
|
});
|
|
375
375
|
request.raw.on("close", () => {
|
|
376
|
-
logger.debug("SSE connection closed");
|
|
376
|
+
logger.debug("event: SSE connection closed");
|
|
377
377
|
unsubscribe();
|
|
378
378
|
});
|
|
379
379
|
});
|
|
380
|
-
logger.debug("Starting server listen");
|
|
380
|
+
logger.debug("start: Starting server listen");
|
|
381
381
|
await app.listen({ path: socketPath });
|
|
382
|
-
logger.info({ socket: socketPath }, "Engine server ready");
|
|
383
|
-
logger.debug("Server listening on socket");
|
|
382
|
+
logger.info({ socket: socketPath }, "ready: Engine server ready");
|
|
383
|
+
logger.debug("event: Server listening on socket");
|
|
384
384
|
return {
|
|
385
385
|
socketPath,
|
|
386
386
|
close: async () => {
|
|
387
|
-
logger.debug("Closing engine server");
|
|
387
|
+
logger.debug("event: Closing engine server");
|
|
388
388
|
await closeServer(app);
|
|
389
389
|
await fs.rm(socketPath, { force: true });
|
|
390
|
-
logger.debug("Engine server closed");
|
|
390
|
+
logger.debug("event: Engine server closed");
|
|
391
391
|
}
|
|
392
392
|
};
|
|
393
393
|
}
|