negotium 0.21.3 → 0.22.1

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 (50) hide show
  1. package/dist/agent-helpers.js +36 -8
  2. package/dist/agent-helpers.js.map +8 -8
  3. package/dist/background-bash.js +2 -2
  4. package/dist/background-bash.js.map +3 -3
  5. package/dist/browser-runtime.js +2 -2
  6. package/dist/browser-runtime.js.map +3 -3
  7. package/dist/{chunk-vtyyjgyn.js → chunk-171bjvzq.js} +1 -1
  8. package/dist/{chunk-satzkryv.js → chunk-hynnm12y.js} +3 -3
  9. package/dist/{chunk-satzkryv.js.map → chunk-hynnm12y.js.map} +2 -2
  10. package/dist/{chunk-e2bfvdaz.js → chunk-kkz8sh74.js} +1 -1
  11. package/dist/{chunk-zjz52hzq.js → chunk-pghgg8yz.js} +2 -2
  12. package/dist/{chunk-zjz52hzq.js.map → chunk-pghgg8yz.js.map} +5 -5
  13. package/dist/{chunk-pvp197f1.js → chunk-t5r9w3gb.js} +2 -2
  14. package/dist/{chunk-pvp197f1.js.map → chunk-t5r9w3gb.js.map} +3 -3
  15. package/dist/hosted-agent.js +22 -6
  16. package/dist/hosted-agent.js.map +4 -4
  17. package/dist/main.js +120 -42
  18. package/dist/main.js.map +12 -12
  19. package/dist/mcp-factories.js +36 -8
  20. package/dist/mcp-factories.js.map +8 -8
  21. package/dist/media.js +2 -2
  22. package/dist/media.js.map +3 -3
  23. package/dist/prompts.js +2 -2
  24. package/dist/prompts.js.map +3 -3
  25. package/dist/query-runtime.js +15 -3
  26. package/dist/query-runtime.js.map +5 -5
  27. package/dist/registry.js +3 -3
  28. package/dist/rollout.js +2 -2
  29. package/dist/runtime/src/agents/rollout/codex.ts +30 -2
  30. package/dist/runtime/src/mcp/session-comm/server.ts +2 -2
  31. package/dist/runtime/src/platform/config.ts +1 -1
  32. package/dist/runtime/src/query/active-rooms.ts +22 -2
  33. package/dist/runtime/src/runtime/inbox.ts +74 -41
  34. package/dist/runtime/src/runtime/turn-runner.ts +4 -2
  35. package/dist/runtime/src/types.ts +6 -1
  36. package/dist/runtime/src/version.ts +1 -1
  37. package/dist/runtime-helpers.js +2 -2
  38. package/dist/runtime-helpers.js.map +3 -3
  39. package/dist/storage.js.map +1 -1
  40. package/dist/types/packages/core/src/agents/rollout/codex.d.ts +3 -1
  41. package/dist/types/packages/core/src/platform/config.d.ts +1 -1
  42. package/dist/types/packages/core/src/query/active-rooms.d.ts +8 -2
  43. package/dist/types/packages/core/src/types.d.ts +6 -1
  44. package/dist/types/packages/core/src/version.d.ts +1 -1
  45. package/dist/vault.js +2 -2
  46. package/dist/vault.js.map +3 -3
  47. package/install-browser-rs.mjs +4 -4
  48. package/package.json +2 -2
  49. /package/dist/{chunk-vtyyjgyn.js.map → chunk-171bjvzq.js.map} +0 -0
  50. /package/dist/{chunk-e2bfvdaz.js.map → chunk-kkz8sh74.js.map} +0 -0
