@openclawbrain/openclaw 0.2.3 → 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 (36) hide show
  1. package/dist/extension/index.d.ts +1 -0
  2. package/dist/extension/index.js +73 -0
  3. package/dist/extension/index.js.map +1 -0
  4. package/dist/extension/runtime-guard.d.ts +61 -0
  5. package/dist/extension/runtime-guard.js +230 -0
  6. package/dist/extension/runtime-guard.js.map +1 -0
  7. package/dist/src/cli.d.ts +8 -4
  8. package/dist/src/cli.js +501 -154
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/daemon.d.ts +7 -4
  11. package/dist/src/daemon.js +275 -47
  12. package/dist/src/daemon.js.map +1 -1
  13. package/dist/src/index.d.ts +150 -2
  14. package/dist/src/index.js +769 -139
  15. package/dist/src/index.js.map +1 -1
  16. package/dist/src/learning-spine.d.ts +2 -1
  17. package/dist/src/learning-spine.js +8 -0
  18. package/dist/src/learning-spine.js.map +1 -1
  19. package/dist/src/ollama-client.d.ts +46 -0
  20. package/dist/src/ollama-client.js +231 -0
  21. package/dist/src/ollama-client.js.map +1 -0
  22. package/dist/src/provider-config.d.ts +28 -0
  23. package/dist/src/provider-config.js +150 -0
  24. package/dist/src/provider-config.js.map +1 -0
  25. package/dist/src/resolve-activation-root.d.ts +3 -3
  26. package/dist/src/resolve-activation-root.js +68 -21
  27. package/dist/src/resolve-activation-root.js.map +1 -1
  28. package/dist/src/shadow-extension-proof.d.ts +40 -0
  29. package/dist/src/shadow-extension-proof.js +214 -0
  30. package/dist/src/shadow-extension-proof.js.map +1 -0
  31. package/dist/src/teacher-labeler.d.ts +50 -0
  32. package/dist/src/teacher-labeler.js +424 -0
  33. package/dist/src/teacher-labeler.js.map +1 -0
  34. package/extension/index.ts +5 -1
  35. package/extension/runtime-guard.ts +17 -2
  36. package/package.json +8 -7
@@ -12,13 +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 WATCH_STATE_DIRNAME = "watch";
19
- const WATCH_SESSION_TAIL_CURSOR_BASENAME = "session-tail-cursor.json";
20
- const WATCH_TEACHER_SNAPSHOT_BASENAME = "teacher-snapshot.json";
18
+ const DEFAULT_SCAN_ROOT_DIRNAME = "event-exports";
21
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;
22
26
  function getHomeDir() {
23
27
  return process.env.HOME ?? process.env.USERPROFILE ?? "~";
24
28
  }
