@ouro.bot/cli 0.1.0-alpha.523 → 0.1.0-alpha.525

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 (29) hide show
  1. package/README.md +1 -1
  2. package/changelog.json +16 -0
  3. package/dist/heart/daemon/cli-exec.js +32 -12
  4. package/dist/heart/daemon/cli-help.js +5 -0
  5. package/dist/heart/daemon/cli-parse.js +8 -4
  6. package/dist/heart/daemon/cli-render.js +6 -2
  7. package/dist/heart/daemon/daemon-entry.js +1 -1
  8. package/dist/heart/daemon/daemon.js +29 -27
  9. package/dist/heart/{outlook/outlook-http-hooks.js → mailbox/mailbox-http-hooks.js} +23 -23
  10. package/dist/heart/{outlook/outlook-http-routes.js → mailbox/mailbox-http-routes.js} +45 -43
  11. package/dist/heart/{outlook/outlook-http-static.js → mailbox/mailbox-http-static.js} +13 -13
  12. package/dist/heart/{outlook/outlook-http-transport.js → mailbox/mailbox-http-transport.js} +1 -1
  13. package/dist/heart/{outlook/outlook-http.js → mailbox/mailbox-http.js} +15 -15
  14. package/dist/heart/{outlook/outlook-read.js → mailbox/mailbox-read.js} +4 -4
  15. package/dist/heart/{outlook/outlook-types.js → mailbox/mailbox-types.js} +9 -9
  16. package/dist/heart/{outlook/outlook-view.js → mailbox/mailbox-view.js} +11 -11
  17. package/dist/heart/{outlook → mailbox}/readers/agent-machine.js +10 -10
  18. package/dist/heart/{outlook → mailbox}/readers/continuity-readers.js +18 -16
  19. package/dist/heart/{outlook → mailbox}/readers/mail.js +11 -11
  20. package/dist/heart/{outlook → mailbox}/readers/runtime-readers.js +6 -5
  21. package/dist/heart/{outlook → mailbox}/readers/sessions.js +2 -2
  22. package/dist/heart/{outlook → mailbox}/readers/shared.js +2 -2
  23. package/dist/nerves/coverage/file-completeness.js +10 -10
  24. package/dist/senses/cli/ouro-tui.js +1 -1
  25. package/package.json +4 -4
  26. /package/dist/heart/{outlook/outlook-http-response.js → mailbox/mailbox-http-response.js} +0 -0
  27. /package/dist/{outlook-ui → mailbox-ui}/assets/index-BPr5vNuM.css +0 -0
  28. /package/dist/{outlook-ui → mailbox-ui}/assets/index-Cm51CY9W.js +0 -0
  29. /package/dist/{outlook-ui → mailbox-ui}/index.html +0 -0
package/README.md CHANGED
@@ -41,7 +41,7 @@ The shared harness lives in `src/`:
41
41
  - `src/arc/`
42
42
  Durable continuity state — obligations, cares, episodes, intentions, presence, and attention types. The agent's sense of ongoing story.
43
43
  - `src/heart/`
44
- Core runtime, provider adapters, daemon, bootstrap, identity, and entrypoints. Organized into topic subdirectories: daemon/ (lifecycle), outlook/ (calendar), habits/ (scheduling), hatch/ (agent creation), versioning/ (updates), auth/, mcp/, providers/, bridges/.
44
+ Core runtime, provider adapters, daemon, bootstrap, identity, and entrypoints. Organized into topic subdirectories: daemon/ (lifecycle), mailbox/ (calendar), habits/ (scheduling), hatch/ (agent creation), versioning/ (updates), auth/, mcp/, providers/, bridges/.
45
45
  - `src/mind/`
46
46
  Prompt assembly, session persistence, bundle manifest enforcement, phrases, formatting, diary, note search, embedding providers, journal, obligation steering, and friend resolution.
47
47
  - `src/repertoire/`
