open-agents-ai 0.185.45 → 0.185.47
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 +33 -9
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -41474,6 +41474,11 @@ function detectPersonaPlexCapability() {
|
|
|
41474
41474
|
return fail("No NVIDIA GPU detected (nvidia-smi not found)");
|
|
41475
41475
|
}
|
|
41476
41476
|
}
|
|
41477
|
+
function fileLink2(filePath, label) {
|
|
41478
|
+
const url = `file://${filePath.replace(/\\/g, "/")}`;
|
|
41479
|
+
const text = label ?? filePath;
|
|
41480
|
+
return `\x1B]8;;${url}\x1B\\${text}\x1B]8;;\x1B\\`;
|
|
41481
|
+
}
|
|
41477
41482
|
function isPersonaPlexRunning() {
|
|
41478
41483
|
if (!existsSync37(PID_FILE))
|
|
41479
41484
|
return false;
|
|
@@ -41995,7 +42000,7 @@ print('Converted')
|
|
|
41995
42000
|
if (child.pid)
|
|
41996
42001
|
process.kill(child.pid, 0);
|
|
41997
42002
|
} catch {
|
|
41998
|
-
log(`PersonaPlex daemon exited unexpectedly. Check ${LOG_FILE}`);
|
|
42003
|
+
log(`PersonaPlex daemon exited unexpectedly. Check ${fileLink2(LOG_FILE, "daemon.log")}`);
|
|
41999
42004
|
return null;
|
|
42000
42005
|
}
|
|
42001
42006
|
try {
|
|
@@ -42014,7 +42019,7 @@ print('Converted')
|
|
|
42014
42019
|
if (elapsed % 10 === 0)
|
|
42015
42020
|
log(`Still loading... (${elapsed}s)`);
|
|
42016
42021
|
}
|
|
42017
|
-
log(`PersonaPlex daemon failed to start within 120s. Check ${LOG_FILE}`);
|
|
42022
|
+
log(`PersonaPlex daemon failed to start within 120s. Check ${fileLink2(LOG_FILE, "daemon.log")}`);
|
|
42018
42023
|
return null;
|
|
42019
42024
|
}
|
|
42020
42025
|
function stopPersonaPlex() {
|
|
@@ -43423,6 +43428,14 @@ function detectPkgManager() {
|
|
|
43423
43428
|
if (plat === "win32") {
|
|
43424
43429
|
if (hasCmd("choco"))
|
|
43425
43430
|
return "choco";
|
|
43431
|
+
if (hasCmd("winget"))
|
|
43432
|
+
return "winget";
|
|
43433
|
+
try {
|
|
43434
|
+
execSync28(`powershell -NoProfile -Command "Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))"`, { stdio: "pipe", timeout: 12e4 });
|
|
43435
|
+
if (hasCmd("choco"))
|
|
43436
|
+
return "choco";
|
|
43437
|
+
} catch {
|
|
43438
|
+
}
|
|
43426
43439
|
return null;
|
|
43427
43440
|
}
|
|
43428
43441
|
if (plat === "darwin") {
|
|
@@ -43558,10 +43571,10 @@ async function ensureVisionDeps(onInfo, getSudoPassword) {
|
|
|
43558
43571
|
const getPassword = getSudoPassword ?? (() => Promise.resolve(null));
|
|
43559
43572
|
const allDeps = [
|
|
43560
43573
|
// Vision + OCR
|
|
43561
|
-
{ binary: "tesseract", label: "tesseract-ocr", pkgs: { apt: "tesseract-ocr", dnf: "tesseract", pacman: "tesseract", brew: "tesseract", choco: "tesseract" } },
|
|
43562
|
-
{ binary: "pdftotext", label: "poppler-utils", pkgs: { apt: "poppler-utils", dnf: "poppler-utils", pacman: "poppler", brew: "poppler", choco: "poppler" } },
|
|
43563
|
-
{ binary: "gs", label: "ghostscript", pkgs: { apt: "ghostscript", dnf: "ghostscript", pacman: "ghostscript", brew: "ghostscript", choco: "ghostscript" } },
|
|
43564
|
-
{ binary: "ocrmypdf", label: "ocrmypdf", pkgs: { apt: "ocrmypdf", dnf: "ocrmypdf", pacman: "ocrmypdf", brew: "ocrmypdf", choco: "ocrmypdf" } },
|
|
43574
|
+
{ binary: "tesseract", label: "tesseract-ocr", pkgs: { apt: "tesseract-ocr", dnf: "tesseract", pacman: "tesseract", brew: "tesseract", choco: "tesseract", winget: "UB-Mannheim.TesseractOCR" } },
|
|
43575
|
+
{ binary: "pdftotext", label: "poppler-utils", pkgs: { apt: "poppler-utils", dnf: "poppler-utils", pacman: "poppler", brew: "poppler", choco: "poppler", winget: "freedesktop.poppler" } },
|
|
43576
|
+
{ binary: "gs", label: "ghostscript", pkgs: { apt: "ghostscript", dnf: "ghostscript", pacman: "ghostscript", brew: "ghostscript", choco: "ghostscript", winget: "ArtifexSoftware.GhostScript" } },
|
|
43577
|
+
{ binary: "ocrmypdf", label: "ocrmypdf", pkgs: { apt: "ocrmypdf", dnf: "ocrmypdf", pacman: "ocrmypdf", brew: "ocrmypdf", choco: "ocrmypdf", winget: "" } },
|
|
43565
43578
|
// Desktop interaction — screenshot + mouse control for desktop_click/desktop_describe
|
|
43566
43579
|
...process.platform === "darwin" ? [
|
|
43567
43580
|
// macOS: screencapture is built-in, cliclick needed for mouse control
|
|
@@ -43587,7 +43600,7 @@ async function ensureVisionDeps(onInfo, getSudoPassword) {
|
|
|
43587
43600
|
} else {
|
|
43588
43601
|
const labels = missing.map((d) => d.label).join(", ");
|
|
43589
43602
|
log(`Installing ${labels}...`);
|
|
43590
|
-
const needsSudo = pm2 !== "brew" && pm2 !== "choco";
|
|
43603
|
+
const needsSudo = pm2 !== "brew" && pm2 !== "choco" && pm2 !== "winget";
|
|
43591
43604
|
let batchCmd;
|
|
43592
43605
|
switch (pm2) {
|
|
43593
43606
|
case "apt":
|
|
@@ -43605,6 +43618,9 @@ async function ensureVisionDeps(onInfo, getSudoPassword) {
|
|
|
43605
43618
|
case "choco":
|
|
43606
43619
|
batchCmd = `choco install -y ${pkgNames.join(" ")}`;
|
|
43607
43620
|
break;
|
|
43621
|
+
case "winget":
|
|
43622
|
+
batchCmd = pkgNames.map((p) => `winget install --accept-source-agreements --accept-package-agreements ${p}`).join(" && ");
|
|
43623
|
+
break;
|
|
43608
43624
|
default:
|
|
43609
43625
|
batchCmd = `echo "unsupported pm: ${pm2}" && exit 1`;
|
|
43610
43626
|
break;
|
|
@@ -49835,7 +49851,11 @@ async function handleSlashCommand(input, ctx) {
|
|
|
49835
49851
|
if (url) {
|
|
49836
49852
|
renderInfo(`PersonaPlex ready at ${url} \u2014 use /call for full-duplex voice`);
|
|
49837
49853
|
} else {
|
|
49838
|
-
|
|
49854
|
+
{
|
|
49855
|
+
const _lf = __require("path").join(__require("os").homedir(), ".open-agents", "voice", "personaplex", "daemon.log");
|
|
49856
|
+
const _url = `file://${_lf.replace(/\\\\/g, "/")}`;
|
|
49857
|
+
renderError(`PersonaPlex daemon failed to start. Check \x1B]8;;${_url}\x1B\\daemon.log\x1B]8;;\x1B\\`);
|
|
49858
|
+
}
|
|
49839
49859
|
}
|
|
49840
49860
|
}
|
|
49841
49861
|
} catch (e) {
|
|
@@ -49852,7 +49872,11 @@ async function handleSlashCommand(input, ctx) {
|
|
|
49852
49872
|
if (url) {
|
|
49853
49873
|
renderInfo(`PersonaPlex ready at ${url} \u2014 use /call for full-duplex voice`);
|
|
49854
49874
|
} else {
|
|
49855
|
-
|
|
49875
|
+
{
|
|
49876
|
+
const _lf = __require("path").join(__require("os").homedir(), ".open-agents", "voice", "personaplex", "daemon.log");
|
|
49877
|
+
const _url = `file://${_lf.replace(/\\\\/g, "/")}`;
|
|
49878
|
+
renderError(`PersonaPlex daemon failed to start. Check \x1B]8;;${_url}\x1B\\daemon.log\x1B]8;;\x1B\\`);
|
|
49879
|
+
}
|
|
49856
49880
|
}
|
|
49857
49881
|
}).catch(() => {
|
|
49858
49882
|
});
|
package/package.json
CHANGED