negotium 0.2.13 → 0.2.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.
Files changed (44) hide show
  1. package/dist/agent-helpers.js +13 -12
  2. package/dist/agent-helpers.js.map +6 -6
  3. package/dist/background-bash.js +11 -11
  4. package/dist/background-bash.js.map +4 -4
  5. package/dist/browser-runtime.js +2 -3
  6. package/dist/browser-runtime.js.map +3 -3
  7. package/dist/{chunk-rnsnhcye.js → chunk-5g5a63vv.js} +11 -11
  8. package/dist/{chunk-rnsnhcye.js.map → chunk-5g5a63vv.js.map} +4 -4
  9. package/dist/hosted-agent.js +12 -12
  10. package/dist/hosted-agent.js.map +5 -5
  11. package/dist/main.js +582 -357
  12. package/dist/main.js.map +12 -11
  13. package/dist/mcp-factories.js +13 -12
  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 +2 -3
  18. package/dist/prompts.js.map +3 -3
  19. package/dist/query-runtime.js +2 -3
  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 +30 -22
  27. package/dist/runtime/src/platform/config.ts +8 -7
  28. package/dist/runtime/src/runtime/bashrs-completions.ts +74 -14
  29. package/dist/runtime/src/runtime/public-helpers.ts +8 -0
  30. package/dist/runtime/src/runtime/turn-runner.ts +6 -0
  31. package/dist/runtime/src/version.ts +1 -1
  32. package/dist/runtime-helpers.js +444 -32
  33. package/dist/runtime-helpers.js.map +10 -4
  34. package/dist/types/apps/negotium/src/mcp-servers.d.ts +16 -3
  35. package/dist/types/packages/core/src/platform/background-bash/manager.d.ts +6 -1
  36. package/dist/types/packages/core/src/platform/config.d.ts +8 -6
  37. package/dist/types/packages/core/src/runtime/bashrs-completions.d.ts +50 -0
  38. package/dist/types/packages/core/src/runtime/public-helpers.d.ts +2 -0
  39. package/dist/types/packages/core/src/version.d.ts +1 -1
  40. package/dist/vault.js +2 -3
  41. package/dist/vault.js.map +3 -3
  42. package/install-bash-rs.mjs +5 -5
  43. package/package.json +1 -1
  44. package/dist/runtime/src/mcp/background-bash-server.ts +0 -756
