negotium 0.1.35 → 0.1.36

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/main.js CHANGED
@@ -262,7 +262,7 @@ function resolveDefaultModel(agent, registryDefaultModel) {
262
262
  function codexAuthFilePath() {
263
263
  return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(homedir(), ".codex", "auth.json");
264
264
  }
265
- var HOME, PROJECT_ROOT, STATE_DIR_ENV, STATE_DIR, WORKSPACE_DIR, TOPIC_WORKSPACE_DIR, SHARED_WIKI_DIR, CONTEXTS_DIR, BROWSER_PROFILES_DIR, DM_WORKSPACE_DIR, SESSION_WORKSPACE_DIR, CLAUDE_EXECUTABLE_ENV, CLAUDE_EXECUTABLE, PATCHRIGHT_MCP_BIN, PLAYWRIGHT_MCP_BIN, BROWSER_RS_VERSION = "v0.1.12", BROWSER_RS_MIN_SECURE_VERSION = "0.1.12", BROWSER_RS_BIN, TSX_BIN, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, BROWSER_MCP_SSE_PROXY_SERVER, CANONICAL_MCP_PROXY_SERVER, WIKI_SERVER, TOKEN_STATS_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, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, PROGRESS_DIR, DM_CMD_DIR, DM_RESP_DIR, SESSION_INBOX_DIR, SESSION_ASKS_DIR, 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;
265
+ var HOME, PROJECT_ROOT, STATE_DIR_ENV, STATE_DIR, WORKSPACE_DIR, TOPIC_WORKSPACE_DIR, SHARED_WIKI_DIR, CONTEXTS_DIR, BROWSER_PROFILES_DIR, DM_WORKSPACE_DIR, SESSION_WORKSPACE_DIR, CLAUDE_EXECUTABLE_ENV, CLAUDE_EXECUTABLE, PATCHRIGHT_MCP_BIN, PLAYWRIGHT_MCP_BIN, BROWSER_RS_VERSION = "v0.1.13", BROWSER_RS_MIN_SECURE_VERSION = "0.1.13", BROWSER_RS_BIN, TSX_BIN, TSCONFIG_PATH, SESSION_COMM_SERVER, TASK_SERVER, BROWSER_MCP_SSE_PROXY_SERVER, CANONICAL_MCP_PROXY_SERVER, WIKI_SERVER, TOKEN_STATS_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, SESSIONS_DB, DEBUG_FILE, USERS_LOG_DIR, RUN_DIR, PROGRESS_DIR, DM_CMD_DIR, DM_RESP_DIR, SESSION_INBOX_DIR, SESSION_ASKS_DIR, 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;
266
266
  var init_config = __esm(() => {
267
267
  init_config_helpers();
268
268
  init_logger();
@@ -3919,7 +3919,7 @@ var init_claude_provider = __esm(async () => {
3919
3919
  });
3920
3920
 
3921
3921
  // ../../packages/core/src/version.ts
3922
- var NEGOTIUM_VERSION = "0.1.35";
3922
+ var NEGOTIUM_VERSION = "0.1.36";
3923
3923
 
3924
3924
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
3925
3925
  import { spawn as spawn3 } from "child_process";
@@ -24756,6 +24756,15 @@ function maxConversationScrollOffset(state, columns, rows) {
24756
24756
  const lineCount = conversationContentLines(state, layout.conversationWidth, 0, terminalNowMs(), !layout.showTaskSidebar).length;
24757
24757
  return conversationViewport(lineCount, bodyHeight, state.scrollOffset).maxOffset;
24758
24758
  }
24759
+ function preserveConversationScrollAnchor(previous, next, columns, rows) {
24760
+ if (previous.scrollOffset <= 0 || previous.activeTopicId !== next.activeTopicId || previous.overlay || next.overlay) {
24761
+ return next;
24762
+ }
24763
+ const previousMax = maxConversationScrollOffset(previous, columns, rows);
24764
+ const nextMax = maxConversationScrollOffset(next, columns, rows);
24765
+ const scrollOffset = Math.min(nextMax, Math.max(0, previous.scrollOffset + (nextMax - previousMax)));
24766
+ return scrollOffset === next.scrollOffset ? next : { ...next, scrollOffset };
24767
+ }
24759
24768
  var theme, WORKING_FRAMES, CODE_COPY_MARKER = "\u29C9", WORKING_FRAME_INTERVAL_MS = 50, ESC = "\x1B[", RESET, fg = ([r, g, b]) => `${ESC}38;2;${r};${g};${b}m`, bg = ([r, g, b]) => `${ESC}48;2;${r};${g};${b}m`, FILE_PREVIEW_MAX_LINES = 12, INLINE_TASK_LIMIT = 5, TASK_SIDEBAR_MIN_WIDTH = 110, TASK_SIDEBAR_WIDTH = 36, TASK_SIDEBAR_GAP = 1;
24760
24769
  var init_render = __esm(async () => {
24761
24770
  await init_src();
@@ -26394,6 +26403,10 @@ class TerminalApp {
26394
26403
  this.#stopRequested = true;
26395
26404
  this.#requestExit();
26396
26405
  }
26406
+ #applyRuntimeEvent(event) {
26407
+ const previousState = this.#state;
26408
+ this.#state = preserveConversationScrollAnchor(previousState, applyRuntimeEvent(previousState, event), process.stdout.columns ?? 100, process.stdout.rows ?? 30);
26409
+ }
26397
26410
  #handleRuntimeEvent(event) {
26398
26411
  if (runtimeEventInvalidatesSelection(this.#state, event))
26399
26412
  this.#selection = null;
@@ -26403,7 +26416,7 @@ class TerminalApp {
26403
26416
  this.#queuedRuntimeEvents.set(event.topicId, queued);
26404
26417
  return;
26405
26418
  }
26406
- this.#state = applyRuntimeEvent(this.#state, event);
26419
+ this.#applyRuntimeEvent(event);
26407
26420
  if (event.type === "topic-created" || event.type === "topic-updated" || event.type === "topic-deleted") {
26408
26421
  const previous = this.#state.activeTopicId;
26409
26422
  const refreshSubagentGraph = this.#state.overlay === "subagents";
@@ -26511,7 +26524,7 @@ class TerminalApp {
26511
26524
  const queued2 = this.#queuedRuntimeEvents.get(topic.id) ?? [];
26512
26525
  this.#queuedRuntimeEvents.delete(topic.id);
26513
26526
  for (const event of queued2)
26514
- this.#state = applyRuntimeEvent(this.#state, event);
26527
+ this.#applyRuntimeEvent(event);
26515
26528
  }
26516
26529
  throw error;
26517
26530
  }
@@ -26528,13 +26541,13 @@ class TerminalApp {
26528
26541
  loading: false
26529
26542
  });
26530
26543
  for (const event of recentEvents) {
26531
- this.#state = applyRuntimeEvent(this.#state, event);
26544
+ this.#applyRuntimeEvent(event);
26532
26545
  }
26533
26546
  this.#messageLoadGeneration.delete(topic.id);
26534
26547
  const queued = this.#queuedRuntimeEvents.get(topic.id) ?? [];
26535
26548
  this.#queuedRuntimeEvents.delete(topic.id);
26536
26549
  for (const event of queued)
26537
- this.#state = applyRuntimeEvent(this.#state, event);
26550
+ this.#applyRuntimeEvent(event);
26538
26551
  }
26539
26552
  async#loadOlderMessages(topicId, targetOffset) {
26540
26553
  const history = this.#messageHistory.get(topicId);
@@ -35958,4 +35971,4 @@ switch (command) {
35958
35971
  }
35959
35972
  }
35960
35973
 
35961
- //# debugId=6D26E247972E960464756E2164756E21
35974
+ //# debugId=7AB12B27FCD12BB964756E2164756E21