negotium 0.5.0 → 0.5.2

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
@@ -270,10 +270,13 @@ function resolveModelEnv(envKey, agentConst) {
270
270
  function resolveDefaultModel(agent, registryDefaultModel) {
271
271
  return agent === SESSION_AGENT && SESSION_MODEL ? SESSION_MODEL : registryDefaultModel;
272
272
  }
273
+ function resolveWhisperBackend() {
274
+ return envText("WHISPER_BACKEND") === "mlx-whisper" ? "mlx-whisper" : "faster-whisper";
275
+ }
273
276
  function codexAuthFilePath() {
274
277
  return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
275
278
  }
276
- 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.23", BROWSER_RS_MIN_SECURE_VERSION = "0.1.15", BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15000, SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.7", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, 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, 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;
279
+ 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.23", BROWSER_RS_MIN_SECURE_VERSION = "0.1.15", BROWSER_RS_VERSION_PROBE_TIMEOUT_MS = 15000, SNIPPETS_API_URL, BROWSER_RS_BIN, BASH_RS_VERSION = "v0.1.7", BASH_RS_BIN, PLAYWRIGHT_MCP_BIN, TSX_BIN, 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, 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, WHISPER_BACKEND, MLX_WHISPER_BIN, WHISPER_MODEL_MLX, _envMaxTellDepth, MAX_TELL_DEPTH;
277
280
  var init_config = __esm(() => {
278
281
  init_config_helpers();
279
282
  init_logger();
@@ -375,6 +378,9 @@ var init_config = __esm(() => {
375
378
  WHISPER_MODEL = envText("WHISPER_MODEL_FILE") ?? "turbo";
376
379
  TESSERACT_BIN = envText("TESSERACT_BIN") ?? "tesseract";
377
380
  PDFTOTEXT_BIN = envText("PDFTOTEXT_BIN") ?? "pdftotext";
381
+ WHISPER_BACKEND = resolveWhisperBackend();
382
+ MLX_WHISPER_BIN = envText("MLX_WHISPER_BIN");
383
+ WHISPER_MODEL_MLX = envText("WHISPER_MODEL_MLX") ?? "mlx-community/whisper-large-v3-turbo";
378
384
  _envMaxTellDepth = Number.parseInt(process.env.MAX_TELL_DEPTH ?? "", 10);
379
385
  MAX_TELL_DEPTH = Number.isInteger(_envMaxTellDepth) && _envMaxTellDepth > 0 ? _envMaxTellDepth : 20;
380
386
  });
@@ -1868,7 +1874,7 @@ var exports_version = {};
1868
1874
  __export(exports_version, {
1869
1875
  NEGOTIUM_VERSION: () => NEGOTIUM_VERSION
1870
1876
  });
1871
- var NEGOTIUM_VERSION = "0.5.0";
1877
+ var NEGOTIUM_VERSION = "0.5.2";
1872
1878
 
1873
1879
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
1874
1880
  import { spawn } from "child_process";
@@ -21383,8 +21389,14 @@ async function extractFromImage(filePath) {
21383
21389
  }
21384
21390
  function isTranscriptionConfigured(opts = {}) {
21385
21391
  const ffmpeg = opts.ffmpegBin ?? FFMPEG_BIN;
21392
+ if (!ffmpeg)
21393
+ return false;
21394
+ const backend = opts.backend ?? WHISPER_BACKEND;
21395
+ if (backend === "mlx-whisper") {
21396
+ return Boolean(opts.mlxWhisperBin ?? MLX_WHISPER_BIN);
21397
+ }
21386
21398
  const wrapper = opts.wrapperPath ?? FASTER_WHISPER_WRAPPER;
21387
- return Boolean(ffmpeg) && existsSync21(wrapper);
21399
+ return existsSync21(wrapper);
21388
21400
  }
21389
21401
  async function transcribeAudio(filePath, opts = {}) {
21390
21402
  if (!isTranscriptionConfigured(opts))
@@ -21394,6 +21406,7 @@ async function transcribeAudio(filePath, opts = {}) {
21394
21406
  }
21395
21407
  async function extractFromAudio(filePath, opts = {}) {
21396
21408
  const tmpDir = `${filePath}_whisper_tmp`;
21409
+ const backend = opts.backend ?? WHISPER_BACKEND;
21397
21410
  try {
21398
21411
  mkdirSync21(tmpDir, { recursive: true });
21399
21412
  const mp3Path = join31(tmpDir, "audio.mp3");
@@ -21411,18 +21424,26 @@ async function extractFromAudio(filePath, opts = {}) {
21411
21424
  "16000",
21412
21425
  mp3Path
21413
21426
  ], { timeout: 60000 });
21414
- await execFileAsync(opts.pythonBin ?? PYTHON_BIN, [
21415
- opts.wrapperPath ?? FASTER_WHISPER_WRAPPER,
21427
+ const whisperArgs = [
21416
21428
  mp3Path,
21417
21429
  "--model",
21418
- opts.model ?? WHISPER_MODEL,
21430
+ opts.model ?? (backend === "mlx-whisper" ? WHISPER_MODEL_MLX : WHISPER_MODEL),
21419
21431
  "--language",
21420
21432
  opts.language ?? "ko",
21421
21433
  "--output-dir",
21422
21434
  tmpDir,
21423
21435
  "--output-format",
21424
21436
  "txt"
21425
- ], { timeout: 120000 });
21437
+ ];
21438
+ if (backend === "mlx-whisper") {
21439
+ const mlxWhisperBin = opts.mlxWhisperBin ?? MLX_WHISPER_BIN;
21440
+ if (!mlxWhisperBin) {
21441
+ return { text: null, method: "whisper", error: "MLX_WHISPER_BIN not configured" };
21442
+ }
21443
+ await execFileAsync(mlxWhisperBin, whisperArgs, { timeout: 300000 });
21444
+ } else {
21445
+ await execFileAsync(opts.pythonBin ?? PYTHON_BIN, [opts.wrapperPath ?? FASTER_WHISPER_WRAPPER, ...whisperArgs], { timeout: 120000 });
21446
+ }
21426
21447
  const txtPath = join31(tmpDir, "audio.txt");
21427
21448
  const text2 = existsSync21(txtPath) ? readFileSync17(txtPath, "utf-8").trim() : null;
21428
21449
  if (!text2) {
@@ -21430,7 +21451,7 @@ async function extractFromAudio(filePath, opts = {}) {
21430
21451
  }
21431
21452
  return { text: text2, method: "whisper" };
21432
21453
  } catch (e) {
21433
- logger.debug({ err: e, filePath }, "whisper extraction failed");
21454
+ logger.debug({ err: e, filePath, backend }, "whisper extraction failed");
21434
21455
  return {
21435
21456
  text: null,
21436
21457
  method: "whisper",
@@ -47639,4 +47660,4 @@ switch (command) {
47639
47660
  }
47640
47661
  }
47641
47662
 
47642
- //# debugId=A120DD1C769C1B1164756E2164756E21
47663
+ //# debugId=A98143381B45D73164756E2164756E21