@openclawbrain/openclaw 0.2.2 → 0.3.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.
Files changed (47) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +10 -0
  3. package/dist/extension/index.d.ts +1 -0
  4. package/dist/extension/index.js +73 -0
  5. package/dist/extension/index.js.map +1 -0
  6. package/dist/extension/runtime-guard.d.ts +61 -0
  7. package/dist/extension/runtime-guard.js +230 -0
  8. package/dist/extension/runtime-guard.js.map +1 -0
  9. package/dist/src/cli.d.ts +66 -4
  10. package/dist/src/cli.js +1845 -241
  11. package/dist/src/cli.js.map +1 -1
  12. package/dist/src/daemon.d.ts +7 -4
  13. package/dist/src/daemon.js +311 -28
  14. package/dist/src/daemon.js.map +1 -1
  15. package/dist/src/index.d.ts +213 -4
  16. package/dist/src/index.js +1151 -157
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/learning-spine.d.ts +2 -1
  19. package/dist/src/learning-spine.js +8 -0
  20. package/dist/src/learning-spine.js.map +1 -1
  21. package/dist/src/local-session-passive-learning.d.ts +1 -0
  22. package/dist/src/local-session-passive-learning.js +97 -7
  23. package/dist/src/local-session-passive-learning.js.map +1 -1
  24. package/dist/src/ollama-client.d.ts +46 -0
  25. package/dist/src/ollama-client.js +231 -0
  26. package/dist/src/ollama-client.js.map +1 -0
  27. package/dist/src/provider-config.d.ts +28 -0
  28. package/dist/src/provider-config.js +150 -0
  29. package/dist/src/provider-config.js.map +1 -0
  30. package/dist/src/resolve-activation-root.d.ts +3 -3
  31. package/dist/src/resolve-activation-root.js +105 -35
  32. package/dist/src/resolve-activation-root.js.map +1 -1
  33. package/dist/src/session-store.d.ts +18 -0
  34. package/dist/src/session-store.js +40 -0
  35. package/dist/src/session-store.js.map +1 -1
  36. package/dist/src/session-tail.d.ts +6 -3
  37. package/dist/src/session-tail.js +35 -4
  38. package/dist/src/session-tail.js.map +1 -1
  39. package/dist/src/shadow-extension-proof.d.ts +40 -0
  40. package/dist/src/shadow-extension-proof.js +214 -0
  41. package/dist/src/shadow-extension-proof.js.map +1 -0
  42. package/dist/src/teacher-labeler.d.ts +50 -0
  43. package/dist/src/teacher-labeler.js +424 -0
  44. package/dist/src/teacher-labeler.js.map +1 -0
  45. package/extension/index.ts +74 -35
  46. package/extension/runtime-guard.ts +353 -0
  47. package/package.json +13 -13
@@ -12,9 +12,17 @@
12
12
  import { execSync } from "node:child_process";
13
13
  import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
14
14
  import path from "node:path";
15
- import { resolveActivationRoot } from "./resolve-activation-root.js";
15
+ import { loadTeacherSurface, resolveWatchSessionTailCursorPath, resolveWatchStateRoot, resolveWatchTeacherSnapshotPath } from "./index.js";
16
16
  const LABEL = "com.openclawbrain.daemon";
17
17
  const PLIST_FILENAME = `${LABEL}.plist`;
18
+ const DEFAULT_SCAN_ROOT_DIRNAME = "event-exports";
19
+ const BASELINE_STATE_BASENAME = "baseline-state.json";
20
+ const SCANNER_CHECKPOINT_BASENAME = ".openclawbrain-scanner-checkpoint.json";
21
+ const DEFAULT_DAEMON_COMMAND_RUNNER = (command) => execSync(command, {
22
+ encoding: "utf8",
23
+ stdio: "pipe",
24
+ });
25
+ let daemonCommandRunner = DEFAULT_DAEMON_COMMAND_RUNNER;
18
26
  function getHomeDir() {
19
27
  return process.env.HOME ?? process.env.USERPROFILE ?? "~";
20
28
  }
