@proxysoul/soulforge 2.20.13 → 2.20.15
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 +151 -21
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -72068,7 +72068,7 @@ var package_default;
|
|
|
72068
72068
|
var init_package = __esm(() => {
|
|
72069
72069
|
package_default = {
|
|
72070
72070
|
name: "@proxysoul/soulforge",
|
|
72071
|
-
version: "2.20.
|
|
72071
|
+
version: "2.20.15",
|
|
72072
72072
|
description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
|
|
72073
72073
|
repository: {
|
|
72074
72074
|
type: "git",
|
|
@@ -94658,7 +94658,7 @@ var init_opencode_go = __esm(() => {
|
|
|
94658
94658
|
{ id: "kimi-k2.6", name: "Kimi K2.6" },
|
|
94659
94659
|
{ id: "minimax-m3", name: "MiniMax M3" },
|
|
94660
94660
|
{ id: "mimo-v2.5-pro", name: "MiMo V2.5 Pro" },
|
|
94661
|
-
{ id: "qwen3.7-
|
|
94661
|
+
{ id: "qwen3.7-plus", name: "Qwen3.7 Plus" },
|
|
94662
94662
|
{ id: "deepseek-v4-pro", name: "DeepSeek V4 Pro" },
|
|
94663
94663
|
{ id: "deepseek-v4-flash", name: "DeepSeek V4 Flash" }
|
|
94664
94664
|
],
|
|
@@ -396146,6 +396146,7 @@ var exports_clipboard = {};
|
|
|
396146
396146
|
__export(exports_clipboard, {
|
|
396147
396147
|
startClipboardDaemon: () => startClipboardDaemon,
|
|
396148
396148
|
readClipboardImage: () => readClipboardImage,
|
|
396149
|
+
isWSL: () => isWSL,
|
|
396149
396150
|
copyToClipboard: () => copyToClipboard
|
|
396150
396151
|
});
|
|
396151
396152
|
import { execFile, spawn as spawn9, spawnSync as spawnSync6 } from "child_process";
|
|
@@ -396167,9 +396168,14 @@ function trySpawn(cmd, args2, text2) {
|
|
|
396167
396168
|
}
|
|
396168
396169
|
}
|
|
396169
396170
|
function writeWindowsText(text2) {
|
|
396170
|
-
if (trySpawn("clip", [], text2))
|
|
396171
|
+
if (isAsciiOnly(text2) && trySpawn("clip", [], text2))
|
|
396172
|
+
return true;
|
|
396173
|
+
const ps = resolveWindowsPowerShell();
|
|
396174
|
+
if (!ps)
|
|
396175
|
+
return false;
|
|
396176
|
+
if (text2.length <= PS_ARG_SAFE_LIMIT && psSetClipboardBase64(ps, text2))
|
|
396171
396177
|
return true;
|
|
396172
|
-
return trySpawn(
|
|
396178
|
+
return trySpawn(ps, ["-NoProfile", "-NonInteractive", "-Command", "$input | Set-Clipboard"], text2);
|
|
396173
396179
|
}
|
|
396174
396180
|
function writeLinuxText(text2) {
|
|
396175
396181
|
const wayland = !!process.env.WAYLAND_DISPLAY;
|
|
@@ -396186,6 +396192,14 @@ function writeLinuxText(text2) {
|
|
|
396186
396192
|
if (trySpawn(cmd, args2, text2))
|
|
396187
396193
|
return true;
|
|
396188
396194
|
}
|
|
396195
|
+
if (isWSL()) {
|
|
396196
|
+
if (isAsciiOnly(text2) && trySpawn("clip.exe", [], text2))
|
|
396197
|
+
return true;
|
|
396198
|
+
if (text2.length <= PS_ARG_SAFE_LIMIT && psSetClipboardBase64("powershell.exe", text2)) {
|
|
396199
|
+
return true;
|
|
396200
|
+
}
|
|
396201
|
+
return trySpawn("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", "$input | Set-Clipboard"], text2);
|
|
396202
|
+
}
|
|
396189
396203
|
return false;
|
|
396190
396204
|
}
|
|
396191
396205
|
function copyToClipboard(text2) {
|
|
@@ -396205,7 +396219,7 @@ function readImageDarwin() {
|
|
|
396205
396219
|
const script = [
|
|
396206
396220
|
"try",
|
|
396207
396221
|
" set pngData to the clipboard as \xABclass PNGf\xBB",
|
|
396208
|
-
` set filePath to POSIX file "${tmpFile.replace(
|
|
396222
|
+
` set filePath to POSIX file "${tmpFile.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")}"`,
|
|
396209
396223
|
" set fileRef to open for access filePath with write permission",
|
|
396210
396224
|
" set eof fileRef to 0",
|
|
396211
396225
|
" write pngData to fileRef",
|
|
@@ -396237,23 +396251,66 @@ function readImageDarwin() {
|
|
|
396237
396251
|
});
|
|
396238
396252
|
});
|
|
396239
396253
|
}
|
|
396240
|
-
function
|
|
396254
|
+
function readImageViaBackend(cmd, args2) {
|
|
396241
396255
|
return new Promise((resolve14) => {
|
|
396242
|
-
execFile(
|
|
396256
|
+
execFile(cmd, args2, { timeout: 3000, maxBuffer: 20 * 1024 * 1024, encoding: "buffer" }, (err2, stdout) => {
|
|
396243
396257
|
if (!err2 && stdout && stdout.length > 0) {
|
|
396244
|
-
resolve14(
|
|
396258
|
+
resolve14(stdout);
|
|
396245
396259
|
return;
|
|
396246
396260
|
}
|
|
396247
|
-
|
|
396248
|
-
|
|
396249
|
-
|
|
396250
|
-
|
|
396251
|
-
|
|
396261
|
+
resolve14(null);
|
|
396262
|
+
});
|
|
396263
|
+
});
|
|
396264
|
+
}
|
|
396265
|
+
function readImageWindowsInterop() {
|
|
396266
|
+
const script = [
|
|
396267
|
+
"$ErrorActionPreference = 'SilentlyContinue'",
|
|
396268
|
+
"Add-Type -AssemblyName System.Windows.Forms",
|
|
396269
|
+
"Add-Type -AssemblyName System.Drawing",
|
|
396270
|
+
"$img = [System.Windows.Forms.Clipboard]::GetImage()",
|
|
396271
|
+
"if ($img) {",
|
|
396272
|
+
" $ms = New-Object System.IO.MemoryStream",
|
|
396273
|
+
" $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)",
|
|
396274
|
+
" [Console]::Out.Write([Convert]::ToBase64String($ms.ToArray()))",
|
|
396275
|
+
"}"
|
|
396276
|
+
].join(`
|
|
396277
|
+
`);
|
|
396278
|
+
return new Promise((resolve14) => {
|
|
396279
|
+
execFile("powershell.exe", ["-NoProfile", "-NonInteractive", "-STA", "-Command", script], { timeout: 1e4, maxBuffer: 64 * 1024 * 1024 }, (err2, stdout) => {
|
|
396280
|
+
const b64 = (stdout ?? "").toString().trim();
|
|
396281
|
+
if (err2 || b64.length === 0) {
|
|
396252
396282
|
resolve14(null);
|
|
396253
|
-
|
|
396283
|
+
return;
|
|
396284
|
+
}
|
|
396285
|
+
try {
|
|
396286
|
+
const data = Buffer.from(b64, "base64");
|
|
396287
|
+
resolve14(data.length > 0 ? { data, mediaType: "image/png" } : null);
|
|
396288
|
+
} catch {
|
|
396289
|
+
resolve14(null);
|
|
396290
|
+
}
|
|
396254
396291
|
});
|
|
396255
396292
|
});
|
|
396256
396293
|
}
|
|
396294
|
+
async function readImageLinux() {
|
|
396295
|
+
const wayland = !!process.env.WAYLAND_DISPLAY;
|
|
396296
|
+
const xclipArgs = ["-selection", "clipboard", "-t", "image/png", "-o"];
|
|
396297
|
+
const wlArgs = ["--type", "image/png"];
|
|
396298
|
+
const backends = wayland ? [
|
|
396299
|
+
["wl-paste", wlArgs],
|
|
396300
|
+
["xclip", xclipArgs]
|
|
396301
|
+
] : [
|
|
396302
|
+
["xclip", xclipArgs],
|
|
396303
|
+
["wl-paste", wlArgs]
|
|
396304
|
+
];
|
|
396305
|
+
for (const [cmd, args2] of backends) {
|
|
396306
|
+
const data = await readImageViaBackend(cmd, args2);
|
|
396307
|
+
if (data)
|
|
396308
|
+
return { data, mediaType: "image/png" };
|
|
396309
|
+
}
|
|
396310
|
+
if (isWSL())
|
|
396311
|
+
return readImageWindowsInterop();
|
|
396312
|
+
return null;
|
|
396313
|
+
}
|
|
396257
396314
|
function resolveWindowsPowerShell() {
|
|
396258
396315
|
const onPath = findOnPath("powershell");
|
|
396259
396316
|
if (onPath)
|
|
@@ -396468,7 +396525,33 @@ function readClipboardImage() {
|
|
|
396468
396525
|
inFlightImage = undefined;
|
|
396469
396526
|
});
|
|
396470
396527
|
}
|
|
396471
|
-
|
|
396528
|
+
function isWSL() {
|
|
396529
|
+
if (_isWSL !== null)
|
|
396530
|
+
return _isWSL;
|
|
396531
|
+
if (process.platform !== "linux") {
|
|
396532
|
+
_isWSL = false;
|
|
396533
|
+
return false;
|
|
396534
|
+
}
|
|
396535
|
+
if (process.env.WSL_DISTRO_NAME || process.env.WSL_INTEROP) {
|
|
396536
|
+
_isWSL = true;
|
|
396537
|
+
return true;
|
|
396538
|
+
}
|
|
396539
|
+
try {
|
|
396540
|
+
_isWSL = readFileSync19("/proc/version", "utf-8").toLowerCase().includes("microsoft");
|
|
396541
|
+
} catch {
|
|
396542
|
+
_isWSL = false;
|
|
396543
|
+
}
|
|
396544
|
+
return _isWSL;
|
|
396545
|
+
}
|
|
396546
|
+
function psSetClipboardBase64(exe, text2) {
|
|
396547
|
+
const b64 = Buffer.from(text2, "utf-8").toString("base64");
|
|
396548
|
+
const cmd = `Set-Clipboard -Value ([System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('${b64}')))`;
|
|
396549
|
+
return trySpawn(exe, ["-NoProfile", "-NonInteractive", "-Command", cmd], "");
|
|
396550
|
+
}
|
|
396551
|
+
function isAsciiOnly(text2) {
|
|
396552
|
+
return /^[\x00-\x7F]*$/.test(text2);
|
|
396553
|
+
}
|
|
396554
|
+
var winClipboardDaemon, inFlightImage, _isWSL = null, PS_ARG_SAFE_LIMIT = 16000;
|
|
396472
396555
|
var init_clipboard = __esm(() => {
|
|
396473
396556
|
init_platform();
|
|
396474
396557
|
winClipboardDaemon = new WindowsClipboardDaemon;
|
|
@@ -396481,6 +396564,25 @@ function copyToClipboard2(text2) {
|
|
|
396481
396564
|
function readClipboardImageAsync() {
|
|
396482
396565
|
return readClipboardImage();
|
|
396483
396566
|
}
|
|
396567
|
+
function buildOsc52(text2, clipboard = "c") {
|
|
396568
|
+
const payload = Buffer.from(text2, "utf-8").toString("base64");
|
|
396569
|
+
const inner = `\x1B]52;${clipboard};${payload}\x07`;
|
|
396570
|
+
if (process.env.TMUX)
|
|
396571
|
+
return `\x1BPtmux;\x1B${inner}\x1B\\`;
|
|
396572
|
+
if ((process.env.TERM ?? "").startsWith("screen"))
|
|
396573
|
+
return `\x1BP${inner}\x1B\\`;
|
|
396574
|
+
return inner;
|
|
396575
|
+
}
|
|
396576
|
+
function copyOsc52(text2) {
|
|
396577
|
+
if (!process.stdout.isTTY)
|
|
396578
|
+
return false;
|
|
396579
|
+
try {
|
|
396580
|
+
process.stdout.write(buildOsc52(text2));
|
|
396581
|
+
return true;
|
|
396582
|
+
} catch {
|
|
396583
|
+
return false;
|
|
396584
|
+
}
|
|
396585
|
+
}
|
|
396484
396586
|
var init_clipboard2 = __esm(() => {
|
|
396485
396587
|
init_clipboard();
|
|
396486
396588
|
});
|
|
@@ -396498,7 +396600,8 @@ function useCopySelection() {
|
|
|
396498
396600
|
return false;
|
|
396499
396601
|
const focus = renderer.currentFocusedRenderable;
|
|
396500
396602
|
const clipboardText = focus?.getClipboardText && sel.selectedRenderables.includes(focus) ? focus.getClipboardText(text2) : text2;
|
|
396501
|
-
renderer.copyToClipboardOSC52(clipboardText)
|
|
396603
|
+
if (!renderer.copyToClipboardOSC52(clipboardText))
|
|
396604
|
+
copyOsc52(clipboardText);
|
|
396502
396605
|
copyToClipboard2(clipboardText);
|
|
396503
396606
|
if (clear)
|
|
396504
396607
|
renderer.clearSelection();
|
|
@@ -403337,12 +403440,12 @@ async function refreshFootprintMB() {
|
|
|
403337
403440
|
}
|
|
403338
403441
|
function macFootprintMB(pid) {
|
|
403339
403442
|
return new Promise((resolve14) => {
|
|
403340
|
-
execFile2("
|
|
403443
|
+
execFile2("/usr/bin/footprint", [String(pid)], { timeout: 2000, maxBuffer: 1024 * 1024 }, (err2, stdout) => {
|
|
403341
403444
|
if (err2) {
|
|
403342
403445
|
resolve14(null);
|
|
403343
403446
|
return;
|
|
403344
403447
|
}
|
|
403345
|
-
const m2 = stdout.match(/
|
|
403448
|
+
const m2 = stdout.match(/phys_footprint:\s+([\d.]+)\s*([KMGT])B/);
|
|
403346
403449
|
if (!m2?.[1] || !m2[2]) {
|
|
403347
403450
|
resolve14(null);
|
|
403348
403451
|
return;
|
|
@@ -404001,7 +404104,7 @@ function restoreTerminal() {
|
|
|
404001
404104
|
}
|
|
404002
404105
|
} catch {}
|
|
404003
404106
|
try {
|
|
404004
|
-
process.stdout.write("\x1B[?25h\x1B[0m");
|
|
404107
|
+
process.stdout.write("\x1B[?2048l\x1B[?25h\x1B[0m");
|
|
404005
404108
|
} catch {}
|
|
404006
404109
|
}
|
|
404007
404110
|
function runCleanup() {
|
|
@@ -404296,7 +404399,8 @@ async function start2(opts) {
|
|
|
404296
404399
|
r.console.onCopySelection = (text2) => {
|
|
404297
404400
|
if (!text2 || text2.length === 0)
|
|
404298
404401
|
return;
|
|
404299
|
-
r.copyToClipboardOSC52(text2)
|
|
404402
|
+
if (!r.copyToClipboardOSC52(text2))
|
|
404403
|
+
copyOsc52(text2);
|
|
404300
404404
|
copyToClipboard2(text2);
|
|
404301
404405
|
r.clearSelection();
|
|
404302
404406
|
};
|
|
@@ -404305,6 +404409,31 @@ async function start2(opts) {
|
|
|
404305
404409
|
} catch {}
|
|
404306
404410
|
r.setMaxListeners(30);
|
|
404307
404411
|
r.keyInput.setMaxListeners(30);
|
|
404412
|
+
if (process.stdout.isTTY) {
|
|
404413
|
+
r.addInputHandler((sequence) => {
|
|
404414
|
+
const m2 = sequence.match(/^\x1b\[48;(\d+);(\d+)(?:;\d+;\d+)?t$/);
|
|
404415
|
+
if (!m2?.[1] || !m2[2])
|
|
404416
|
+
return false;
|
|
404417
|
+
const rows = Number.parseInt(m2[1], 10);
|
|
404418
|
+
const cols = Number.parseInt(m2[2], 10);
|
|
404419
|
+
if (rows > 0 && cols > 0)
|
|
404420
|
+
r.resize(cols, rows);
|
|
404421
|
+
return true;
|
|
404422
|
+
});
|
|
404423
|
+
process.stdout.write("\x1B[?2048h");
|
|
404424
|
+
const resizePoll = setInterval(() => {
|
|
404425
|
+
try {
|
|
404426
|
+
const cols = process.stdout.columns;
|
|
404427
|
+
const rows = process.stdout.rows;
|
|
404428
|
+
if (!cols || !rows)
|
|
404429
|
+
return;
|
|
404430
|
+
if (cols !== r.terminalWidth || rows !== r.terminalHeight) {
|
|
404431
|
+
r.resize(cols, rows);
|
|
404432
|
+
}
|
|
404433
|
+
} catch {}
|
|
404434
|
+
}, 1000);
|
|
404435
|
+
resizePoll.unref?.();
|
|
404436
|
+
}
|
|
404308
404437
|
{
|
|
404309
404438
|
const { extend: extend3 } = await init_react2().then(() => exports_react);
|
|
404310
404439
|
const { TextTableRenderable } = await import("@opentui/core");
|
|
@@ -512597,7 +512726,8 @@ function App({
|
|
|
512597
512726
|
};
|
|
512598
512727
|
}, []);
|
|
512599
512728
|
const copyToClipboard3 = import_react166.useCallback((text4) => {
|
|
512600
|
-
renderer2.copyToClipboardOSC52(text4)
|
|
512729
|
+
if (!renderer2.copyToClipboardOSC52(text4))
|
|
512730
|
+
copyOsc52(text4);
|
|
512601
512731
|
copyToClipboard2(text4);
|
|
512602
512732
|
}, [renderer2]);
|
|
512603
512733
|
import_react166.useEffect(() => {
|