negotium 0.2.12 → 0.2.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 (41) hide show
  1. package/dist/agent-helpers.js +34 -8
  2. package/dist/agent-helpers.js.map +6 -6
  3. package/dist/background-bash.js +32 -6
  4. package/dist/background-bash.js.map +4 -4
  5. package/dist/browser-runtime.js +14 -2
  6. package/dist/browser-runtime.js.map +3 -3
  7. package/dist/{chunk-8asy22vc.js → chunk-5g5a63vv.js} +32 -6
  8. package/dist/{chunk-8asy22vc.js.map → chunk-5g5a63vv.js.map} +4 -4
  9. package/dist/hosted-agent.js +33 -7
  10. package/dist/hosted-agent.js.map +5 -5
  11. package/dist/main.js +603 -353
  12. package/dist/main.js.map +12 -11
  13. package/dist/mcp-factories.js +34 -8
  14. package/dist/mcp-factories.js.map +6 -6
  15. package/dist/mcp-servers.js +3 -2
  16. package/dist/mcp-servers.js.map +3 -3
  17. package/dist/prompts.js +14 -2
  18. package/dist/prompts.js.map +3 -3
  19. package/dist/query-runtime.js +14 -2
  20. package/dist/query-runtime.js.map +3 -3
  21. package/dist/registry.js +3 -3
  22. package/dist/registry.js.map +2 -2
  23. package/dist/rollout.js +1 -1
  24. package/dist/runtime/src/index.ts +9 -0
  25. package/dist/runtime/src/node-host.ts +9 -0
  26. package/dist/runtime/src/platform/background-bash/manager.ts +45 -5
  27. package/dist/runtime/src/platform/config.ts +35 -2
  28. package/dist/runtime/src/runtime/bashrs-completions.ts +328 -0
  29. package/dist/runtime/src/runtime/turn-runner.ts +6 -0
  30. package/dist/runtime/src/version.ts +1 -1
  31. package/dist/runtime-helpers.js +14 -2
  32. package/dist/runtime-helpers.js.map +3 -3
  33. package/dist/types/apps/negotium/src/mcp-servers.d.ts +16 -3
  34. package/dist/types/packages/core/src/platform/background-bash/manager.d.ts +6 -1
  35. package/dist/types/packages/core/src/platform/config.d.ts +21 -1
  36. package/dist/types/packages/core/src/version.d.ts +1 -1
  37. package/dist/vault.js +14 -2
  38. package/dist/vault.js.map +3 -3
  39. package/install-bash-rs.mjs +77 -0
  40. package/package.json +3 -2
  41. package/dist/runtime/src/mcp/background-bash-server.ts +0 -756
@@ -168,6 +168,18 @@ function resolveBrowserRsBin(envValue) {
168
168
  }
169
169
  var SNIPPETS_API_URL = (envText("NEGOTIUM_SNIPPETS_API_URL") ?? envText("SNIPPETS_API_URL") ?? "").replace(/\/+$/, "");
170
170
  var BROWSER_RS_BIN = resolveBrowserRsBin(envText("NEGOTIUM_BROWSER_RS_BIN"));
