@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.
- package/README.md +1 -1
- package/changelog.json +16 -0
- package/dist/heart/daemon/cli-exec.js +32 -12
- package/dist/heart/daemon/cli-help.js +5 -0
- package/dist/heart/daemon/cli-parse.js +8 -4
- package/dist/heart/daemon/cli-render.js +6 -2
- package/dist/heart/daemon/daemon-entry.js +1 -1
- package/dist/heart/daemon/daemon.js +29 -27
- package/dist/heart/{outlook/outlook-http-hooks.js → mailbox/mailbox-http-hooks.js} +23 -23
- package/dist/heart/{outlook/outlook-http-routes.js → mailbox/mailbox-http-routes.js} +45 -43
- package/dist/heart/{outlook/outlook-http-static.js → mailbox/mailbox-http-static.js} +13 -13
- package/dist/heart/{outlook/outlook-http-transport.js → mailbox/mailbox-http-transport.js} +1 -1
- package/dist/heart/{outlook/outlook-http.js → mailbox/mailbox-http.js} +15 -15
- package/dist/heart/{outlook/outlook-read.js → mailbox/mailbox-read.js} +4 -4
- package/dist/heart/{outlook/outlook-types.js → mailbox/mailbox-types.js} +9 -9
- package/dist/heart/{outlook/outlook-view.js → mailbox/mailbox-view.js} +11 -11
- package/dist/heart/{outlook → mailbox}/readers/agent-machine.js +10 -10
- package/dist/heart/{outlook → mailbox}/readers/continuity-readers.js +18 -16
- package/dist/heart/{outlook → mailbox}/readers/mail.js +11 -11
- package/dist/heart/{outlook → mailbox}/readers/runtime-readers.js +6 -5
- package/dist/heart/{outlook → mailbox}/readers/sessions.js +2 -2
- package/dist/heart/{outlook → mailbox}/readers/shared.js +2 -2
- package/dist/nerves/coverage/file-completeness.js +10 -10
- package/dist/senses/cli/ouro-tui.js +1 -1
- package/package.json +4 -4
- /package/dist/heart/{outlook/outlook-http-response.js → mailbox/mailbox-http-response.js} +0 -0
- /package/dist/{outlook-ui → mailbox-ui}/assets/index-BPr5vNuM.css +0 -0
- /package/dist/{outlook-ui → mailbox-ui}/assets/index-Cm51CY9W.js +0 -0
- /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),
|
|
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 === "
|
|
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:
|
|
6268
|
-
const
|
|
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(
|
|
6272
|
-
return
|
|
6287
|
+
deps.writeStdout(mailboxUrl);
|
|
6288
|
+
return mailboxUrl;
|
|
6273
6289
|
}
|
|
6274
|
-
/* v8 ignore start — error path:
|
|
6275
|
-
if (
|
|
6276
|
-
deps.writeStdout(
|
|
6277
|
-
return
|
|
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(`${
|
|
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 =
|
|
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
|
-
?
|
|
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 (
|
|
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
|
-
|
|
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: "
|
|
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
|
-
|
|
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.
|
|
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,
|
|
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
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
const
|
|
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
|
-
|
|
417
|
+
mailboxServer = null;
|
|
418
418
|
socketIdentity = null;
|
|
419
419
|
senseAutostartTimer = null;
|
|
420
|
-
|
|
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.
|
|
431
|
+
this.mailboxServerFactory = options.mailboxServerFactory ?? this.createDefaultMailboxServer.bind(this);
|
|
432
432
|
this.onStopCommandComplete = options.onStopCommandComplete ?? null;
|
|
433
433
|
}
|
|
434
|
-
/* v8 ignore start -- default
|
|
435
|
-
|
|
436
|
-
return (0,
|
|
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:
|
|
438
|
+
port: mailbox_types_1.MAILBOX_DEFAULT_PORT,
|
|
439
439
|
bundlesRoot: this.bundlesRoot,
|
|
440
|
-
readMachineState: () => (0,
|
|
440
|
+
readMachineState: () => (0, mailbox_read_1.readMailboxMachineState)({ bundlesRoot: this.bundlesRoot }),
|
|
441
441
|
readMachineView: ({ machine }) => {
|
|
442
442
|
const overview = this.buildStatusPayload().overview;
|
|
443
|
-
return (0,
|
|
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
|
-
|
|
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,
|
|
457
|
+
readAgentState: (agentName) => (0, mailbox_read_1.readMailboxAgentState)(agentName, { bundlesRoot: this.bundlesRoot }),
|
|
458
458
|
readAgentView: (agentName) => {
|
|
459
|
-
const agent = (0,
|
|
460
|
-
return (0,
|
|
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
|
-
|
|
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.
|
|
626
|
-
// so
|
|
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.
|
|
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.
|
|
635
|
-
message: `
|
|
636
|
-
meta: { 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.
|
|
952
|
-
await this.
|
|
953
|
-
this.
|
|
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.
|
|
36
|
+
exports.createMailboxHttpReadHooks = createMailboxHttpReadHooks;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const
|
|
39
|
-
function
|
|
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,
|
|
46
|
-
readAgentTranscript: options.readAgentTranscript ?? ((agentName, friendId, channel, key) => (0,
|
|
47
|
-
readAgentCoding: options.readAgentCoding ?? ((agentName) => (0,
|
|
48
|
-
readAgentAttention: options.readAgentAttention ?? ((agentName) => (0,
|
|
49
|
-
readAgentBridges: options.readAgentBridges ?? ((agentName) => (0,
|
|
50
|
-
readAgentNotes: options.readAgentNotes ?? ((agentName) => (0,
|
|
51
|
-
readAgentFriends: options.readAgentFriends ?? ((agentName) => (0,
|
|
52
|
-
readAgentContinuity: options.readAgentContinuity ?? ((agentName) => (0,
|
|
53
|
-
readAgentOrientation: options.readAgentOrientation ?? ((agentName) => (0,
|
|
54
|
-
readAgentObligations: options.readAgentObligations ?? ((agentName) => (0,
|
|
55
|
-
readAgentChanges: options.readAgentChanges ?? ((agentName) => (0,
|
|
56
|
-
readAgentSelfFix: options.readAgentSelfFix ?? ((agentName) => (0,
|
|
57
|
-
readAgentNoteDecisions: options.readAgentNoteDecisions ?? ((agentName) => (0,
|
|
58
|
-
readAgentHabits: options.readAgentHabits ?? ((agentName) => (0,
|
|
59
|
-
readAgentMail: options.readAgentMail ?? ((agentName) => (0,
|
|
60
|
-
readAgentMailMessage: options.readAgentMailMessage ?? ((agentName, messageId) => (0,
|
|
61
|
-
readDaemonHealth: options.readDaemonHealth ?? (() => (0,
|
|
62
|
-
readLogs: options.readLogs ?? (() => (0,
|
|
63
|
-
readDeskPrefs: (agentName) => (0,
|
|
64
|
-
readNeedsMe: (agentName) => (0,
|
|
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
|
}
|