package/changelog.json CHANGED
@@ -1,6 +1,22 @@
1
1
  {
2
2
  "_note": "This changelog is maintained as part of the PR/version-bump workflow. Agent-curated, not auto-generated. Agents read this file directly via read_file to understand what changed between versions.",
3
3
  "versions": [
4
+ {
5
+ "version": "0.1.0-alpha.525",
6
+ "changes": [
7
+ "`ouro status --json` now returns parseable daemon status JSON instead of the human ANSI status board, giving automation and review gates a truthful machine-readable status surface.",
8
+ "Unavailable-daemon status checks with `--json` now still return structured JSON with socket and health-file context instead of falling back to human prose.",
9
+ "Adds CLI parse and execution coverage for the status JSON flag so future status rendering changes cannot silently break the automation contract again."
10
+ ]
11
+ },
12
+ {
13
+ "version": "0.1.0-alpha.524",
14
+ "changes": [
15
+ "Completes the human-facing Ouro Mailbox rename by moving the former Outlook source, tests, UI package, build scripts, and package asset checks onto mailbox naming.",
16
+ "Keeps compatibility aliases for `ouro outlook`, legacy `/outlook` API paths, old `outlookUrl` status consumers, and existing Outlook-named local preference/state files during the transition.",
17
+ "Cleans stale legacy Outlook UI package output during Mailbox UI builds so published packages carry the renamed asset tree without leftover old paths."
18
+ ]
19
+ },
4
20
  {
5
21
  "version": "0.1.0-alpha.523",
6
22
  "changes": [
@@ -469,6 +469,22 @@ function writeProviderRepairSummary(deps, title, degraded) {
469
469
  const blocks = degraded.map((entry) => (0, readiness_repair_1.renderReadinessIssueNextSteps)(readinessIssueFromDegraded(entry)).join("\n"));
470
470
  deps.writeStdout([title, ...blocks].join("\n\n"));
471
471
  }
472
+ function formatDaemonStatusJsonOutput(response) {
473
+ return JSON.stringify(response.data ?? {
474
+ ok: response.ok,
475
+ ...(response.summary ? { summary: response.summary } : {}),
476
+ ...(response.message ? { message: response.message } : {}),
477
+ ...(response.error ? { error: response.error } : {}),
478
+ }, null, 2);
479
+ }
480
+ function daemonUnavailableStatusJsonOutput(socketPath, healthFilePath) {
481
+ return JSON.stringify({
482
+ ok: false,
483
+ error: "daemon unavailable",
484
+ socketPath,
485
+ ...(healthFilePath ? { healthFilePath } : {}),
486
+ }, null, 2);
487
+ }
472
488
  /**
473
489
  * Layer 4: render a per-agent drift advisory block to stdout. Called from
474
490
  * the `--no-repair` summary path when one or more enabled agents have a
@@ -6251,7 +6267,7 @@ async function runOuroCli(args, deps = (0, cli_defaults_1.createDefaultOuroCliDe
6251
6267
  deps.writeStdout(message);
6252
6268
  return message;
6253
6269
  }
6254
- if (command.kind === "outlook") {
6270
+ if (command.kind === "mailbox") {
6255
6271
  let status;
6256
6272
  try {
6257
6273
  status = await deps.sendCommand(deps.socketPath, { kind: "daemon.status" });
@@ -6264,23 +6280,23 @@ async function runOuroCli(args, deps = (0, cli_defaults_1.createDefaultOuroCliDe
6264
6280
  }
6265
6281
  /* v8 ignore stop */
6266
6282
  const payload = (0, cli_render_1.parseStatusPayload)(status.data);
6267
- /* v8 ignore start -- ?? branch: outlookUrl always present in test fixtures */
6268
- const outlookUrl = payload?.overview.outlookUrl ?? "unavailable";
6283
+ /* v8 ignore start -- ?? branch: mailboxUrl always present in test fixtures */
6284
+ const mailboxUrl = payload?.overview.mailboxUrl ?? payload?.overview.outlookUrl ?? "unavailable";
6269
6285
  /* v8 ignore stop */
6270
6286
  if (!command.json) {
6271
- deps.writeStdout(outlookUrl);
6272
- return outlookUrl;
6287
+ deps.writeStdout(mailboxUrl);
6288
+ return mailboxUrl;
6273
6289
  }
6274
- /* v8 ignore start — error path: outlook URL not available */
6275
- if (outlookUrl === "unavailable") {
6276
- deps.writeStdout(outlookUrl);
6277
- return outlookUrl;
6290
+ /* v8 ignore start — error path: mailbox URL not available */
6291
+ if (mailboxUrl === "unavailable") {
6292
+ deps.writeStdout(mailboxUrl);
6293
+ return mailboxUrl;
6278
6294
  }
6279
6295
  /* v8 ignore stop */
6280
6296
  /* v8 ignore start -- ?? branch: tests always inject fetchImpl */
6281
6297
  const fetchImpl = deps.fetchImpl ?? fetch;
6282
6298
  /* v8 ignore stop */
6283
- const response = await fetchImpl(`${outlookUrl}/api/machine`);
6299
+ const response = await fetchImpl(`${mailboxUrl}/api/machine`);
6284
6300
  const data = await response.json();
6285
6301
  const text = JSON.stringify(data, null, 2);
6286
6302
  deps.writeStdout(text);
@@ -7456,7 +7472,9 @@ async function runOuroCli(args, deps = (0, cli_defaults_1.createDefaultOuroCliDe
7456
7472
  return message;
7457
7473
  }
7458
7474
  if (command.kind === "daemon.status" && (0, cli_render_1.isDaemonUnavailableError)(error)) {
7459
- const message = (0, cli_render_1.daemonUnavailableStatusOutput)(deps.socketPath, deps.healthFilePath);
7475
+ const message = command.json
7476
+ ? daemonUnavailableStatusJsonOutput(deps.socketPath, deps.healthFilePath)
7477
+ : (0, cli_render_1.daemonUnavailableStatusOutput)(deps.socketPath, deps.healthFilePath);
7460
7478
  deps.writeStdout(message);
7461
7479
  return message;
7462
7480
  }
@@ -7469,7 +7487,9 @@ async function runOuroCli(args, deps = (0, cli_defaults_1.createDefaultOuroCliDe
7469
7487
  }
7470
7488
  const fallbackMessage = response.summary ?? response.message ?? (response.ok ? "ok" : `error: ${response.error ?? "unknown error"}`);
7471
7489
  const message = command.kind === "daemon.status"
7472
- ? (0, cli_render_1.formatDaemonStatusOutput)(response, fallbackMessage)
7490
+ ? command.json
7491
+ ? formatDaemonStatusJsonOutput(response)
7492
+ : (0, cli_render_1.formatDaemonStatusOutput)(response, fallbackMessage)
7473
7493
  : fallbackMessage;
7474
7494
  deps.writeStdout(message);
7475
7495
  return message;
@@ -90,6 +90,7 @@ exports.COMMAND_REGISTRY = {
90
90
  description: "Deprecated alias for `ouro mailbox`",
91
91
  usage: "ouro outlook [--json]",
92
92
  example: "ouro outlook --json",
93
+ hidden: true,
93
94
  },
94
95
  whoami: {
95
96
  category: "Agents",
@@ -433,6 +434,8 @@ function suggestCommand(input) {
433
434
  let bestMatch = null;
434
435
  let bestDistance = Infinity;
435
436
  for (const name of Object.keys(exports.COMMAND_REGISTRY)) {
437
+ if (exports.COMMAND_REGISTRY[name].hidden)
438
+ continue;
436
439
  const distance = levenshteinDistance(input, name);
437
440
  if (distance < bestDistance) {
438
441
  bestDistance = distance;
@@ -459,6 +462,8 @@ function getGroupedHelp() {
459
462
  for (const category of CATEGORY_ORDER) {
460
463
  lines.push(` ${category}:`);
461
464
  for (const [name, entry] of Object.entries(exports.COMMAND_REGISTRY)) {
465
+ if (entry.hidden)
466
+ continue;
462
467
  if (entry.category === category) {
463
468
  lines.push(` ${name.padEnd(16)} ${entry.description}`);
464
469
  }
@@ -1430,12 +1430,16 @@ function parseOuroCommand(args) {
1430
1430
  return { kind: "daemon.stop" };
1431
1431
  if (head === "status") {
1432
1432
  const { agent, rest } = extractAgentFlag(args.slice(1));
1433
+ const json = rest.includes("--json");
1434
+ const unknown = rest.filter((token) => token !== "--json");
1433
1435
  if (agent) {
1434
- if (rest.length > 0)
1435
- throw new Error("Usage: ouro status --agent <name>");
1436
+ if (unknown.length > 0 || json)
1437
+ throw new Error("Usage: ouro status [--json] OR ouro status --agent <name>");
1436
1438
  return { kind: "provider.status", agent };
1437
1439
  }
1438
- return { kind: "daemon.status" };
1440
+ if (unknown.length > 0)
1441
+ throw new Error("Usage: ouro status [--json] OR ouro status --agent <name>");
1442
+ return { kind: "daemon.status", ...(json ? { json: true } : {}) };
1439
1443
  }
1440
1444
  if (head === "use")
1441
1445
  return parseProviderUseCommand(args.slice(1));
@@ -1459,7 +1463,7 @@ function parseOuroCommand(args) {
1459
1463
  return { kind: "daemon.logs" };
1460
1464
  }
1461
1465
  if (head === "mailbox" || head === "outlook")
1462
- return { kind: "outlook", ...(args.includes("--json") ? { json: true } : {}) };
1466
+ return { kind: "mailbox", ...(args.includes("--json") ? { json: true } : {}) };
1463
1467
  if (head === "hatch")
1464
1468
  return parseHatchCommand(args.slice(1));
1465
1469
  if (head === "auth")
@@ -92,7 +92,10 @@ function parseStatusPayload(data) {
92
92
  daemon: stringField(overview.daemon) ?? "unknown",
93
93
  health: stringField(overview.health) ?? "unknown",
94
94
  socketPath: stringField(overview.socketPath) ?? "unknown",
95
- outlookUrl: stringField(overview.outlookUrl) ?? "unavailable",
95
+ mailboxUrl: stringField(overview.mailboxUrl)
96
+ ?? stringField(overview.outlookUrl)
97
+ ?? "unavailable",
98
+ outlookUrl: stringField(overview.outlookUrl) ?? undefined,
96
99
  version: stringField(overview.version) ?? "unknown",
97
100
  lastUpdated: stringField(overview.lastUpdated) ?? "unknown",
98
101
  repoRoot: stringField(overview.repoRoot) ?? "unknown",
@@ -309,7 +312,7 @@ function formatDaemonStatusOutput(response, fallback) {
309
312
  // ── Key-value overview ──
310
313
  const kvLine = (label, value) => ` ${teal(label.padEnd(11))} ${value}`;
311
314
  lines.push(kvLine("Socket", ov.socketPath));
312
- lines.push(kvLine("Mailbox", ov.outlookUrl));
315
+ lines.push(kvLine("Mailbox", ov.mailboxUrl));
313
316
  lines.push(kvLine("Health", `${statusDot(ov.health)} ${ov.health}`));
314
317
  lines.push(kvLine("Updated", ov.lastUpdated));
315
318
  lines.push("");
@@ -456,6 +459,7 @@ function buildStoppedStatusPayload(socketPath, syncRows = [], agentRows = []) {
456
459
  daemon: "stopped",
457
460
  health: "warn",
458
461
  socketPath,
462
+ mailboxUrl: "unavailable",
459
463
  outlookUrl: "unavailable",
460
464
  version: metadata.version,
461
465
  lastUpdated: metadata.lastUpdated,
@@ -199,7 +199,7 @@ function buildDaemonHealthState() {
199
199
  };
200
200
  });
201
201
  // Preserved for backwards-compatible inspection: callers (status
202
- // command, outlook surface, etc.) may still read this combined list
202
+ // command, mailbox surface, etc.) may still read this combined list
203
203
  // for per-component reasons. The rollup status field above is what
204
204
  // changed meaning — the array is still the union of bootstrap +
205
205
  // agent-derived degradation entries.
@@ -61,10 +61,10 @@ const pending_1 = require("../../mind/pending");
61
61
  const agent_service_1 = require("./agent-service");
62
62
  const channel_1 = require("../../mind/friends/channel");
63
63
  const mcp_manager_1 = require("../../repertoire/mcp-manager");
64
- const outlook_http_1 = require("../outlook/outlook-http");
65
- const outlook_types_1 = require("../outlook/outlook-types");
66
- const outlook_read_1 = require("../outlook/outlook-read");
67
- const outlook_view_1 = require("../outlook/outlook-view");
64
+ const mailbox_http_1 = require("../mailbox/mailbox-http");
65
+ const mailbox_types_1 = require("../mailbox/mailbox-types");
66
+ const mailbox_read_1 = require("../mailbox/mailbox-read");
67
+ const mailbox_view_1 = require("../mailbox/mailbox-view");
68
68
  const provider_visibility_1 = require("../provider-visibility");
69
69
  const socket_client_1 = require("./socket-client");
70
70
  const PIDFILE_PATH = path.join(os.homedir(), ".ouro-cli", "daemon.pids");
@@ -414,10 +414,10 @@ class OuroDaemon {
414
414
  bundlesRoot;
415
415
  mode;
416
416
  server = null;
417
- outlookServer = null;
417
+ mailboxServer = null;
418
418
  socketIdentity = null;
419
419
  senseAutostartTimer = null;
420
- outlookServerFactory;
420
+ mailboxServerFactory;
421
421
  onStopCommandComplete;
422
422
  constructor(options) {
423
423
  this.socketPath = options.socketPath;
@@ -428,36 +428,36 @@ class OuroDaemon {
428
428
  this.senseManager = options.senseManager ?? null;
429
429
  this.bundlesRoot = options.bundlesRoot ?? (0, identity_1.getAgentBundlesRoot)();
430
430
  this.mode = options.mode ?? "production";
431
- this.outlookServerFactory = options.outlookServerFactory ?? this.createDefaultOutlookServer.bind(this);
431
+ this.mailboxServerFactory = options.mailboxServerFactory ?? this.createDefaultMailboxServer.bind(this);
432
432
  this.onStopCommandComplete = options.onStopCommandComplete ?? null;
433
433
  }
434
- /* v8 ignore start -- default outlook server wiring: production-only path, tests inject outlookServerFactory stub instead. startOutlookHttpServer itself has full coverage in outlook-http.test.ts @preserve */
435
- createDefaultOutlookServer() {
436
- return (0, outlook_http_1.startOutlookHttpServer)({
434
+ /* v8 ignore start -- default mailbox server wiring: production-only path, tests inject mailboxServerFactory stub instead. startMailboxHttpServer itself has full coverage in mailbox-http.test.ts @preserve */
435
+ createDefaultMailboxServer() {
436
+ return (0, mailbox_http_1.startMailboxHttpServer)({
437
437
  host: "127.0.0.1",
438
- port: outlook_types_1.OUTLOOK_DEFAULT_PORT,
438
+ port: mailbox_types_1.MAILBOX_DEFAULT_PORT,
439
439
  bundlesRoot: this.bundlesRoot,
440
- readMachineState: () => (0, outlook_read_1.readOutlookMachineState)({ bundlesRoot: this.bundlesRoot }),
440
+ readMachineState: () => (0, mailbox_read_1.readMailboxMachineState)({ bundlesRoot: this.bundlesRoot }),
441
441
  readMachineView: ({ machine }) => {
442
442
  const overview = this.buildStatusPayload().overview;
443
- return (0, outlook_view_1.buildOutlookMachineView)({
443
+ return (0, mailbox_view_1.buildMailboxMachineView)({
444
444
  machine,
445
445
  daemon: {
446
446
  status: overview.daemon,
447
447
  health: overview.health,
448
448
  mode: overview.mode,
449
449
  socketPath: overview.socketPath,
450
- outlookUrl: overview.outlookUrl,
450
+ mailboxUrl: overview.mailboxUrl,
451
451
  entryPath: overview.entryPath,
452
452
  workerCount: overview.workerCount,
453
453
  senseCount: overview.senseCount,
454
454
  },
455
455
  });
456
456
  },
457
- readAgentState: (agentName) => (0, outlook_read_1.readOutlookAgentState)(agentName, { bundlesRoot: this.bundlesRoot }),
457
+ readAgentState: (agentName) => (0, mailbox_read_1.readMailboxAgentState)(agentName, { bundlesRoot: this.bundlesRoot }),
458
458
  readAgentView: (agentName) => {
459
- const agent = (0, outlook_read_1.readOutlookAgentState)(agentName, { bundlesRoot: this.bundlesRoot });
460
- return (0, outlook_view_1.buildOutlookAgentView)({
459
+ const agent = (0, mailbox_read_1.readMailboxAgentState)(agentName, { bundlesRoot: this.bundlesRoot });
460
+ return (0, mailbox_view_1.buildMailboxAgentView)({
461
461
  agent,
462
462
  viewer: { kind: "human" },
463
463
  });
@@ -476,12 +476,14 @@ class OuroDaemon {
476
476
  agentName: agent.name,
477
477
  agentRoot: path.join(this.bundlesRoot, `${agent.name}.ouro`),
478
478
  })));
479
+ const mailboxUrl = this.mailboxServer?.origin ?? "http://127.0.0.1:0";
479
480
  return {
480
481
  overview: {
481
482
  daemon: "running",
482
483
  health: workers.every((worker) => worker.status === "running") ? "ok" : "warn",
483
484
  socketPath: this.socketPath,
484
- outlookUrl: this.outlookServer?.origin ?? "http://127.0.0.1:0",
485
+ mailboxUrl,
486
+ outlookUrl: mailboxUrl,
485
487
  ...(0, runtime_metadata_1.getRuntimeMetadata)(),
486
488
  workerCount: workers.length,
487
489
  senseCount: senses.length,
@@ -622,18 +624,18 @@ class OuroDaemon {
622
624
  await this.drainPendingBundleMessages();
623
625
  await this.drainPendingSenseMessages();
624
626
  // startInner is only reachable when this.server is null (guarded in
625
- // start()), and stop() nulls out this.outlookServer alongside this.server,
626
- // so outlookServer is guaranteed unset here — no need for a guard.
627
+ // start()), and stop() nulls out this.mailboxServer alongside this.server,
628
+ // so mailboxServer is guaranteed unset here — no need for a guard.
627
629
  try {
628
- this.outlookServer = await this.outlookServerFactory();
630
+ this.mailboxServer = await this.mailboxServerFactory();
629
631
  }
630
632
  catch (error) {
631
633
  (0, runtime_1.emitNervesEvent)({
632
634
  level: "warn",
633
635
  component: "daemon",
634
- event: "daemon.outlook_start_failed",
635
- message: `Outlook server failed to start: ${String(error)}`,
636
- meta: { port: outlook_types_1.OUTLOOK_DEFAULT_PORT },
636
+ event: "daemon.mailbox_start_failed",
637
+ message: `Mailbox server failed to start: ${String(error)}`,
638
+ meta: { port: mailbox_types_1.MAILBOX_DEFAULT_PORT },
637
639
  });
638
640
  }
639
641
  }
@@ -948,9 +950,9 @@ class OuroDaemon {
948
950
  this.server.close();
949
951
  this.server = null;
950
952
  }
951
- if (this.outlookServer) {
952
- await this.outlookServer.stop();
953
- this.outlookServer = null;
953
+ if (this.mailboxServer) {
954
+ await this.mailboxServer.stop();
955
+ this.mailboxServer = null;
954
956
  }
955
957
  const socketPathExists = fs.existsSync(this.socketPath);
956
958
  const currentSocketIdentity = socketPathExists ? readSocketIdentity(this.socketPath) : null;
@@ -33,34 +33,34 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.createOutlookHttpReadHooks = createOutlookHttpReadHooks;
36
+ exports.createMailboxHttpReadHooks = createMailboxHttpReadHooks;
37
37
  const path = __importStar(require("path"));
38
- const outlook_read_1 = require("./outlook-read");
39
- function createOutlookHttpReadHooks(options) {
38
+ const mailbox_read_1 = require("./mailbox-read");
39
+ function createMailboxHttpReadHooks(options) {
40
40
  const bundlesRoot = options.bundlesRoot;
41
41
  const readOptions = bundlesRoot ? { bundlesRoot } : undefined;
42
42
  const agentRoot = (agentName) => path.join(bundlesRoot ?? "", `${agentName}.ouro`);
43
43
  return {
44
44
  agentRoot,
45
- readAgentSessions: options.readAgentSessions ?? ((agentName) => (0, outlook_read_1.readSessionInventory)(agentName, readOptions)),
46
- readAgentTranscript: options.readAgentTranscript ?? ((agentName, friendId, channel, key) => (0, outlook_read_1.readSessionTranscript)(agentName, friendId, channel, key, readOptions)),
47
- readAgentCoding: options.readAgentCoding ?? ((agentName) => (0, outlook_read_1.readCodingDeep)(agentRoot(agentName))),
48
- readAgentAttention: options.readAgentAttention ?? ((agentName) => (0, outlook_read_1.readAttentionView)(agentName, readOptions)),
49
- readAgentBridges: options.readAgentBridges ?? ((agentName) => (0, outlook_read_1.readBridgeInventory)(agentRoot(agentName))),
50
- readAgentNotes: options.readAgentNotes ?? ((agentName) => (0, outlook_read_1.readNotesView)(agentRoot(agentName))),
51
- readAgentFriends: options.readAgentFriends ?? ((agentName) => (0, outlook_read_1.readFriendView)(agentName, readOptions)),
52
- readAgentContinuity: options.readAgentContinuity ?? ((agentName) => (0, outlook_read_1.readOutlookContinuity)(agentRoot(agentName), agentName)),
53
- readAgentOrientation: options.readAgentOrientation ?? ((agentName) => (0, outlook_read_1.readOrientationView)(agentRoot(agentName), agentName)),
54
- readAgentObligations: options.readAgentObligations ?? ((agentName) => (0, outlook_read_1.readObligationDetailView)(agentRoot(agentName))),
55
- readAgentChanges: options.readAgentChanges ?? ((agentName) => (0, outlook_read_1.readChangesView)(agentRoot(agentName))),
56
- readAgentSelfFix: options.readAgentSelfFix ?? ((agentName) => (0, outlook_read_1.readSelfFixView)(agentRoot(agentName))),
57
- readAgentNoteDecisions: options.readAgentNoteDecisions ?? ((agentName) => (0, outlook_read_1.readNoteDecisionView)(agentRoot(agentName))),
58
- readAgentHabits: options.readAgentHabits ?? ((agentName) => (0, outlook_read_1.readHabitView)(agentRoot(agentName))),
59
- readAgentMail: options.readAgentMail ?? ((agentName) => (0, outlook_read_1.readMailView)(agentName)),
60
- readAgentMailMessage: options.readAgentMailMessage ?? ((agentName, messageId) => (0, outlook_read_1.readMailMessageView)(agentName, messageId)),
61
- readDaemonHealth: options.readDaemonHealth ?? (() => (0, outlook_read_1.readDaemonHealthDeep)(options.healthPath)),
62
- readLogs: options.readLogs ?? (() => (0, outlook_read_1.readLogView)(options.logPath ?? null)),
63
- readDeskPrefs: (agentName) => (0, outlook_read_1.readDeskPrefs)(agentRoot(agentName)),
64
- readNeedsMe: (agentName) => (0, outlook_read_1.readNeedsMeView)(agentName, readOptions),
45
+ readAgentSessions: options.readAgentSessions ?? ((agentName) => (0, mailbox_read_1.readSessionInventory)(agentName, readOptions)),
46
+ readAgentTranscript: options.readAgentTranscript ?? ((agentName, friendId, channel, key) => (0, mailbox_read_1.readSessionTranscript)(agentName, friendId, channel, key, readOptions)),
47
+ readAgentCoding: options.readAgentCoding ?? ((agentName) => (0, mailbox_read_1.readCodingDeep)(agentRoot(agentName))),
48
+ readAgentAttention: options.readAgentAttention ?? ((agentName) => (0, mailbox_read_1.readAttentionView)(agentName, readOptions)),
49
+ readAgentBridges: options.readAgentBridges ?? ((agentName) => (0, mailbox_read_1.readBridgeInventory)(agentRoot(agentName))),
50
+ readAgentNotes: options.readAgentNotes ?? ((agentName) => (0, mailbox_read_1.readNotesView)(agentRoot(agentName))),
51
+ readAgentFriends: options.readAgentFriends ?? ((agentName) => (0, mailbox_read_1.readFriendView)(agentName, readOptions)),
52
+ readAgentContinuity: options.readAgentContinuity ?? ((agentName) => (0, mailbox_read_1.readMailboxContinuity)(agentRoot(agentName), agentName)),
53
+ readAgentOrientation: options.readAgentOrientation ?? ((agentName) => (0, mailbox_read_1.readOrientationView)(agentRoot(agentName), agentName)),
54
+ readAgentObligations: options.readAgentObligations ?? ((agentName) => (0, mailbox_read_1.readObligationDetailView)(agentRoot(agentName))),
55
+ readAgentChanges: options.readAgentChanges ?? ((agentName) => (0, mailbox_read_1.readChangesView)(agentRoot(agentName))),
56
+ readAgentSelfFix: options.readAgentSelfFix ?? ((agentName) => (0, mailbox_read_1.readSelfFixView)(agentRoot(agentName))),
57
+ readAgentNoteDecisions: options.readAgentNoteDecisions ?? ((agentName) => (0, mailbox_read_1.readNoteDecisionView)(agentRoot(agentName))),
58
+ readAgentHabits: options.readAgentHabits ?? ((agentName) => (0, mailbox_read_1.readHabitView)(agentRoot(agentName))),
59
+ readAgentMail: options.readAgentMail ?? ((agentName) => (0, mailbox_read_1.readMailView)(agentName)),
60
+ readAgentMailMessage: options.readAgentMailMessage ?? ((agentName, messageId) => (0, mailbox_read_1.readMailMessageView)(agentName, messageId)),
61
+ readDaemonHealth: options.readDaemonHealth ?? (() => (0, mailbox_read_1.readDaemonHealthDeep)(options.healthPath)),
62
+ readLogs: options.readLogs ?? (() => (0, mailbox_read_1.readLogView)(options.logPath ?? null)),
63
+ readDeskPrefs: (agentName) => (0, mailbox_read_1.readDeskPrefs)(agentRoot(agentName)),
64
+ readNeedsMe: (agentName) => (0, mailbox_read_1.readNeedsMeView)(agentName, readOptions),
65
65
  };
66
66
  }