@proxysoul/soulforge 2.15.3 → 2.15.5

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 CHANGED
@@ -62500,7 +62500,7 @@ var package_default;
62500
62500
  var init_package = __esm(() => {
62501
62501
  package_default = {
62502
62502
  name: "@proxysoul/soulforge",
62503
- version: "2.15.3",
62503
+ version: "2.15.5",
62504
62504
  description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
62505
62505
  repository: {
62506
62506
  type: "git",
@@ -62521,7 +62521,7 @@ var init_package = __esm(() => {
62521
62521
  "soulforge-remote": "./dist/soulforge-remote.sh"
62522
62522
  },
62523
62523
  engines: {
62524
- bun: ">=1.2.0"
62524
+ bun: ">=1.3.13"
62525
62525
  },
62526
62526
  files: [
62527
62527
  "dist",
@@ -475556,7 +475556,7 @@ var require_constants2 = __commonJS((exports, module3) => {
475556
475556
  // devtools-stub:react-devtools-core
475557
475557
  var react_devtools_core_default;
475558
475558
  var init_react_devtools_core = __esm(() => {
475559
- react_devtools_core_default = { connectToDevTools() {} };
475559
+ react_devtools_core_default = { initialize() {}, connectToDevTools() {} };
475560
475560
  });
475561
475561
 
475562
475562
  // node_modules/@opentui/react/chunk-bdqvmfwv.js
@@ -478125,7 +478125,7 @@ function handleTimeouts(_input, ctx) {
478125
478125
  {
478126
478126
  value: "tool-timeout",
478127
478127
  label: "Tool Timeout",
478128
- description: `${currentToolTimeout === 0 ? "none" : currentToolTimeout + "m"}`
478128
+ description: `${currentToolTimeout === 0 ? "none" : `${currentToolTimeout}m`}`
478129
478129
  },
478130
478130
  { value: "watchdog-toggle", label: "Watchdog", description: watchdogEnabled ? "On" : "Off" },
478131
478131
  { value: "wd-first", label: "First Chunk Timeout", description: `${wdFirstSec}s` },
@@ -481260,8 +481260,8 @@ var init_prerequisites = __esm(() => {
481260
481260
  PREREQUISITES = [
481261
481261
  {
481262
481262
  name: "Neovim",
481263
- description: "Embedded editor (required, v0.11+)",
481264
- required: true,
481263
+ description: "Embedded editor (optional, v0.11+)",
481264
+ required: false,
481265
481265
  check: () => getVendoredPath("nvim") !== null || commandExists3("nvim"),
481266
481266
  install: {
481267
481267
  darwin: ["brew install neovim"],
@@ -482500,6 +482500,7 @@ __export(exports_src3, {
482500
482500
  setExitSessionId: () => setExitSessionId,
482501
482501
  restart: () => restart,
482502
482502
  hardRestart: () => hardRestart,
482503
+ getActiveRenderer: () => getActiveRenderer,
482503
482504
  cleanupAndExit: () => cleanupAndExit
482504
482505
  });
482505
482506
  function setExitSessionId(id) {
@@ -482809,6 +482810,9 @@ async function start2(opts) {
482809
482810
  opts
482810
482811
  }, undefined, false, undefined, this));
482811
482812
  }
482813
+ function getActiveRenderer() {
482814
+ return renderer;
482815
+ }
482812
482816
  var import_react15, exitSessionId = null, renderer = null, cleanedUp = false, bannerPrinted = false, triggerRestart = null, RESTART_STEPS, RESTART_SPINNER;
482813
482817
  var init_src3 = __esm(async () => {
482814
482818
  init_neovim();
@@ -485102,8 +485106,20 @@ var init_registry = __esm(() => {
485102
485106
  import { spawn as spawn20 } from "child_process";
485103
485107
  function suspendAndRun(opts) {
485104
485108
  return new Promise((resolve40) => {
485109
+ const renderer2 = (() => {
485110
+ try {
485111
+ return getActiveRenderer();
485112
+ } catch {
485113
+ return null;
485114
+ }
485115
+ })();
485116
+ try {
485117
+ renderer2?.suspend();
485118
+ } catch {}
485105
485119
  if (process.stdin.isTTY) {
485106
- process.stdin.setRawMode(false);
485120
+ try {
485121
+ process.stdin.setRawMode(false);
485122
+ } catch {}
485107
485123
  }
485108
485124
  if (!opts.noAltScreen) {
485109
485125
  process.stdout.write("\x1B[?1049h");
@@ -485113,29 +485129,28 @@ function suspendAndRun(opts) {
485113
485129
  stdio: "inherit",
485114
485130
  env: { ...process.env }
485115
485131
  });
485116
- proc.on("close", (code) => {
485132
+ const restore = (code) => {
485117
485133
  if (!opts.noAltScreen) {
485118
485134
  process.stdout.write("\x1B[?1049l");
485119
485135
  }
485136
+ try {
485137
+ renderer2?.resume();
485138
+ } catch {}
485120
485139
  if (process.stdin.isTTY) {
485121
- process.stdin.setRawMode(true);
485122
- process.stdin.resume();
485140
+ try {
485141
+ process.stdin.setRawMode(true);
485142
+ process.stdin.resume();
485143
+ } catch {}
485123
485144
  }
485124
485145
  resolve40({ exitCode: code });
485125
- });
485126
- proc.on("error", () => {
485127
- if (!opts.noAltScreen) {
485128
- process.stdout.write("\x1B[?1049l");
485129
- }
485130
- if (process.stdin.isTTY) {
485131
- process.stdin.setRawMode(true);
485132
- process.stdin.resume();
485133
- }
485134
- resolve40({ exitCode: null });
485135
- });
485146
+ };
485147
+ proc.on("close", (code) => restore(code));
485148
+ proc.on("error", () => restore(null));
485136
485149
  });
485137
485150
  }
485138
- var init_suspend = () => {};
485151
+ var init_suspend = __esm(async () => {
485152
+ await init_src3();
485153
+ });
485139
485154
 
485140
485155
  // src/hooks/useConfigSync.ts
485141
485156
  function useConfigSync({
@@ -508538,6 +508553,7 @@ function SetupStep({
508538
508553
  }) {
508539
508554
  {
508540
508555
  const t2 = useTheme();
508556
+ const renderer2 = useRenderer();
508541
508557
  const [phase, setPhase] = import_react100.useState("provider");
508542
508558
  const [cursor, setCursor] = import_react100.useState(0);
508543
508559
  const [selectedProvider, setSelectedProvider] = import_react100.useState(null);
@@ -508570,6 +508586,19 @@ function SetupStep({
508570
508586
  import_react100.useEffect(() => {
508571
508587
  setActive(isInputPhase);
508572
508588
  }, [isInputPhase, setActive]);
508589
+ import_react100.useEffect(() => {
508590
+ if (phase !== "key")
508591
+ return;
508592
+ const handler4 = (event) => {
508593
+ const cleaned = decodePasteBytes(event.bytes).replace(/[\n\r]/g, "").trim();
508594
+ if (cleaned)
508595
+ setKeyInput((v4) => v4 + cleaned);
508596
+ };
508597
+ renderer2.keyInput.on("paste", handler4);
508598
+ return () => {
508599
+ renderer2.keyInput.off("paste", handler4);
508600
+ };
508601
+ }, [phase, renderer2]);
508573
508602
  import_react100.useEffect(() => {
508574
508603
  if (phase === "fetching") {
508575
508604
  spinnerRef.current = setInterval(() => setSpinnerFrame((f3) => (f3 + 1) % SPINNER_FRAMES2.length), 80);
@@ -508887,10 +508916,11 @@ function SetupStep({
508887
508916
  ]
508888
508917
  }, undefined, true, undefined, this),
508889
508918
  /* @__PURE__ */ import_jsx_dev_runtime2.jsxDEV(VSpacer, {}, undefined, false, undefined, this),
508890
- /* @__PURE__ */ import_jsx_dev_runtime2.jsxDEV(Field, {
508891
- label: "API key",
508892
- value: displayMask || " ",
508893
- focused: true
508919
+ /* @__PURE__ */ import_jsx_dev_runtime2.jsxDEV(Search, {
508920
+ value: displayMask,
508921
+ placeholder: "paste or type your key",
508922
+ focused: true,
508923
+ icon: "key"
508894
508924
  }, undefined, false, undefined, this),
508895
508925
  /* @__PURE__ */ import_jsx_dev_runtime2.jsxDEV(VSpacer, {}, undefined, false, undefined, this),
508896
508926
  /* @__PURE__ */ import_jsx_dev_runtime2.jsxDEV(KeyCaps, {
@@ -524350,7 +524380,6 @@ var init_App = __esm(async () => {
524350
524380
  init_forbidden();
524351
524381
  init_manager();
524352
524382
  init_prerequisites();
524353
- init_suspend();
524354
524383
  init_theme();
524355
524384
  init_show_image();
524356
524385
  init_splash();
@@ -524378,6 +524407,7 @@ var init_App = __esm(async () => {
524378
524407
  await __promiseAll([
524379
524408
  init_core4(),
524380
524409
  init_react2(),
524410
+ init_suspend(),
524381
524411
  init_useGlobalKeyboard(),
524382
524412
  init_src3(),
524383
524413
  init_BrandTag(),
@@ -49658,7 +49658,7 @@ var package_default;
49658
49658
  var init_package = __esm(() => {
49659
49659
  package_default = {
49660
49660
  name: "@proxysoul/soulforge",
49661
- version: "2.15.3",
49661
+ version: "2.15.5",
49662
49662
  description: "Graph-powered code intelligence \u2014 multi-agent coding with codebase-aware AI",
49663
49663
  repository: {
49664
49664
  type: "git",
@@ -49679,7 +49679,7 @@ var init_package = __esm(() => {
49679
49679
  "soulforge-remote": "./dist/soulforge-remote.sh"
49680
49680
  },
49681
49681
  engines: {
49682
- bun: ">=1.2.0"
49682
+ bun: ">=1.3.13"
49683
49683
  },
49684
49684
  files: [
49685
49685
  "dist",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proxysoul/soulforge",
3
- "version": "2.15.3",
3
+ "version": "2.15.5",
4
4
  "description": "Graph-powered code intelligence — multi-agent coding with codebase-aware AI",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  "soulforge-remote": "./dist/soulforge-remote.sh"
22
22
  },
23
23
  "engines": {
24
- "bun": ">=1.2.0"
24
+ "bun": ">=1.3.13"
25
25
  },
26
26
  "files": [
27
27
  "dist",