171
+ var BASH_RS_VERSION = "v0.1.5";
172
+ function resolveBashRsBin(envValue) {
173
+ const override = envValue?.trim();
174
+ const candidate = override ? resolve(override) : resolve(BINARIES_DIR, "bash-rs", BASH_RS_VERSION, "bash-rs");
175
+ try {
176
+ accessSync(candidate, constants.X_OK);
177
+ return candidate;
178
+ } catch {
179
+ return;
180
+ }
181
+ }
182
+ var BASH_RS_BIN = resolveBashRsBin(envText("NEGOTIUM_BASH_RS_BIN"));
171
183
  function resolveBrowserMcpBin(envValue) {
172
184
  const override = envValue?.trim();
173
185
  if (override)
@@ -187,7 +199,6 @@ var TOKEN_STATS_SERVER = resolve(PROJECT_ROOT, "src/mcp/token-stats-server.ts");
187
199
  var COMPACTION_LOG_SERVER = resolve(PROJECT_ROOT, "src/mcp/compaction-log-server.ts");
188
200
  var SYSTEM_HEALTH_SERVER = resolve(PROJECT_ROOT, "src/mcp/system-health-server.ts");
189
201
  var AGENT_HEALTH_SERVER = resolve(PROJECT_ROOT, "src/mcp/agent-health-server.ts");
190
- var BACKGROUND_BASH_SERVER = resolve(PROJECT_ROOT, "src/mcp/background-bash-server.ts");
191
202
  var VAULT_SERVER = resolve(PROJECT_ROOT, "src/mcp/vault-server.ts");
192
203
  var BG_BASH_BASE_PORT = parsePortEnv(process.env.BG_BASH_BASE_PORT, 9700);
193
204
  var BG_BASH_MAX_PORT = parsePortEnv(process.env.BG_BASH_MAX_PORT, 9799);
@@ -250,6 +261,7 @@ var DM_CMD_DIR = resolve(RUN_DIR, "dm-commands");
250
261
  var DM_RESP_DIR = resolve(RUN_DIR, "dm-responses");
251
262
  var SESSION_INBOX_DIR = resolve(RUN_DIR, "session-inbox");
252
263
  var SESSION_ASKS_DIR = resolve(RUN_DIR, "session-asks");
264
+ var BASHRS_SPILL_ROOT = resolve(RUN_DIR, "bashrs");
253
265
  var PLAYWRIGHT_BASE_PORT = parsePortEnv(process.env.PLAYWRIGHT_BASE_PORT, 9100);
254
266
  var PLAYWRIGHT_MAX_PORT = parsePortEnv(process.env.PLAYWRIGHT_MAX_PORT, 9499);
255
267
  var PLAYWRIGHT_PORTS_DIR = resolve(RUN_DIR, "playwright-ports");
@@ -617,7 +629,7 @@ function createBackgroundBashManager(options = {}) {
617
629
  const knownContexts = new Map;
618
630
  const runtimeCapability = options.capability ?? randomBytes2(32).toString("hex");
619
631
  const runtimeServerId = options.serverId ?? randomBytes2(16).toString("hex");
620
- const serverFile = options.serverFile ?? BACKGROUND_BASH_SERVER;
632
+ const bashRsBin = options.bashRsBin ?? BASH_RS_BIN;
621
633
  const basePort = options.basePort ?? BG_BASH_BASE_PORT;
622
634
  const maxPort = options.maxPort ?? BG_BASH_MAX_PORT;
623
635
  const fetchImpl = options.fetch ?? globalThis.fetch;
@@ -649,7 +661,15 @@ function createBackgroundBashManager(options = {}) {
649
661
  const response = await fetchImpl(`http://127.0.0.1:${port}/health`, {
650
662
  signal: AbortSignal.timeout(2000)
651
663
  });
652
- return response.ok && await response.text() === runtimeServerId;
664
+ if (!response.ok)
665
+ return false;
666
+ const body = await response.text();
667
+ try {
668
+ const parsed = JSON.parse(body);
669
+ return Boolean(parsed) && typeof parsed === "object" && parsed.instance_id === runtimeServerId;
670
+ } catch {
671
+ return false;
672
+ }
653
673
  } catch {
654
674
  return false;
655
675
  }
@@ -667,14 +687,20 @@ function createBackgroundBashManager(options = {}) {
667
687
  logger.info({ key, port: instance.port }, "background-bash server killed");
668
688
  }
669
689
  async function spawnServer(key, reservedPort, excludedPorts = new Set) {
690
+ if (!bashRsBin) {
691
+ throw new Error(`background-bash requires the bash-rs ${BASH_RS_VERSION} binary; run install-bash-rs.mjs (or set NEGOTIUM_BASH_RS_BIN)`);
692
+ }
670
693
  const port = reservedPort ?? await allocatePort(excludedPorts);
671
- const process2 = spawnImpl("bun", ["run", serverFile, `--port=${port}`], {
694
+ const process2 = spawnImpl(bashRsBin, [String(port)], {
672
695
  stdio: "ignore",
673
696
  detached: false,
674
697
  env: {
675
698
  ...options.env ?? globalThis.process.env,
676
699
  NEGOTIUM_BG_BASH_CAPABILITY: runtimeCapability,
677
- NEGOTIUM_BG_BASH_SERVER_ID: runtimeServerId
700
+ NEGOTIUM_BG_BASH_SERVER_ID: runtimeServerId,
701
+ BASHRS_HTTP_CAPABILITY: runtimeCapability,
702
+ BASHRS_INSTANCE_ID: runtimeServerId,
703
+ BASHRS_SPILL_ROOT
678
704
  }
679
705
  });
680
706
  process2.once("error", (error) => {
@@ -2159,7 +2185,7 @@ import { tmpdir } from "os";
2159
2185
  import { dirname as dirname4, join as join3 } from "path";
2160
2186
 
2161
2187
  // ../../packages/core/src/version.ts
2162
- var NEGOTIUM_VERSION = "0.2.12";
2188
+ var NEGOTIUM_VERSION = "0.2.14";
2163
2189
 
2164
2190
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
2165
2191
  var moduleRequire = createRequire2(import.meta.url);
@@ -3790,4 +3816,4 @@ export {
3790
3816
  buildClaudeDisallowedTools
3791
3817
  };
3792
3818
 
3793
- //# debugId=36EF3003DAD953D364756E2164756E21
3819
+ //# debugId=61393A8287FDB3CB64756E2164756E21