open-agents-ai 0.185.47 → 0.185.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +137 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -41345,6 +41345,91 @@ var init_tui_select = __esm({
|
|
|
41345
41345
|
}
|
|
41346
41346
|
});
|
|
41347
41347
|
|
|
41348
|
+
// packages/cli/dist/tui/daemon-registry.js
|
|
41349
|
+
var DaemonRegistry, registry;
|
|
41350
|
+
var init_daemon_registry = __esm({
|
|
41351
|
+
"packages/cli/dist/tui/daemon-registry.js"() {
|
|
41352
|
+
"use strict";
|
|
41353
|
+
DaemonRegistry = class {
|
|
41354
|
+
daemons = /* @__PURE__ */ new Map();
|
|
41355
|
+
subAgents = /* @__PURE__ */ new Map();
|
|
41356
|
+
register(daemon) {
|
|
41357
|
+
this.daemons.set(daemon.name, daemon);
|
|
41358
|
+
}
|
|
41359
|
+
unregister(name) {
|
|
41360
|
+
this.daemons.delete(name);
|
|
41361
|
+
}
|
|
41362
|
+
registerAgent(agent) {
|
|
41363
|
+
this.subAgents.set(agent.id, agent);
|
|
41364
|
+
}
|
|
41365
|
+
unregisterAgent(id) {
|
|
41366
|
+
this.subAgents.delete(id);
|
|
41367
|
+
}
|
|
41368
|
+
/** Check if PIDs are still alive, update status accordingly */
|
|
41369
|
+
refresh() {
|
|
41370
|
+
for (const [, d] of this.daemons) {
|
|
41371
|
+
if (d.status === "stopped" || d.status === "error")
|
|
41372
|
+
continue;
|
|
41373
|
+
try {
|
|
41374
|
+
process.kill(d.pid, 0);
|
|
41375
|
+
if (d.status === "starting")
|
|
41376
|
+
d.status = "running";
|
|
41377
|
+
} catch {
|
|
41378
|
+
d.status = "stopped";
|
|
41379
|
+
}
|
|
41380
|
+
}
|
|
41381
|
+
}
|
|
41382
|
+
/** Kill all tracked daemons (called on exit/update) */
|
|
41383
|
+
killAll() {
|
|
41384
|
+
const pids = [];
|
|
41385
|
+
for (const [, d] of this.daemons) {
|
|
41386
|
+
try {
|
|
41387
|
+
process.kill(d.pid, "SIGTERM");
|
|
41388
|
+
pids.push(d.pid);
|
|
41389
|
+
} catch {
|
|
41390
|
+
}
|
|
41391
|
+
}
|
|
41392
|
+
if (pids.length > 0) {
|
|
41393
|
+
setTimeout(() => {
|
|
41394
|
+
for (const pid of pids) {
|
|
41395
|
+
try {
|
|
41396
|
+
process.kill(pid, "SIGKILL");
|
|
41397
|
+
} catch {
|
|
41398
|
+
}
|
|
41399
|
+
}
|
|
41400
|
+
}, 3e3);
|
|
41401
|
+
}
|
|
41402
|
+
}
|
|
41403
|
+
/** Render the monitoring bar as an ANSI string */
|
|
41404
|
+
renderBar(width) {
|
|
41405
|
+
this.refresh();
|
|
41406
|
+
let bar = "";
|
|
41407
|
+
for (const [, d] of this.daemons) {
|
|
41408
|
+
const dot = d.status === "running" ? "\x1B[32m\u25CF\x1B[0m" : d.status === "error" ? "\x1B[31m\u25CF\x1B[0m" : d.status === "starting" ? "\x1B[33m\u25CF\x1B[0m" : "\x1B[31m\u25CF\x1B[0m";
|
|
41409
|
+
bar += ` \x1B[35m[${d.name} ${dot}\x1B[35m]\x1B[0m`;
|
|
41410
|
+
}
|
|
41411
|
+
for (const [, a] of this.subAgents) {
|
|
41412
|
+
if (a.status === "completed")
|
|
41413
|
+
continue;
|
|
41414
|
+
const dot = a.status === "active" ? "\x1B[32m\u25CF\x1B[0m" : "\x1B[33m\u25CF\x1B[0m";
|
|
41415
|
+
const color = a.type === "call" ? "\x1B[33m" : "\x1B[36m";
|
|
41416
|
+
const label = `${a.type}:${a.id.length > 6 ? a.id.slice(-6) : a.id}`;
|
|
41417
|
+
bar += ` ${color}[${label} ${dot}${color}]\x1B[0m`;
|
|
41418
|
+
}
|
|
41419
|
+
if (!bar) {
|
|
41420
|
+
return " \x1B[38;5;240m\u2800 no active daemons\x1B[0m";
|
|
41421
|
+
}
|
|
41422
|
+
return bar;
|
|
41423
|
+
}
|
|
41424
|
+
/** True if any daemons or sub-agents are registered */
|
|
41425
|
+
get hasEntries() {
|
|
41426
|
+
return this.daemons.size > 0 || this.subAgents.size > 0;
|
|
41427
|
+
}
|
|
41428
|
+
};
|
|
41429
|
+
registry = new DaemonRegistry();
|
|
41430
|
+
}
|
|
41431
|
+
});
|
|
41432
|
+
|
|
41348
41433
|
// packages/cli/dist/tui/personaplex.js
|
|
41349
41434
|
var personaplex_exports = {};
|
|
41350
41435
|
__export(personaplex_exports, {
|
|
@@ -41987,6 +42072,16 @@ print('Converted')
|
|
|
41987
42072
|
if (child.pid) {
|
|
41988
42073
|
writeFileSync16(PID_FILE, String(child.pid));
|
|
41989
42074
|
writeFileSync16(PORT_FILE, String(PORT));
|
|
42075
|
+
registry.register({
|
|
42076
|
+
name: "PersonaPlex",
|
|
42077
|
+
pid: child.pid,
|
|
42078
|
+
port: PORT,
|
|
42079
|
+
startedAt: Date.now(),
|
|
42080
|
+
status: "starting",
|
|
42081
|
+
logFile: LOG_FILE,
|
|
42082
|
+
tier,
|
|
42083
|
+
hybrid: hybridEnabled
|
|
42084
|
+
});
|
|
41990
42085
|
}
|
|
41991
42086
|
child.unref();
|
|
41992
42087
|
const { createWriteStream } = await import("node:fs");
|
|
@@ -42295,6 +42390,7 @@ var init_personaplex = __esm({
|
|
|
42295
42390
|
"packages/cli/dist/tui/personaplex.js"() {
|
|
42296
42391
|
"use strict";
|
|
42297
42392
|
init_render();
|
|
42393
|
+
init_daemon_registry();
|
|
42298
42394
|
WEIGHT_REPOS = {
|
|
42299
42395
|
original: { repo: "nvidia/personaplex-7b-v1", file: "model.safetensors", sizeGB: 15.6, needsToken: true },
|
|
42300
42396
|
nf4: { repo: "cudabenchmarktest/personaplex-7b-nf4", file: "model-nf4.safetensors", sizeGB: 4.1, needsToken: false },
|
|
@@ -43441,6 +43537,12 @@ function detectPkgManager() {
|
|
|
43441
43537
|
if (plat === "darwin") {
|
|
43442
43538
|
if (hasCmd("brew"))
|
|
43443
43539
|
return "brew";
|
|
43540
|
+
try {
|
|
43541
|
+
execSync28('/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"', { stdio: "pipe", timeout: 3e5, env: { ...process.env, NONINTERACTIVE: "1" } });
|
|
43542
|
+
if (hasCmd("brew"))
|
|
43543
|
+
return "brew";
|
|
43544
|
+
} catch {
|
|
43545
|
+
}
|
|
43444
43546
|
return null;
|
|
43445
43547
|
}
|
|
43446
43548
|
if (hasCmd("apt-get"))
|
|
@@ -46602,6 +46704,7 @@ var init_voice = __esm({
|
|
|
46602
46704
|
"packages/cli/dist/tui/voice.js"() {
|
|
46603
46705
|
"use strict";
|
|
46604
46706
|
init_render();
|
|
46707
|
+
init_daemon_registry();
|
|
46605
46708
|
VOICE_MODELS = {
|
|
46606
46709
|
glados: {
|
|
46607
46710
|
id: "glados",
|
|
@@ -48206,6 +48309,14 @@ if __name__ == '__main__':
|
|
|
48206
48309
|
try {
|
|
48207
48310
|
const msg = JSON.parse(line);
|
|
48208
48311
|
if (msg.type === "ready") {
|
|
48312
|
+
if (daemon.pid) {
|
|
48313
|
+
registry.register({
|
|
48314
|
+
name: "LuxTTS",
|
|
48315
|
+
pid: daemon.pid,
|
|
48316
|
+
startedAt: Date.now(),
|
|
48317
|
+
status: "running"
|
|
48318
|
+
});
|
|
48319
|
+
}
|
|
48209
48320
|
resolve36(true);
|
|
48210
48321
|
} else if (msg.type === "result" || msg.type === "error") {
|
|
48211
48322
|
const pending = this._luxttsPending.get(msg.id);
|
|
@@ -48223,6 +48334,7 @@ if __name__ == '__main__':
|
|
|
48223
48334
|
});
|
|
48224
48335
|
daemon.on("exit", () => {
|
|
48225
48336
|
this._luxttsDaemon = null;
|
|
48337
|
+
registry.unregister("LuxTTS");
|
|
48226
48338
|
for (const [, p] of this._luxttsPending) {
|
|
48227
48339
|
p.reject(new Error("LuxTTS daemon exited"));
|
|
48228
48340
|
}
|
|
@@ -53376,6 +53488,7 @@ async function handleUpdate(subcommand, ctx) {
|
|
|
53376
53488
|
installOverlay.dismiss();
|
|
53377
53489
|
return;
|
|
53378
53490
|
}
|
|
53491
|
+
registry.killAll();
|
|
53379
53492
|
ctx.contextSave?.();
|
|
53380
53493
|
const hadActiveTask = ctx.savePendingTaskState?.() ?? false;
|
|
53381
53494
|
const resumeFlag = hadActiveTask ? "1" : "update-only";
|
|
@@ -53840,6 +53953,7 @@ var init_commands = __esm({
|
|
|
53840
53953
|
init_overlay_lock();
|
|
53841
53954
|
init_drop_panel();
|
|
53842
53955
|
init_neovim_mode();
|
|
53956
|
+
init_daemon_registry();
|
|
53843
53957
|
DASH_INTERNAL = /* @__PURE__ */ new Set(["system_metrics", "__list_capabilities"]);
|
|
53844
53958
|
}
|
|
53845
53959
|
});
|
|
@@ -62028,6 +62142,7 @@ var init_status_bar = __esm({
|
|
|
62028
62142
|
init_braille_spinner();
|
|
62029
62143
|
init_system_metrics();
|
|
62030
62144
|
init_text_selection();
|
|
62145
|
+
init_daemon_registry();
|
|
62031
62146
|
EXPERT_TOOL_BASELINES = {
|
|
62032
62147
|
file_read: 12,
|
|
62033
62148
|
structured_read: 15,
|
|
@@ -64223,9 +64338,13 @@ ${CONTENT_BG_SEQ}`);
|
|
|
64223
64338
|
}
|
|
64224
64339
|
/**
|
|
64225
64340
|
* Build the content for the buffer line.
|
|
64226
|
-
*
|
|
64341
|
+
* When daemons/agents are tracked: shows monitoring bar with status dots.
|
|
64342
|
+
* Otherwise: braille animation when processing, empty when idle.
|
|
64227
64343
|
*/
|
|
64228
64344
|
buildBufferContent(width) {
|
|
64345
|
+
if (registry.hasEntries) {
|
|
64346
|
+
return registry.renderBar(width);
|
|
64347
|
+
}
|
|
64229
64348
|
if (this._processing && this._brailleSpinner.isRunning) {
|
|
64230
64349
|
return this._brailleSpinner.render(width, PANEL_BG + 1);
|
|
64231
64350
|
}
|
|
@@ -68031,6 +68150,7 @@ async function startInteractive(config, repoPath) {
|
|
|
68031
68150
|
if (_shellToolRef)
|
|
68032
68151
|
_shellToolRef.killAll();
|
|
68033
68152
|
killAllFullSubAgents();
|
|
68153
|
+
registry.killAll();
|
|
68034
68154
|
restoreScreen();
|
|
68035
68155
|
process.exit(code);
|
|
68036
68156
|
};
|
|
@@ -70023,6 +70143,21 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
|
|
|
70023
70143
|
});
|
|
70024
70144
|
if (!result.success)
|
|
70025
70145
|
throw new Error(result.error || "Connect failed");
|
|
70146
|
+
try {
|
|
70147
|
+
const nexusPidFile = join71(repoRoot, ".oa", "nexus", "daemon.pid");
|
|
70148
|
+
if (existsSync54(nexusPidFile)) {
|
|
70149
|
+
const pid = parseInt(readFileSync43(nexusPidFile, "utf8").trim(), 10);
|
|
70150
|
+
if (pid > 0) {
|
|
70151
|
+
registry.register({
|
|
70152
|
+
name: "Nexus",
|
|
70153
|
+
pid,
|
|
70154
|
+
startedAt: Date.now(),
|
|
70155
|
+
status: "running"
|
|
70156
|
+
});
|
|
70157
|
+
}
|
|
70158
|
+
}
|
|
70159
|
+
} catch {
|
|
70160
|
+
}
|
|
70026
70161
|
return result.output;
|
|
70027
70162
|
},
|
|
70028
70163
|
// ── P2P mesh controls ────────────────────────────────────────────────
|
|
@@ -71510,6 +71645,7 @@ var init_interactive = __esm({
|
|
|
71510
71645
|
init_emotion_engine();
|
|
71511
71646
|
init_telegram_bridge();
|
|
71512
71647
|
init_status_bar();
|
|
71648
|
+
init_daemon_registry();
|
|
71513
71649
|
init_dist6();
|
|
71514
71650
|
init_overlay_lock();
|
|
71515
71651
|
init_neovim_mode();
|
package/package.json
CHANGED