@@ -480,7 +480,7 @@ function resolveWhisperBackend() {
480
480
  function codexAuthFilePath() {
481
481
  return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
482
482
  }
483
- var HOME, PROJECT_ROOT, 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", BINARY_EXTENSION, BROWSER_RS_VERSION = "v0.7.4", BROWSER_RS_MIN_SECURE_VERSION = "0.2.1", BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15000, SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.10", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, TSX_LOADER_PATH, TSX_LOADER, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, DECISION_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, NODE_ID, VAULT_MASTER_KEY, NEGOTIUM_PORT, hostname, DATA_DIR, LOG_DIR, UPLOADS_DIR, VAULT_DIR, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, RUNTIME_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, ABSOLUTE_PATH_PREFIX, FILE_EXTENSIONS_REGEX, FILE_TAG_REGEX, MODEL_SONNET = "claude-sonnet-5", MODEL_OPUS = "claude-opus-5-5", MODEL_HAIKU = "claude-haiku-4-5-20251001", MODEL_FABLE = "claude-fable-5-1", MODEL_DEEPSEEK_V4_PRO = "deepseek-v4-pro", MODEL_DEEPSEEK_V4_FLASH = "deepseek-v4-flash", FALLBACK_AGENT, FALLBACK_MODEL, DEFAULT_TOPIC_EFFORT, FFMPEG_BIN, FFPROBE_BIN, PYTHON_BIN, FASTER_WHISPER_WRAPPER, WHISPER_MODEL, TESSERACT_BIN, PDFTOTEXT_BIN, WHISPER_BACKEND, MLX_WHISPER_BIN, WHISPER_MODEL_MLX, _envMaxTellDepth, MAX_TELL_DEPTH;
483
+ var HOME, PROJECT_ROOT, 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", BINARY_EXTENSION, BROWSER_RS_VERSION = "v0.7.6", BROWSER_RS_MIN_SECURE_VERSION = "0.2.1", BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15000, SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.10", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, TSX_LOADER_PATH, TSX_LOADER, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, DECISION_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, NODE_ID, VAULT_MASTER_KEY, NEGOTIUM_PORT, hostname, DATA_DIR, LOG_DIR, UPLOADS_DIR, VAULT_DIR, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, RUNTIME_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, ABSOLUTE_PATH_PREFIX, FILE_EXTENSIONS_REGEX, FILE_TAG_REGEX, MODEL_SONNET = "claude-sonnet-5", MODEL_OPUS = "claude-opus-5-5", MODEL_HAIKU = "claude-haiku-4-5-20251001", MODEL_FABLE = "claude-fable-5-1", MODEL_DEEPSEEK_V4_PRO = "deepseek-v4-pro", MODEL_DEEPSEEK_V4_FLASH = "deepseek-v4-flash", FALLBACK_AGENT, FALLBACK_MODEL, DEFAULT_TOPIC_EFFORT, FFMPEG_BIN, FFPROBE_BIN, PYTHON_BIN, FASTER_WHISPER_WRAPPER, WHISPER_MODEL, TESSERACT_BIN, PDFTOTEXT_BIN, WHISPER_BACKEND, MLX_WHISPER_BIN, WHISPER_MODEL_MLX, _envMaxTellDepth, MAX_TELL_DEPTH;
484
484
  var init_config = __esm(() => {
485
485
  init_config_helpers();
486
486
  init_logger();
@@ -4935,12 +4935,28 @@ function readLatestCodexContextUsage(threadId) {
4935
4935
  return;
4936
4936
  }
4937
4937
  }
4938
- function readLatestCodexTokenTotals(threadId) {
4938
+ function extractCodexForkedFromId(jsonl) {
4939
+ const newline = jsonl.indexOf(`
4940
+ `);
4941
+ try {
4942
+ const entry = JSON.parse(newline < 0 ? jsonl : jsonl.slice(0, newline));
4943
+ const id = entry.type === "session_meta" ? entry.payload?.forked_from_id : undefined;
4944
+ return typeof id === "string" && id ? id : undefined;
4945
+ } catch {
4946
+ return;
4947
+ }
4948
+ }
4949
+ function readLatestCodexTokenTotals(threadId, depth = 0) {
4939
4950
  const path = latestCodexRolloutPath(threadId);
4940
4951
  if (!path)
4941
4952
  return;
4942
4953
  try {
4943
- return extractLatestCodexTokenTotals(readFileSync4(path, "utf8"));
4954
+ const jsonl = readFileSync4(path, "utf8");
4955
+ const totals = extractLatestCodexTokenTotals(jsonl);
4956
+ if (totals || depth >= 8)
4957
+ return totals;
4958
+ const parentId = extractCodexForkedFromId(jsonl);
4959
+ return parentId && parentId !== threadId ? readLatestCodexTokenTotals(parentId, depth + 1) : undefined;
4944
4960
  } catch (error) {
4945
4961
  logger.debug({ error, threadId }, "codex token totals: rollout read failed");
4946
4962
  return;
@@ -5199,7 +5215,7 @@ var init_codex = __esm(async () => {
5199
5215
  });
5200
5216
 
5201
5217
  // ../../packages/core/src/version.ts
5202
- var NEGOTIUM_VERSION = "0.21.3";
5218
+ var NEGOTIUM_VERSION = "0.22.1";
5203
5219
 
5204
5220
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
5205
5221
  import { spawn as spawn2 } from "child_process";
@@ -10999,8 +11015,20 @@ class InterSessionQueue {
10999
11015
  keysForRoom() {
11000
11016
  return Array.from(this.queue.keys());
11001
11017
  }
11002
- drop(topicId) {
11018
+ drop(topicId, reason = "target session was stopped before the request ran") {
11019
+ const bucket = this.queue.get(topicId);
11003
11020
  this.queue.delete(topicId);
11021
+ if (!bucket)
11022
+ return 0;
11023
+ const dropped = bucket.items.slice(bucket.head);
11024
+ for (const inject of dropped) {
11025
+ try {
11026
+ inject.onSettled?.({ queryId: "", kind: "error", error: reason });
11027
+ } catch (err) {
11028
+ logger.warn({ err, topicId, requestId: inject.requestId }, "session inject drop settlement hook failed");
11029
+ }
11030
+ }
11031
+ return dropped.length;
11004
11032
  }
11005
11033
  size(topicId) {
11006
11034
  const bucket = this.queue.get(topicId);
@@ -20684,9 +20712,8 @@ function startAiTurn(params) {
20684
20712
  contextWindow: outcome.usage.contextWindow
20685
20713
  } : undefined, { agent: agentKind, model: resolvedModel, budgetReason: outcome.reason });
20686
20714
  WsHub.get().broadcastTopicNotice(topicId, "warning", "\uC608\uC0B0 \uD55C\uB3C4 \uB3C4\uB2EC");
20687
- } else {
20688
- await deliverAskError(queryId, topic.title, error);
20689
20715
  }
20716
+ await deliverAskError(queryId, topic.title, error);
20690
20717
  await settleSubagentFailure(queryId, error);
20691
20718
  try {
20692
20719
  onSettled?.({ queryId, kind: "error", error });
@@ -20731,6 +20758,7 @@ function startAiTurn(params) {
20731
20758
  WsHub.get().broadcastError(topicId, queryId, error);
20732
20759
  WsHub.get().broadcastTopicNotice(topicId, "error", "\uC751\uB2F5 \uC2E4\uD328");
20733
20760
  }
20761
+ await deliverAskError(queryId, topic.title, error);
20734
20762
  await settleSubagentFailure(queryId, classifyAgentError(error, agentKind));
20735
20763
  try {
20736
20764
  onSettled?.({
@@ -22827,4 +22855,4 @@ export {
22827
22855
  DEFAULT_SELF_CONFIG_PRODUCT
22828
22856
  };
22829
22857
 
22830
- //# debugId=10C6EC28EC08FE1364756E2164756E21
22858
+ //# debugId=7F26F522445F472564756E2164756E21