@@ -24,6 +32,9 @@ function getPlistPath() {
24
32
  function getLogPath() {
25
33
  return path.join(getHomeDir(), ".openclawbrain", "daemon.log");
26
34
  }
35
+ export function setDaemonCommandRunnerForTesting(runner) {
36
+ daemonCommandRunner = runner ?? DEFAULT_DAEMON_COMMAND_RUNNER;
37
+ }
27
38
  function getOpenclawbrainBinPath() {
28
39
  // Prefer the resolved path of the currently running CLI
29
40
  const selfBin = process.argv[1];
@@ -37,7 +48,7 @@ function getOpenclawbrainBinPath() {
37
48
  }
38
49
  // Fall back to finding it on PATH
39
50
  try {
40
- return execSync("which openclawbrain", { encoding: "utf8" }).trim();
51
+ return daemonCommandRunner("which openclawbrain").trim();
41
52
  }
42
53
  catch {
43
54
  return "openclawbrain";
@@ -46,6 +57,7 @@ function getOpenclawbrainBinPath() {
46
57
  function buildPlistXml(activationRoot) {
47
58
  const logPath = getLogPath();
48
59
  const binPath = getOpenclawbrainBinPath();
60
+ const homeDir = getHomeDir();
49
61
  return `<?xml version="1.0" encoding="UTF-8"?>
50
62
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
51
63
  <plist version="1.0">
@@ -59,6 +71,8 @@ function buildPlistXml(activationRoot) {
59
71
  <string>--activation-root</string>
60
72
  <string>${activationRoot}</string>
61
73
  </array>
74
+ <key>WorkingDirectory</key>
75
+ <string>${activationRoot}</string>
62
76
  <key>StandardOutPath</key>
63
77
  <string>${logPath}</string>
64
78
  <key>StandardErrorPath</key>
@@ -69,6 +83,8 @@ function buildPlistXml(activationRoot) {
69
83
  <true/>
70
84
  <key>EnvironmentVariables</key>
71
85
  <dict>
86
+ <key>HOME</key>
87
+ <string>${homeDir}</string>
72
88
  <key>PATH</key>
73
89
  <string>/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
74
90
  </dict>
@@ -84,10 +100,7 @@ function ensureLogDir() {
84
100
  }
85
101
  function launchctlLoad(plistPath) {
86
102
  try {
87
- execSync(`launchctl load -w ${JSON.stringify(plistPath)}`, {
88
- encoding: "utf8",
89
- stdio: "pipe",
90
- });
103
+ daemonCommandRunner(`launchctl load -w ${JSON.stringify(plistPath)}`);
91
104
  return { ok: true, message: "Daemon started." };
92
105
  }
93
106
  catch (err) {
@@ -97,10 +110,7 @@ function launchctlLoad(plistPath) {
97
110
  }
98
111
  function launchctlUnload(plistPath) {
99
112
  try {
100
- execSync(`launchctl unload ${JSON.stringify(plistPath)}`, {
101
- encoding: "utf8",
102
- stdio: "pipe",
103
- });
113
+ daemonCommandRunner(`launchctl unload ${JSON.stringify(plistPath)}`);
104
114
  return { ok: true, message: "Daemon stopped." };
105
115
  }
106
116
  catch (err) {
@@ -110,7 +120,7 @@ function launchctlUnload(plistPath) {
110
120
  }
111
121
  function getLaunchctlInfo() {
112
122
  try {
113
- const output = execSync("launchctl list", { encoding: "utf8", stdio: "pipe" });
123
+ const output = daemonCommandRunner("launchctl list");
114
124
  for (const line of output.split("\n")) {
115
125
  if (line.includes(LABEL)) {
116
126
  const parts = line.trim().split(/\s+/);
@@ -141,6 +151,204 @@ function readLastLines(filePath, count) {
141
151
  return [];
142
152
  }
143
153
  }
154
+ function readOptionalJsonFile(filePath) {
155
+ if (!existsSync(filePath)) {
156
+ return null;
157
+ }
158
+ try {
159
+ return JSON.parse(readFileSync(filePath, "utf8"));
160
+ }
161
+ catch {
162
+ return null;
163
+ }
164
+ }
165
+ function readDaemonActivationRoot(plistPath) {
166
+ if (!existsSync(plistPath)) {
167
+ return null;
168
+ }
169
+ try {
170
+ const plist = readFileSync(plistPath, "utf8");
171
+ const match = plist.match(/<string>--activation-root<\/string>\s*<string>([^<]+)<\/string>/);
172
+ return match?.[1] ?? null;
173
+ }
174
+ catch {
175
+ return null;
176
+ }
177
+ }
178
+ function getWatchStatePaths(activationRoot) {
179
+ if (activationRoot === null) {
180
+ return {
181
+ watchStateRoot: null,
182
+ scanRoot: null,
183
+ scannerCheckpointPath: null,
184
+ sessionTailCursorPath: null,
185
+ teacherSnapshotPath: null,
186
+ baselineStatePath: null
187
+ };
188
+ }
189
+ const scanRoot = path.join(activationRoot, DEFAULT_SCAN_ROOT_DIRNAME);
190
+ return {
191
+ watchStateRoot: resolveWatchStateRoot(activationRoot),
192
+ scanRoot,
193
+ scannerCheckpointPath: path.join(scanRoot, SCANNER_CHECKPOINT_BASENAME),
194
+ sessionTailCursorPath: resolveWatchSessionTailCursorPath(activationRoot),
195
+ teacherSnapshotPath: resolveWatchTeacherSnapshotPath(activationRoot),
196
+ baselineStatePath: path.join(activationRoot, BASELINE_STATE_BASENAME)
197
+ };
198
+ }
199
+ function readWatchStateSummary(activationRoot) {
200
+ const paths = getWatchStatePaths(activationRoot);
201
+ const cursorFile = paths.sessionTailCursorPath === null
202
+ ? null
203
+ : readOptionalJsonFile(paths.sessionTailCursorPath);
204
+ const teacherSurface = paths.teacherSnapshotPath === null
205
+ ? null
206
+ : loadTeacherSurface(paths.teacherSnapshotPath);
207
+ const teacherSnapshotFile = teacherSurface?.watchSnapshot ?? null;
208
+ const teacherSnapshot = teacherSurface?.snapshot ?? null;
209
+ const resolvedScanRoot = typeof teacherSnapshotFile?.scanRoot === "string" && teacherSnapshotFile.scanRoot.trim().length > 0
210
+ ? teacherSnapshotFile.scanRoot
211
+ : paths.scanRoot;
212
+ const scannerCheckpointPath = typeof teacherSnapshotFile?.scannerCheckpointPath === "string" && teacherSnapshotFile.scannerCheckpointPath.trim().length > 0
213
+ ? teacherSnapshotFile.scannerCheckpointPath
214
+ : resolvedScanRoot === null ? null : path.join(resolvedScanRoot, SCANNER_CHECKPOINT_BASENAME);
215
+ const scannerCheckpointFile = teacherSnapshotFile?.scannerCheckpoint ??
216
+ (scannerCheckpointPath === null
217
+ ? null
218
+ : readOptionalJsonFile(scannerCheckpointPath));
219
+ const baselineFile = paths.baselineStatePath === null ? null : readOptionalJsonFile(paths.baselineStatePath);
220
+ const lastMaterializationPackId = teacherSnapshot?.learner.lastMaterialization?.candidate.summary.packId ?? null;
221
+ const teacherSummary = teacherSnapshotFile?.teacher;
222
+ const learningSummary = teacherSnapshotFile?.learning;
223
+ const teacherDiagnostics = teacherSnapshot?.diagnostics;
224
+ const teacherState = teacherSnapshot?.state;
225
+ const teacherLearnerState = teacherSnapshot?.learner.state;
226
+ return {
227
+ watchStateRoot: paths.watchStateRoot,
228
+ scanRoot: resolvedScanRoot,
229
+ scannerCheckpoint: {
230
+ path: scannerCheckpointPath,
231
+ exists: scannerCheckpointPath !== null && existsSync(scannerCheckpointPath),
232
+ updatedAt: typeof scannerCheckpointFile?.updatedAt === "string" ? scannerCheckpointFile.updatedAt : null,
233
+ processedExportDigestCount: Array.isArray(scannerCheckpointFile?.processedExportDigests)
234
+ ? scannerCheckpointFile.processedExportDigests.length
235
+ : null,
236
+ scanPasses: typeof scannerCheckpointFile?.stats?.scanPasses === "number" ? scannerCheckpointFile.stats.scanPasses : null,
237
+ liveBundlesScanned: typeof scannerCheckpointFile?.stats?.liveBundlesScanned === "number" ? scannerCheckpointFile.stats.liveBundlesScanned : null,
238
+ backfillBundlesScanned: typeof scannerCheckpointFile?.stats?.backfillBundlesScanned === "number" ? scannerCheckpointFile.stats.backfillBundlesScanned : null,
239
+ },
240
+ sessionTailCursor: {
241
+ path: paths.sessionTailCursorPath,
242
+ exists: paths.sessionTailCursorPath !== null && existsSync(paths.sessionTailCursorPath),
243
+ updatedAt: typeof teacherSnapshotFile?.sessionTailCursorUpdatedAt === "string"
244
+ ? teacherSnapshotFile.sessionTailCursorUpdatedAt
245
+ : typeof cursorFile?.updatedAt === "string"
246
+ ? cursorFile.updatedAt
247
+ : null,
248
+ sessionCount: typeof teacherSnapshotFile?.sessionTailSessionsTracked === "number"
249
+ ? teacherSnapshotFile.sessionTailSessionsTracked
250
+ : Array.isArray(cursorFile?.cursor)
251
+ ? cursorFile.cursor.length
252
+ : null,
253
+ bridgedEventCount: typeof teacherSnapshotFile?.sessionTailBridgedEventCount === "number"
254
+ ? teacherSnapshotFile.sessionTailBridgedEventCount
255
+ : null,
256
+ },
257
+ teacherSnapshot: {
258
+ path: paths.teacherSnapshotPath,
259
+ exists: paths.teacherSnapshotPath !== null && existsSync(paths.teacherSnapshotPath),
260
+ updatedAt: typeof teacherSnapshotFile?.updatedAt === "string" ? teacherSnapshotFile.updatedAt : null,
261
+ sourceKind: teacherSurface?.sourceKind ?? "missing",
262
+ lastRunAt: typeof teacherSnapshotFile?.lastRunAt === "string" ? teacherSnapshotFile.lastRunAt : null,
263
+ scanRoot: resolvedScanRoot,
264
+ artifactCount: typeof teacherSnapshotFile?.teacher?.artifactCount === "number"
265
+ ? teacherSnapshotFile.teacher.artifactCount
266
+ : teacherSnapshot?.teacher.artifactCount ?? null,
267
+ latestFreshness: typeof teacherSnapshotFile?.teacher?.latestFreshness === "string"
268
+ ? teacherSnapshotFile.teacher.latestFreshness
269
+ : teacherSnapshot?.teacher.latestFreshness ?? null,
270
+ replayedBundleCount: typeof teacherSnapshotFile?.replayedBundleCount === "number" ? teacherSnapshotFile.replayedBundleCount : null,
271
+ replayedEventCount: typeof teacherSnapshotFile?.replayedEventCount === "number" ? teacherSnapshotFile.replayedEventCount : null,
272
+ exportedBundleCount: typeof teacherSnapshotFile?.exportedBundleCount === "number" ? teacherSnapshotFile.exportedBundleCount : null,
273
+ exportedEventCount: typeof teacherSnapshotFile?.exportedEventCount === "number" ? teacherSnapshotFile.exportedEventCount : null,
274
+ startupWarningCount: Array.isArray(teacherSnapshotFile?.startupWarnings) ? teacherSnapshotFile.startupWarnings.length : null,
275
+ lastTeacherError: typeof teacherSnapshotFile?.lastTeacherError === "string" ? teacherSnapshotFile.lastTeacherError : null,
276
+ localSessionTailNoopReason: typeof teacherSnapshotFile?.localSessionTailNoopReason === "string" ? teacherSnapshotFile.localSessionTailNoopReason : null,
277
+ learningCadence: typeof teacherSnapshotFile?.labeling?.learningCadence === "string" ? teacherSnapshotFile.labeling.learningCadence : null,
278
+ scanPolicy: typeof teacherSnapshotFile?.labeling?.scanPolicy === "string" ? teacherSnapshotFile.labeling.scanPolicy : null,
279
+ liveSlicesPerCycle: typeof teacherSnapshotFile?.labeling?.liveSlicesPerCycle === "number"
280
+ ? teacherSnapshotFile.labeling.liveSlicesPerCycle
281
+ : null,
282
+ backfillSlicesPerCycle: typeof teacherSnapshotFile?.labeling?.backfillSlicesPerCycle === "number"
283
+ ? teacherSnapshotFile.labeling.backfillSlicesPerCycle
284
+ : null,
285
+ failureMode: typeof teacherSnapshotFile?.failure?.mode === "string" ? teacherSnapshotFile.failure.mode : null,
286
+ failureDetail: typeof teacherSnapshotFile?.failure?.detail === "string" ? teacherSnapshotFile.failure.detail : null,
287
+ lastHandledMaterializationPackId: typeof teacherSnapshotFile?.lastHandledMaterializationPackId === "string"
288
+ ? teacherSnapshotFile.lastHandledMaterializationPackId
289
+ : null,
290
+ lastMaterializationPackId: typeof lastMaterializationPackId === "string" ? lastMaterializationPackId : null,
291
+ cadence: {
292
+ acceptedExportCount: typeof teacherSummary?.acceptedExportCount === "number"
293
+ ? teacherSummary.acceptedExportCount
294
+ : typeof teacherDiagnostics?.acceptedExportCount === "number"
295
+ ? teacherDiagnostics.acceptedExportCount
296
+ : null,
297
+ processedExportCount: typeof teacherSummary?.processedExportCount === "number"
298
+ ? teacherSummary.processedExportCount
299
+ : typeof teacherDiagnostics?.processedExportCount === "number"
300
+ ? teacherDiagnostics.processedExportCount
301
+ : null,
302
+ duplicateExportCount: typeof teacherSummary?.duplicateExportCount === "number"
303
+ ? teacherSummary.duplicateExportCount
304
+ : typeof teacherDiagnostics?.duplicateExportCount === "number"
305
+ ? teacherDiagnostics.duplicateExportCount
306
+ : null,
307
+ droppedExportCount: typeof teacherSummary?.droppedExportCount === "number"
308
+ ? teacherSummary.droppedExportCount
309
+ : typeof teacherDiagnostics?.droppedExportCount === "number"
310
+ ? teacherDiagnostics.droppedExportCount
311
+ : null,
312
+ emittedArtifactCount: typeof teacherSummary?.emittedArtifactCount === "number"
313
+ ? teacherSummary.emittedArtifactCount
314
+ : typeof teacherDiagnostics?.emittedArtifactCount === "number"
315
+ ? teacherDiagnostics.emittedArtifactCount
316
+ : null,
317
+ dedupedArtifactCount: typeof teacherSummary?.dedupedArtifactCount === "number"
318
+ ? teacherSummary.dedupedArtifactCount
319
+ : typeof teacherDiagnostics?.dedupedArtifactCount === "number"
320
+ ? teacherDiagnostics.dedupedArtifactCount
321
+ : null,
322
+ seenExportDigestCount: Array.isArray(teacherState?.seenExportDigests)
323
+ ? teacherState.seenExportDigests.length
324
+ : null,
325
+ materializationCount: typeof learningSummary?.materializationCount === "number"
326
+ ? learningSummary.materializationCount
327
+ : typeof teacherLearnerState?.materializationCount === "number"
328
+ ? teacherLearnerState.materializationCount
329
+ : null,
330
+ lastProcessedAt: typeof teacherSummary?.lastProcessedAt === "string"
331
+ ? teacherSummary.lastProcessedAt
332
+ : typeof teacherDiagnostics?.lastProcessedAt === "string"
333
+ ? teacherDiagnostics.lastProcessedAt
334
+ : null,
335
+ lastMaterializedAt: typeof learningSummary?.lastMaterializedAt === "string"
336
+ ? learningSummary.lastMaterializedAt
337
+ : typeof teacherLearnerState?.lastMaterializedAt === "string"
338
+ ? teacherLearnerState.lastMaterializedAt
339
+ : null,
340
+ }
341
+ },
342
+ baselineState: {
343
+ path: paths.baselineStatePath,
344
+ exists: paths.baselineStatePath !== null && existsSync(paths.baselineStatePath),
345
+ lastUpdatedAt: typeof baselineFile?.lastUpdatedAt === "string" ? baselineFile.lastUpdatedAt : null,
346
+ count: typeof baselineFile?.count === "number" ? baselineFile.count : null,
347
+ movingAverage: typeof baselineFile?.movingAverage === "number" ? baselineFile.movingAverage : null,
348
+ alpha: typeof baselineFile?.alpha === "number" ? baselineFile.alpha : null,
349
+ }
350
+ };
351
+ }
144
352
  // ─── Subcommand implementations ─────────────────────────────────────────────
145
353
  export function daemonStart(activationRoot, json) {
146
354
  const plistPath = getPlistPath();
@@ -179,12 +387,12 @@ export function daemonStart(activationRoot, json) {
179
387
  }
180
388
  return result.ok ? 0 : 1;
181
389
  }
182
- export function daemonStop(json) {
390
+ export function daemonStop(activationRoot, json) {
183
391
  const plistPath = getPlistPath();
184
392
  if (!existsSync(plistPath)) {
185
393
  const msg = "No daemon plist found. Daemon is not installed.";
186
394
  if (json) {
187
- console.log(JSON.stringify({ command: "daemon stop", ok: false, message: msg }, null, 2));
395
+ console.log(JSON.stringify({ command: "daemon stop", ok: false, activationRoot, message: msg }, null, 2));
188
396
  }
189
397
  else {
190
398
  console.log(msg);
@@ -204,6 +412,7 @@ export function daemonStop(json) {
204
412
  if (json) {
205
413
  console.log(JSON.stringify({
206
414
  command: "daemon stop",
415
+ activationRoot,
207
416
  ok: result.ok,
208
417
  plistPath,
209
418
  message: result.message,
@@ -219,12 +428,17 @@ export function daemonStop(json) {
219
428
  }
220
429
  return result.ok ? 0 : 1;
221
430
  }
222
- export function daemonStatus(json) {
431
+ export function daemonStatus(activationRoot, json) {
223
432
  const plistPath = getPlistPath();
224
433
  const logPath = getLogPath();
225
434
  const plistInstalled = existsSync(plistPath);
226
435
  const info = getLaunchctlInfo();
227
436
  const lastLogLines = readLastLines(logPath, 5);
437
+ const configuredActivationRoot = readDaemonActivationRoot(plistPath);
438
+ const requestedActivationRoot = path.resolve(activationRoot);
439
+ const watchStatePaths = getWatchStatePaths(requestedActivationRoot);
440
+ const watchState = readWatchStateSummary(requestedActivationRoot);
441
+ const matchesRequestedActivationRoot = configuredActivationRoot === null ? null : path.resolve(configuredActivationRoot) === requestedActivationRoot;
228
442
  if (json) {
229
443
  console.log(JSON.stringify({
230
444
  command: "daemon status",
@@ -233,6 +447,11 @@ export function daemonStatus(json) {
233
447
  pid: info.pid,
234
448
  plistPath,
235
449
  logPath,
450
+ activationRoot: requestedActivationRoot,
451
+ configuredActivationRoot,
452
+ matchesRequestedActivationRoot,
453
+ ...watchStatePaths,
454
+ watchState,
236
455
  lastLogLines,
237
456
  }, null, 2));
238
457
  }
@@ -246,7 +465,66 @@ export function daemonStatus(json) {
246
465
  if (plistInstalled) {
247
466
  console.log(` Plist: ${plistPath}`);
248
467
  }
468
+ console.log(` Requested root: ${requestedActivationRoot}`);
469
+ if (configuredActivationRoot !== null) {
470
+ console.log(` Configured root: ${configuredActivationRoot}`);
471
+ }
472
+ if (matchesRequestedActivationRoot === false) {
473
+ console.log(" Requested root does not match the installed daemon plist.");
474
+ }
249
475
  console.log(` Log: ${logPath}`);
476
+ if (watchState.scanRoot !== null) {
477
+ console.log(` Scan root: ${watchState.scanRoot}`);
478
+ }
479
+ if (watchState.scannerCheckpoint.path !== null) {
480
+ const checkpointSummary = watchState.scannerCheckpoint.exists
481
+ ? `processed=${watchState.scannerCheckpoint.processedExportDigestCount ?? "?"} passes=${watchState.scannerCheckpoint.scanPasses ?? "?"}`
482
+ : "missing";
483
+ console.log(` Scanner: ${watchState.scannerCheckpoint.path} (${checkpointSummary})`);
484
+ }
485
+ if (watchState.teacherSnapshot.path !== null) {
486
+ const snapshotSummary = watchState.teacherSnapshot.exists
487
+ ? `updated=${watchState.teacherSnapshot.updatedAt ?? "unknown"} lastRun=${watchState.teacherSnapshot.lastRunAt ?? "unknown"} artifacts=${watchState.teacherSnapshot.artifactCount ?? "?"} replayed=${watchState.teacherSnapshot.replayedBundleCount ?? "?"}/${watchState.teacherSnapshot.replayedEventCount ?? "?"} exported=${watchState.teacherSnapshot.exportedBundleCount ?? "?"}/${watchState.teacherSnapshot.exportedEventCount ?? "?"}`
488
+ : "missing";
489
+ console.log(` Snapshot: ${watchState.teacherSnapshot.path} (${snapshotSummary})`);
490
+ }
491
+ if (watchState.teacherSnapshot.cadence.processedExportCount !== null) {
492
+ console.log(` Teacher cadence: processed=${watchState.teacherSnapshot.cadence.processedExportCount} materialized=${watchState.teacherSnapshot.cadence.materializationCount ?? "?"} seen=${watchState.teacherSnapshot.cadence.seenExportDigestCount ?? "?"}`);
493
+ }
494
+ if (watchState.sessionTailCursor.path !== null) {
495
+ const cursorSummary = watchState.sessionTailCursor.exists
496
+ ? `sessions=${watchState.sessionTailCursor.sessionCount ?? "?"} bridged=${watchState.sessionTailCursor.bridgedEventCount ?? "?"} updated=${watchState.sessionTailCursor.updatedAt ?? "unknown"}`
497
+ : "missing";
498
+ console.log(` Cursor: ${watchState.sessionTailCursor.path} (${cursorSummary})`);
499
+ }
500
+ if (watchState.baselineState.path !== null) {
501
+ const baselineSummary = watchState.baselineState.exists
502
+ ? `count=${watchState.baselineState.count ?? "?"} avg=${watchState.baselineState.movingAverage ?? "?"} updated=${watchState.baselineState.lastUpdatedAt ?? "unknown"}`
503
+ : "missing";
504
+ console.log(` Baseline: ${watchState.baselineState.path} (${baselineSummary})`);
505
+ }
506
+ if (watchState.teacherSnapshot.lastHandledMaterializationPackId !== null) {
507
+ console.log(` Last handled pack: ${watchState.teacherSnapshot.lastHandledMaterializationPackId}`);
508
+ }
509
+ if (watchState.teacherSnapshot.lastMaterializationPackId !== null &&
510
+ watchState.teacherSnapshot.lastMaterializationPackId !== watchState.teacherSnapshot.lastHandledMaterializationPackId) {
511
+ console.log(` Last materialized pack: ${watchState.teacherSnapshot.lastMaterializationPackId}`);
512
+ }
513
+ if (watchState.teacherSnapshot.localSessionTailNoopReason !== null) {
514
+ console.log(` Tail state: ${watchState.teacherSnapshot.localSessionTailNoopReason}`);
515
+ }
516
+ if (watchState.teacherSnapshot.startupWarningCount !== null && watchState.teacherSnapshot.startupWarningCount > 0) {
517
+ console.log(` Startup warnings: ${watchState.teacherSnapshot.startupWarningCount}`);
518
+ }
519
+ if (watchState.teacherSnapshot.lastTeacherError !== null) {
520
+ console.log(` Teacher fail-open: ${watchState.teacherSnapshot.lastTeacherError}`);
521
+ }
522
+ if (watchState.teacherSnapshot.learningCadence !== null || watchState.teacherSnapshot.scanPolicy !== null) {
523
+ console.log(` Passive labeling: cadence=${watchState.teacherSnapshot.learningCadence ?? "unknown"} scan=${watchState.teacherSnapshot.scanPolicy ?? "unknown"} slices=${watchState.teacherSnapshot.liveSlicesPerCycle ?? "?"}/${watchState.teacherSnapshot.backfillSlicesPerCycle ?? "?"}`);
524
+ }
525
+ if (watchState.teacherSnapshot.failureMode !== null) {
526
+ console.log(` Failure: ${watchState.teacherSnapshot.failureMode}${watchState.teacherSnapshot.failureDetail === null ? "" : ` (${watchState.teacherSnapshot.failureDetail})`}`);
527
+ }
250
528
  if (lastLogLines.length > 0) {
251
529
  console.log(`\nRecent log:`);
252
530
  for (const line of lastLogLines) {
@@ -256,12 +534,12 @@ export function daemonStatus(json) {
256
534
  }
257
535
  return 0;
258
536
  }
259
- export function daemonLogs(json) {
537
+ export function daemonLogs(activationRoot, json) {
260
538
  const logPath = getLogPath();
261
539
  if (!existsSync(logPath)) {
262
540
  const msg = `No log file found at ${logPath}`;
263
541
  if (json) {
264
- console.log(JSON.stringify({ command: "daemon logs", ok: false, logPath, message: msg, lines: [] }, null, 2));
542
+ console.log(JSON.stringify({ command: "daemon logs", ok: false, activationRoot, logPath, message: msg, lines: [] }, null, 2));
265
543
  }
266
544
  else {
267
545
  console.log(msg);
@@ -270,7 +548,7 @@ export function daemonLogs(json) {
270
548
  }
271
549
  const lines = readLastLines(logPath, 50);
272
550
  if (json) {
273
- console.log(JSON.stringify({ command: "daemon logs", ok: true, logPath, lines }, null, 2));
551
+ console.log(JSON.stringify({ command: "daemon logs", ok: true, activationRoot, logPath, lines }, null, 2));
274
552
  }
275
553
  else {
276
554
  if (lines.length === 0) {
@@ -291,15 +569,14 @@ export function runDaemonCommand(args) {
291
569
  }
292
570
  switch (args.subcommand) {
293
571
  case "start": {
294
- const activationRoot = resolveActivationRoot({ explicit: args.activationRoot });
295
- return daemonStart(activationRoot, args.json);
572
+ return daemonStart(args.activationRoot, args.json);
296
573
  }
297
574
  case "stop":
298
- return daemonStop(args.json);
575
+ return daemonStop(args.activationRoot, args.json);
299
576
  case "status":
300
- return daemonStatus(args.json);
577
+ return daemonStatus(args.activationRoot, args.json);
301
578
  case "logs":
302
- return daemonLogs(args.json);
579
+ return daemonLogs(args.activationRoot, args.json);
303
580
  default:
304
581
  console.error(`Unknown daemon subcommand: ${args.subcommand}`);
305
582
  console.error(daemonHelp());
@@ -309,10 +586,10 @@ export function runDaemonCommand(args) {
309
586
  export function daemonHelp() {
310
587
  return [
311
588
  "Usage:",
312
- " openclawbrain daemon start [--activation-root <path>] [--json]",
313
- " openclawbrain daemon stop [--json]",
314
- " openclawbrain daemon status [--json]",
315
- " openclawbrain daemon logs [--json]",
589
+ " openclawbrain daemon start --activation-root <path> [--json]",
590
+ " openclawbrain daemon stop --activation-root <path> [--json]",
591
+ " openclawbrain daemon status --activation-root <path> [--json]",
592
+ " openclawbrain daemon logs --activation-root <path> [--json]",
316
593
  "",
317
594
  "Subcommands:",
318
595
  " start Generate a macOS launchd plist and start the daemon (runs openclawbrain watch).",
@@ -321,7 +598,7 @@ export function daemonHelp() {
321
598
  " logs Show the last 50 lines of the daemon log (~/.openclawbrain/daemon.log).",
322
599
  "",
323
600
  "Options:",
324
- " --activation-root <path> Activation root for the watch command (auto-detected if omitted).",
601
+ " --activation-root <path> Explicit activation root for the wrapped watch daemon.",
325
602
  " --json Emit machine-readable JSON output.",
326
603
  " --help Show this help.",
327
604
  ].join("\n");
@@ -357,6 +634,12 @@ export function parseDaemonArgs(argv) {
357
634
  }
358
635
  throw new Error(`Unknown daemon argument: ${arg}`);
359
636
  }
360
- return { command: "daemon", subcommand, activationRoot, json, help };
637
+ if (help) {
638
+ return { command: "daemon", subcommand, activationRoot: "", json, help };
639
+ }
640
+ if (activationRoot === null || activationRoot.trim().length === 0) {
641
+ throw new Error(`daemon ${subcommand} requires --activation-root <path>`);
642
+ }
643
+ return { command: "daemon", subcommand, activationRoot: path.resolve(activationRoot), json, help };
361
644
  }
362
645
  //# sourceMappingURL=daemon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon.ts"],"names":[],"mappings":"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"}