@@ -28,6 +32,9 @@ function getPlistPath() {
28
32
  function getLogPath() {
29
33
  return path.join(getHomeDir(), ".openclawbrain", "daemon.log");
30
34
  }
35
+ export function setDaemonCommandRunnerForTesting(runner) {
36
+ daemonCommandRunner = runner ?? DEFAULT_DAEMON_COMMAND_RUNNER;
37
+ }
31
38
  function getOpenclawbrainBinPath() {
32
39
  // Prefer the resolved path of the currently running CLI
33
40
  const selfBin = process.argv[1];
@@ -41,7 +48,7 @@ function getOpenclawbrainBinPath() {
41
48
  }
42
49
  // Fall back to finding it on PATH
43
50
  try {
44
- return execSync("which openclawbrain", { encoding: "utf8" }).trim();
51
+ return daemonCommandRunner("which openclawbrain").trim();
45
52
  }
46
53
  catch {
47
54
  return "openclawbrain";
@@ -93,10 +100,7 @@ function ensureLogDir() {
93
100
  }
94
101
  function launchctlLoad(plistPath) {
95
102
  try {
96
- execSync(`launchctl load -w ${JSON.stringify(plistPath)}`, {
97
- encoding: "utf8",
98
- stdio: "pipe",
99
- });
103
+ daemonCommandRunner(`launchctl load -w ${JSON.stringify(plistPath)}`);
100
104
  return { ok: true, message: "Daemon started." };
101
105
  }
102
106
  catch (err) {
@@ -106,10 +110,7 @@ function launchctlLoad(plistPath) {
106
110
  }
107
111
  function launchctlUnload(plistPath) {
108
112
  try {
109
- execSync(`launchctl unload ${JSON.stringify(plistPath)}`, {
110
- encoding: "utf8",
111
- stdio: "pipe",
112
- });
113
+ daemonCommandRunner(`launchctl unload ${JSON.stringify(plistPath)}`);
113
114
  return { ok: true, message: "Daemon stopped." };
114
115
  }
115
116
  catch (err) {
@@ -119,7 +120,7 @@ function launchctlUnload(plistPath) {
119
120
  }
120
121
  function getLaunchctlInfo() {
121
122
  try {
122
- const output = execSync("launchctl list", { encoding: "utf8", stdio: "pipe" });
123
+ const output = daemonCommandRunner("launchctl list");
123
124
  for (const line of output.split("\n")) {
124
125
  if (line.includes(LABEL)) {
125
126
  const parts = line.trim().split(/\s+/);
@@ -150,6 +151,17 @@ function readLastLines(filePath, count) {
150
151
  return [];
151
152
  }
152
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
+ }
153
165
  function readDaemonActivationRoot(plistPath) {
154
166
  if (!existsSync(plistPath)) {
155
167
  return null;
@@ -167,19 +179,176 @@ function getWatchStatePaths(activationRoot) {
167
179
  if (activationRoot === null) {
168
180
  return {
169
181
  watchStateRoot: null,
182
+ scanRoot: null,
183
+ scannerCheckpointPath: null,
170
184
  sessionTailCursorPath: null,
171
185
  teacherSnapshotPath: null,
172
186
  baselineStatePath: null
173
187
  };
174
188
  }
175
- const watchStateRoot = path.join(activationRoot, WATCH_STATE_DIRNAME);
189
+ const scanRoot = path.join(activationRoot, DEFAULT_SCAN_ROOT_DIRNAME);
176
190
  return {
177
- watchStateRoot,
178
- sessionTailCursorPath: path.join(watchStateRoot, WATCH_SESSION_TAIL_CURSOR_BASENAME),
179
- teacherSnapshotPath: path.join(watchStateRoot, WATCH_TEACHER_SNAPSHOT_BASENAME),
191
+ watchStateRoot: resolveWatchStateRoot(activationRoot),
192
+ scanRoot,
193
+ scannerCheckpointPath: path.join(scanRoot, SCANNER_CHECKPOINT_BASENAME),
194
+ sessionTailCursorPath: resolveWatchSessionTailCursorPath(activationRoot),
195
+ teacherSnapshotPath: resolveWatchTeacherSnapshotPath(activationRoot),
180
196
  baselineStatePath: path.join(activationRoot, BASELINE_STATE_BASENAME)
181
197
  };
182
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
+ }
183
352
  // ─── Subcommand implementations ─────────────────────────────────────────────
184
353
  export function daemonStart(activationRoot, json) {
185
354
  const plistPath = getPlistPath();
@@ -218,12 +387,12 @@ export function daemonStart(activationRoot, json) {
218
387
  }
219
388
  return result.ok ? 0 : 1;
220
389
  }
221
- export function daemonStop(json) {
390
+ export function daemonStop(activationRoot, json) {
222
391
  const plistPath = getPlistPath();
223
392
  if (!existsSync(plistPath)) {
224
393
  const msg = "No daemon plist found. Daemon is not installed.";
225
394
  if (json) {
226
- 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));
227
396
  }
228
397
  else {
229
398
  console.log(msg);
@@ -243,6 +412,7 @@ export function daemonStop(json) {
243
412
  if (json) {
244
413
  console.log(JSON.stringify({
245
414
  command: "daemon stop",
415
+ activationRoot,
246
416
  ok: result.ok,
247
417
  plistPath,
248
418
  message: result.message,
@@ -258,14 +428,17 @@ export function daemonStop(json) {
258
428
  }
259
429
  return result.ok ? 0 : 1;
260
430
  }
261
- export function daemonStatus(json) {
431
+ export function daemonStatus(activationRoot, json) {
262
432
  const plistPath = getPlistPath();
263
433
  const logPath = getLogPath();
264
434
  const plistInstalled = existsSync(plistPath);
265
435
  const info = getLaunchctlInfo();
266
436
  const lastLogLines = readLastLines(logPath, 5);
267
- const activationRoot = readDaemonActivationRoot(plistPath);
268
- const watchState = getWatchStatePaths(activationRoot);
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;
269
442
  if (json) {
270
443
  console.log(JSON.stringify({
271
444
  command: "daemon status",
@@ -274,8 +447,11 @@ export function daemonStatus(json) {
274
447
  pid: info.pid,
275
448
  plistPath,
276
449
  logPath,
277
- activationRoot,
278
- ...watchState,
450
+ activationRoot: requestedActivationRoot,
451
+ configuredActivationRoot,
452
+ matchesRequestedActivationRoot,
453
+ ...watchStatePaths,
454
+ watchState,
279
455
  lastLogLines,
280
456
  }, null, 2));
281
457
  }
@@ -289,18 +465,65 @@ export function daemonStatus(json) {
289
465
  if (plistInstalled) {
290
466
  console.log(` Plist: ${plistPath}`);
291
467
  }
292
- if (activationRoot !== null) {
293
- console.log(` Root: ${activationRoot}`);
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.");
294
474
  }
295
475
  console.log(` Log: ${logPath}`);
296
- if (watchState.teacherSnapshotPath !== null) {
297
- console.log(` Snapshot: ${watchState.teacherSnapshotPath}`);
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})`);
298
505
  }
299
- if (watchState.sessionTailCursorPath !== null) {
300
- console.log(` Cursor: ${watchState.sessionTailCursorPath}`);
506
+ if (watchState.teacherSnapshot.lastHandledMaterializationPackId !== null) {
507
+ console.log(` Last handled pack: ${watchState.teacherSnapshot.lastHandledMaterializationPackId}`);
301
508
  }
302
- if (watchState.baselineStatePath !== null) {
303
- console.log(` Baseline: ${watchState.baselineStatePath}`);
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})`}`);
304
527
  }
305
528
  if (lastLogLines.length > 0) {
306
529
  console.log(`\nRecent log:`);
@@ -311,12 +534,12 @@ export function daemonStatus(json) {
311
534
  }
312
535
  return 0;
313
536
  }
314
- export function daemonLogs(json) {
537
+ export function daemonLogs(activationRoot, json) {
315
538
  const logPath = getLogPath();
316
539
  if (!existsSync(logPath)) {
317
540
  const msg = `No log file found at ${logPath}`;
318
541
  if (json) {
319
- 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));
320
543
  }
321
544
  else {
322
545
  console.log(msg);
@@ -325,7 +548,7 @@ export function daemonLogs(json) {
325
548
  }
326
549
  const lines = readLastLines(logPath, 50);
327
550
  if (json) {
328
- 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));
329
552
  }
330
553
  else {
331
554
  if (lines.length === 0) {
@@ -346,15 +569,14 @@ export function runDaemonCommand(args) {
346
569
  }
347
570
  switch (args.subcommand) {
348
571
  case "start": {
349
- const activationRoot = resolveActivationRoot({ explicit: args.activationRoot });
350
- return daemonStart(activationRoot, args.json);
572
+ return daemonStart(args.activationRoot, args.json);
351
573
  }
352
574
  case "stop":
353
- return daemonStop(args.json);
575
+ return daemonStop(args.activationRoot, args.json);
354
576
  case "status":
355
- return daemonStatus(args.json);
577
+ return daemonStatus(args.activationRoot, args.json);
356
578
  case "logs":
357
- return daemonLogs(args.json);
579
+ return daemonLogs(args.activationRoot, args.json);
358
580
  default:
359
581
  console.error(`Unknown daemon subcommand: ${args.subcommand}`);
360
582
  console.error(daemonHelp());
@@ -364,10 +586,10 @@ export function runDaemonCommand(args) {
364
586
  export function daemonHelp() {
365
587
  return [
366
588
  "Usage:",
367
- " openclawbrain daemon start [--activation-root <path>] [--json]",
368
- " openclawbrain daemon stop [--json]",
369
- " openclawbrain daemon status [--json]",
370
- " 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]",
371
593
  "",
372
594
  "Subcommands:",
373
595
  " start Generate a macOS launchd plist and start the daemon (runs openclawbrain watch).",
@@ -376,7 +598,7 @@ export function daemonHelp() {
376
598
  " logs Show the last 50 lines of the daemon log (~/.openclawbrain/daemon.log).",
377
599
  "",
378
600
  "Options:",
379
- " --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.",
380
602
  " --json Emit machine-readable JSON output.",
381
603
  " --help Show this help.",
382
604
  ].join("\n");
@@ -412,6 +634,12 @@ export function parseDaemonArgs(argv) {
412
634
  }
413
635
  throw new Error(`Unknown daemon argument: ${arg}`);
414
636
  }
415
- 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 };
416
644
  }
417
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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"}