@proxysoul/soulforge 2.20.12 → 2.20.14

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.
Files changed (2) hide show
  1. package/dist/index.js +125 -20
  2. 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.12",
72071
+ version: "2.20.14",
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-max", name: "Qwen3.7 Max" },
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("powershell", ["-NoProfile", "-NonInteractive", "-Command", "$input | Set-Clipboard"], text2);
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(/"/g, "\\\"").replace(/\\/g, "\\\\")}"`,
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 readImageLinux() {
396254
+ function readImageViaBackend(cmd, args2) {
396241
396255
  return new Promise((resolve14) => {
396242
- execFile("xclip", ["-selection", "clipboard", "-t", "image/png", "-o"], { timeout: 3000, maxBuffer: 20 * 1024 * 1024, encoding: "buffer" }, (err2, stdout) => {
396256
+ execFile(cmd, args2, { timeout: 3000, maxBuffer: 20 * 1024 * 1024, encoding: "buffer" }, (err2, stdout) => {
396243
396257
  if (!err2 && stdout && stdout.length > 0) {
396244
- resolve14({ data: stdout, mediaType: "image/png" });
396258
+ resolve14(stdout);
396245
396259
  return;
396246
396260
  }
396247
- execFile("wl-paste", ["--type", "image/png"], { timeout: 3000, maxBuffer: 20 * 1024 * 1024, encoding: "buffer" }, (err22, stdout2) => {
396248
- if (!err22 && stdout2 && stdout2.length > 0) {
396249
- resolve14({ data: stdout2, mediaType: "image/png" });
396250
- return;
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
- var winClipboardDaemon, inFlightImage;
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("vmmap", ["--summary", String(pid)], { timeout: 2000, maxBuffer: 1024 * 1024 }, (err2, stdout) => {
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(/Physical footprint:\s+([\d.]+)([KMGT])/);
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;
@@ -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
  };
@@ -512597,7 +512701,8 @@ function App({
512597
512701
  };
512598
512702
  }, []);
512599
512703
  const copyToClipboard3 = import_react166.useCallback((text4) => {
512600
- renderer2.copyToClipboardOSC52(text4);
512704
+ if (!renderer2.copyToClipboardOSC52(text4))
512705
+ copyOsc52(text4);
512601
512706
  copyToClipboard2(text4);
512602
512707
  }, [renderer2]);
512603
512708
  import_react166.useEffect(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxysoul/soulforge",
3
- "version": "2.20.12",
3
+ "version": "2.20.14",
4
4
  "description": "Graph-powered code intelligence — multi-agent coding with codebase-aware AI",
5
5
  "repository": {
6
6
  "type": "git",