open-agents-ai 0.138.27 → 0.138.28
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 +59 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -41935,7 +41935,7 @@ async function handleVoiceList(ctx, focusFilename) {
|
|
|
41935
41935
|
title: focusFilename ? "Voice Clone References \u2014 Press any key to name your new voice" : "Voice Clone References",
|
|
41936
41936
|
rl: ctx.rl,
|
|
41937
41937
|
availableRows: ctx.availableContentRows?.(),
|
|
41938
|
-
customKeyHint: " e rename p play",
|
|
41938
|
+
customKeyHint: " e rename p play x export i import",
|
|
41939
41939
|
onDelete: (item, done) => {
|
|
41940
41940
|
if (ctx.voiceDeleteClone?.(item.key)) {
|
|
41941
41941
|
done(true);
|
|
@@ -41987,6 +41987,55 @@ async function handleVoiceList(ctx, focusFilename) {
|
|
|
41987
41987
|
});
|
|
41988
41988
|
return true;
|
|
41989
41989
|
}
|
|
41990
|
+
if (key === "x" || key === "X") {
|
|
41991
|
+
const clone = clones.find((cl) => cl.filename === item.key);
|
|
41992
|
+
if (!clone)
|
|
41993
|
+
return false;
|
|
41994
|
+
const { join: pjoin2 } = __require("node:path");
|
|
41995
|
+
const defaultPath = pjoin2(process.cwd(), clone.filename);
|
|
41996
|
+
helpers.getInput("Export to:", defaultPath).then((destPath) => {
|
|
41997
|
+
if (destPath !== null && destPath.trim()) {
|
|
41998
|
+
try {
|
|
41999
|
+
const { copyFileSync: copyFileSync2 } = __require("node:fs");
|
|
42000
|
+
copyFileSync2(clone.path, destPath.trim());
|
|
42001
|
+
renderInfo(`Exported "${clone.name}" \u2192 ${destPath.trim()}`);
|
|
42002
|
+
} catch (err) {
|
|
42003
|
+
renderError(`Export failed: ${err.message}`);
|
|
42004
|
+
}
|
|
42005
|
+
}
|
|
42006
|
+
helpers.render();
|
|
42007
|
+
});
|
|
42008
|
+
return true;
|
|
42009
|
+
}
|
|
42010
|
+
if (key === "i" || key === "I") {
|
|
42011
|
+
helpers.getInput("Import from (file path):").then((srcPath) => {
|
|
42012
|
+
if (srcPath !== null && srcPath.trim()) {
|
|
42013
|
+
const src = srcPath.trim();
|
|
42014
|
+
try {
|
|
42015
|
+
const { existsSync: fe, copyFileSync: cpf, mkdirSync: mkd } = __require("node:fs");
|
|
42016
|
+
const { basename: basename16, join: pjoin } = __require("node:path");
|
|
42017
|
+
if (!fe(src)) {
|
|
42018
|
+
renderError(`File not found: ${src}`);
|
|
42019
|
+
helpers.render();
|
|
42020
|
+
return;
|
|
42021
|
+
}
|
|
42022
|
+
const refsDir = pjoin(__require("node:os").homedir(), ".open-agents", "voice", "clone-refs");
|
|
42023
|
+
mkd(refsDir, { recursive: true });
|
|
42024
|
+
const destName = basename16(src);
|
|
42025
|
+
const dest = pjoin(refsDir, destName);
|
|
42026
|
+
cpf(src, dest);
|
|
42027
|
+
renderInfo(`Imported "${destName}" \u2192 ${dest}`);
|
|
42028
|
+
helpers.done();
|
|
42029
|
+
} catch (err) {
|
|
42030
|
+
renderError(`Import failed: ${err.message}`);
|
|
42031
|
+
helpers.render();
|
|
42032
|
+
}
|
|
42033
|
+
} else {
|
|
42034
|
+
helpers.render();
|
|
42035
|
+
}
|
|
42036
|
+
});
|
|
42037
|
+
return true;
|
|
42038
|
+
}
|
|
41990
42039
|
return false;
|
|
41991
42040
|
}
|
|
41992
42041
|
});
|
|
@@ -53707,8 +53756,10 @@ async function startInteractive(config, repoPath) {
|
|
|
53707
53756
|
streamRenderer.onRenderedLine = (line) => statusBar.bufferContentLine(line);
|
|
53708
53757
|
if (savedSettings.voice) {
|
|
53709
53758
|
if (savedSettings.voiceModel) {
|
|
53710
|
-
voiceEngine.
|
|
53711
|
-
|
|
53759
|
+
voiceEngine.modelId = savedSettings.voiceModel;
|
|
53760
|
+
}
|
|
53761
|
+
if (savedSettings.voiceCloneRef) {
|
|
53762
|
+
voiceEngine.luxttsCloneRef = savedSettings.voiceCloneRef;
|
|
53712
53763
|
}
|
|
53713
53764
|
voiceEngine.toggle().then((msg) => {
|
|
53714
53765
|
if (statusBar?.isActive && !statusBar.isStreaming) {
|
|
@@ -54391,7 +54442,11 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
|
|
|
54391
54442
|
voiceEngine.renameCloneRef(filename, newName);
|
|
54392
54443
|
},
|
|
54393
54444
|
voiceSetActiveClone(filename) {
|
|
54394
|
-
|
|
54445
|
+
const msg = voiceEngine.setActiveCloneRef(filename);
|
|
54446
|
+
if (voiceEngine.luxttsCloneRef) {
|
|
54447
|
+
saveGlobalSettings({ voiceCloneRef: voiceEngine.luxttsCloneRef });
|
|
54448
|
+
}
|
|
54449
|
+
return msg;
|
|
54395
54450
|
},
|
|
54396
54451
|
voiceSpeak(text) {
|
|
54397
54452
|
voiceEngine.speak(text);
|
package/package.json
CHANGED