@@ -250,7 +250,7 @@ function resolveDefaultModel(agent, registryDefaultModel) {
250
250
  function codexAuthFilePath() {
251
251
  return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
252
252
  }
253
- var HOME, PROJECT_ROOT, STATE_DIR_ENV, STATE_DIR, WORKSPACE_DIR, TOPIC_WORKSPACE_DIR, SHARED_WIKI_DIR, CRON_WORKSPACE_DIR, BROWSER_DIR, BROWSER_PROFILES_DIR, BINARIES_DIR, SECRETS_DIR, DM_WORKSPACE_DIR, SESSION_WORKSPACE_DIR, CLAUDE_EXECUTABLE_ENV, CLAUDE_EXECUTABLE, DEFAULT_OUTPUT_LANGUAGE = "English", BROWSER_RS_VERSION = "v0.1.19", BROWSER_RS_MIN_SECURE_VERSION = "0.1.15", SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.2", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, TSX_LOADER, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, BROWSER_MCP_SSE_PROXY_SERVER, CANONICAL_MCP_PROXY_SERVER, WIKI_SERVER, TOKEN_STATS_SERVER, COMPACTION_LOG_SERVER, SYSTEM_HEALTH_SERVER, AGENT_HEALTH_SERVER, BACKGROUND_BASH_SERVER, VAULT_SERVER, BG_BASH_BASE_PORT, BG_BASH_MAX_PORT, RUNTIME_MCP_SECRET, NODE_CONTROL_TOKEN, VAULT_MASTER_KEY, NEGOTIUM_PORT, hostname, DATA_DIR, LOG_DIR, UPLOADS_DIR, VAULT_DIR, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, PROGRESS_DIR, DM_CMD_DIR, DM_RESP_DIR, SESSION_INBOX_DIR, SESSION_ASKS_DIR, BASHRS_SPILL_ROOT, PLAYWRIGHT_BASE_PORT, PLAYWRIGHT_MAX_PORT, PLAYWRIGHT_PORTS_DIR, ACTIVE_QUERY_STALE_MS, AGENTS_PROMPTS_DIR, RESOURCES_DIR, FILE_TAG_REGEX, MODEL_SONNET = "claude-sonnet-5", MODEL_OPUS = "claude-opus-5", MODEL_FABLE = "claude-fable-5", FALLBACK_AGENT, SESSION_AGENT, GATEWAY_AGENT, FALLBACK_MODEL, SESSION_MODEL, GATEWAY_MODEL, FFMPEG_BIN, FFPROBE_BIN, PYTHON_BIN, FASTER_WHISPER_WRAPPER, WHISPER_MODEL, TESSERACT_BIN, PDFTOTEXT_BIN, _envMaxTellDepth, MAX_TELL_DEPTH;
253
+ var HOME, PROJECT_ROOT, STATE_DIR_ENV, STATE_DIR, WORKSPACE_DIR, TOPIC_WORKSPACE_DIR, SHARED_WIKI_DIR, CRON_WORKSPACE_DIR, BROWSER_DIR, BROWSER_PROFILES_DIR, BINARIES_DIR, SECRETS_DIR, DM_WORKSPACE_DIR, SESSION_WORKSPACE_DIR, CLAUDE_EXECUTABLE_ENV, CLAUDE_EXECUTABLE, DEFAULT_OUTPUT_LANGUAGE = "English", BROWSER_RS_VERSION = "v0.1.19", BROWSER_RS_MIN_SECURE_VERSION = "0.1.15", SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.5", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, TSX_LOADER, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, BROWSER_MCP_SSE_PROXY_SERVER, CANONICAL_MCP_PROXY_SERVER, WIKI_SERVER, TOKEN_STATS_SERVER, COMPACTION_LOG_SERVER, SYSTEM_HEALTH_SERVER, AGENT_HEALTH_SERVER, VAULT_SERVER, BG_BASH_BASE_PORT, BG_BASH_MAX_PORT, RUNTIME_MCP_SECRET, NODE_CONTROL_TOKEN, VAULT_MASTER_KEY, NEGOTIUM_PORT, hostname, DATA_DIR, LOG_DIR, UPLOADS_DIR, VAULT_DIR, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, PROGRESS_DIR, DM_CMD_DIR, DM_RESP_DIR, SESSION_INBOX_DIR, SESSION_ASKS_DIR, BASHRS_SPILL_ROOT, PLAYWRIGHT_BASE_PORT, PLAYWRIGHT_MAX_PORT, PLAYWRIGHT_PORTS_DIR, ACTIVE_QUERY_STALE_MS, AGENTS_PROMPTS_DIR, RESOURCES_DIR, FILE_TAG_REGEX, MODEL_SONNET = "claude-sonnet-5", MODEL_OPUS = "claude-opus-5", MODEL_FABLE = "claude-fable-5", FALLBACK_AGENT, SESSION_AGENT, GATEWAY_AGENT, FALLBACK_MODEL, SESSION_MODEL, GATEWAY_MODEL, FFMPEG_BIN, FFPROBE_BIN, PYTHON_BIN, FASTER_WHISPER_WRAPPER, WHISPER_MODEL, TESSERACT_BIN, PDFTOTEXT_BIN, _envMaxTellDepth, MAX_TELL_DEPTH;
254
254
  var init_config = __esm(() => {
255
255
  init_config_helpers();
256
256
  init_logger();
@@ -287,7 +287,6 @@ var init_config = __esm(() => {
287
287
  COMPACTION_LOG_SERVER = resolve(PROJECT_ROOT, "src/mcp/compaction-log-server.ts");
288
288
  SYSTEM_HEALTH_SERVER = resolve(PROJECT_ROOT, "src/mcp/system-health-server.ts");
289
289
  AGENT_HEALTH_SERVER = resolve(PROJECT_ROOT, "src/mcp/agent-health-server.ts");
290
- BACKGROUND_BASH_SERVER = resolve(PROJECT_ROOT, "src/mcp/background-bash-server.ts");
291
290
  VAULT_SERVER = resolve(PROJECT_ROOT, "src/mcp/vault-server.ts");
292
291
  BG_BASH_BASE_PORT = parsePortEnv(process.env.BG_BASH_BASE_PORT, 9700);
293
292
  BG_BASH_MAX_PORT = parsePortEnv(process.env.BG_BASH_MAX_PORT, 9799);
@@ -953,7 +952,7 @@ var init_claude_registry = __esm(() => {
953
952
  });
954
953
 
955
954
  // ../../packages/core/src/version.ts
956
- var NEGOTIUM_VERSION = "0.2.13";
955
+ var NEGOTIUM_VERSION = "0.2.15";
957
956
 
958
957
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
959
958
  import { spawn as spawn2 } from "child_process";
@@ -1395,7 +1394,7 @@ function createBackgroundBashManager(options = {}) {
1395
1394
  const knownContexts = new Map;
1396
1395
  const runtimeCapability = options.capability ?? randomBytes2(32).toString("hex");
1397
1396
  const runtimeServerId = options.serverId ?? randomBytes2(16).toString("hex");
1398
- const serverFile = options.serverFile ?? BACKGROUND_BASH_SERVER;
1397
+ const bashRsBin = options.bashRsBin ?? BASH_RS_BIN;
1399
1398
  const basePort = options.basePort ?? BG_BASH_BASE_PORT;
1400
1399
  const maxPort = options.maxPort ?? BG_BASH_MAX_PORT;
1401
1400
  const fetchImpl = options.fetch ?? globalThis.fetch;
@@ -1432,11 +1431,10 @@ function createBackgroundBashManager(options = {}) {
1432
1431
  const body = await response.text();
1433
1432
  try {
1434
1433
  const parsed = JSON.parse(body);
1435
- if (parsed && typeof parsed === "object" && "instance_id" in parsed) {
1436
- return parsed.instance_id === runtimeServerId;
1437
- }
1438
- } catch {}
1439
- return body === runtimeServerId;
1434
+ return Boolean(parsed) && typeof parsed === "object" && parsed.instance_id === runtimeServerId;
1435
+ } catch {
1436
+ return false;
1437
+ }
1440
1438
  } catch {
1441
1439
  return false;
1442
1440
  }
@@ -1454,9 +1452,11 @@ function createBackgroundBashManager(options = {}) {
1454
1452
  logger.info({ key, port: instance.port }, "background-bash server killed");
1455
1453
  }
1456
1454
  async function spawnServer(key, reservedPort, excludedPorts = new Set) {
1455
+ if (!bashRsBin) {
1456
+ throw new Error(`background-bash requires the bash-rs ${BASH_RS_VERSION} binary; run install-bash-rs.mjs (or set NEGOTIUM_BASH_RS_BIN)`);
1457
+ }
1457
1458
  const port = reservedPort ?? await allocatePort(excludedPorts);
1458
- const [command, args] = BASH_RS_BIN ? [BASH_RS_BIN, [String(port)]] : ["bun", ["run", serverFile, `--port=${port}`]];
1459
- const process2 = spawnImpl(command, args, {
1459
+ const process2 = spawnImpl(bashRsBin, [String(port)], {
1460
1460
  stdio: "ignore",
1461
1461
  detached: false,
1462
1462
  env: {
@@ -16329,6 +16329,7 @@ function startAiTurn(params) {
16329
16329
  bgBashPort = await ensureBgBash(userId, topic.id);
16330
16330
  } catch (err) {
16331
16331
  logger.warn({ topicId, err }, "ai: ensureBgBash failed \u2014 proceeding without background bash tools");
16332
+ turnReminders.push("<system-reminder>Background bash tools are UNAVAILABLE this turn. The `background_bash_*` tools could not be prepared, most often because the bash-rs binary is not installed on this host. Do not attempt to call them; run short commands in the foreground instead, and tell the user if the work genuinely needs a background job.</system-reminder>");
16332
16333
  }
16333
16334
  }
16334
16335
  if (playwrightRequested && !browserProfileOwner) {
@@ -19695,4 +19696,4 @@ export {
19695
19696
  createAgentHealthMcpServer
19696
19697
  };
19697
19698
 
19698
- //# debugId=5DDC8694573427EB64756E2164756E21
19699
+ //# debugId=AF3DB07211992E0064756E2164756E21