negotium 0.12.2 → 0.13.0

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 (38) hide show
  1. package/dist/agent-helpers.js +23 -11
  2. package/dist/agent-helpers.js.map +8 -8
  3. package/dist/background-bash.js.map +1 -1
  4. package/dist/browser-runtime.js.map +1 -1
  5. package/dist/{chunk-v9vh52nc.js → chunk-m19cf9kc.js} +1 -1
  6. package/dist/{chunk-bw6mrsc6.js → chunk-tnptx2ba.js} +3 -3
  7. package/dist/{chunk-bw6mrsc6.js.map → chunk-tnptx2ba.js.map} +2 -2
  8. package/dist/{chunk-jz4jf6t1.js → chunk-vmfesy73.js} +2 -2
  9. package/dist/{chunk-jz4jf6t1.js.map → chunk-vmfesy73.js.map} +2 -2
  10. package/dist/hosted-agent.js +3 -3
  11. package/dist/hosted-agent.js.map +3 -3
  12. package/dist/main.js +29 -14
  13. package/dist/main.js.map +9 -9
  14. package/dist/mcp-factories.js +22 -10
  15. package/dist/mcp-factories.js.map +7 -7
  16. package/dist/media.js.map +1 -1
  17. package/dist/prompts.js +17 -7
  18. package/dist/prompts.js.map +4 -4
  19. package/dist/query-runtime.js.map +1 -1
  20. package/dist/registry.js +3 -3
  21. package/dist/registry.js.map +2 -2
  22. package/dist/rollout.js +2 -2
  23. package/dist/runtime/src/agents/codex-registry.ts +5 -4
  24. package/dist/runtime/src/agents/model-catalog.ts +29 -8
  25. package/dist/runtime/src/agents/self-config-core.ts +1 -1
  26. package/dist/runtime/src/platform/config.ts +1 -1
  27. package/dist/runtime/src/runtime/inbox.ts +16 -1
  28. package/dist/runtime/src/storage/token-stats.ts +3 -1
  29. package/dist/runtime/src/version.ts +1 -1
  30. package/dist/runtime-helpers.js.map +1 -1
  31. package/dist/storage.js +3 -2
  32. package/dist/storage.js.map +3 -3
  33. package/dist/types/packages/core/src/agents/model-catalog.d.ts +7 -3
  34. package/dist/types/packages/core/src/platform/config.d.ts +1 -1
  35. package/dist/types/packages/core/src/version.d.ts +1 -1
  36. package/dist/vault.js.map +1 -1
  37. package/package.json +9 -9
  38. /package/dist/{chunk-v9vh52nc.js.map → chunk-m19cf9kc.js.map} +0 -0
package/dist/main.js CHANGED
@@ -281,7 +281,7 @@ function resolveWhisperBackend() {
281
281
  function codexAuthFilePath() {
282
282
  return process.env.NEGOTIUM_CODEX_AUTH_FILE || join(process.env.CODEX_HOME || join(homedir(), ".codex"), "auth.json");
283
283
  }
284
- 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", BROWSER_RS_VERSION = "v0.3.0", 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.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;
284
+ 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", BROWSER_RS_VERSION = "v0.3.0", 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.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-1", 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;
285
285
  var init_config = __esm(() => {
286
286
  init_config_helpers();
287
287
  init_logger();
@@ -3780,7 +3780,7 @@ var exports_version = {};
3780
3780
  __export(exports_version, {
3781
3781
  NEGOTIUM_VERSION: () => NEGOTIUM_VERSION
3782
3782
  });
3783
- var NEGOTIUM_VERSION = "0.12.2";
3783
+ var NEGOTIUM_VERSION = "0.13.0";
3784
3784
 
3785
3785
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
3786
3786
  import { spawn as spawn2 } from "child_process";
@@ -9792,7 +9792,7 @@ function resolveCompactionExecution(agent, registry) {
9792
9792
  const effort = registry.validateEffort("medium") ? "medium" : registry.defaultEffort;
9793
9793
  return { model, ...effort ? { effort } : {} };
9794
9794
  }
9795
- var MODEL_OWNER, MODEL_COST_RESEARCHED_AT = "2026-08-04", MODEL_COST_ROUTING_SUMMARY = "Cost basis (2026-08-04): Codex Pro 20x and Claude Max 20x are each $200/month; Maestro models are pay-per-token. DeepSeek Flash is cheapest.", CODEX_PRO_20X_COST = "ChatGPT Pro 20x subscription: $200/month", CODEX_COMMUNITY_WEEKLY = "Community plan-level observation: roughly 2\u20134B raw/cached tokens per week; fresh-input equivalent is much lower and unstable (low confidence)", CLAUDE_MAX_20X_COST = "Claude Max 20x subscription: $200/month", CLAUDE_COMMUNITY_SESSION = "Community observations vary from roughly 220\u2013250K locally displayed tokens per 5-hour session to billions of cache-heavy raw tokens per week; calibrated reports value a full weekly allowance around $680\u2013$1,900 at API rates. Recent heavy-model reports reach the weekly cap after about 4\u20135 full sessions (low confidence; not a token cap)", SELECTABLE_MODELS, SELECTABLE_MODEL_ALIASES, FALLBACK_ORDER, AGENT_DISPLAY_NAME;
9795
+ var MODEL_OWNER, MODEL_COST_RESEARCHED_AT = "2026-09-05", MODEL_COST_ROUTING_SUMMARY = "Cost basis (2026-09-05): Codex Pro 20x and Claude Max 20x are each $200/month; Maestro models are pay-per-token. DeepSeek Flash is cheapest. gpt-6-astra and Claude Fable 5.1 are the newest flagships, both priced at $10/M input / $50/M output.", CODEX_PRO_20X_COST = "ChatGPT Pro 20x subscription: $200/month", CODEX_COMMUNITY_WEEKLY = "Community plan-level observation: roughly 2\u20134B raw/cached tokens per week; fresh-input equivalent is much lower and unstable (low confidence)", CLAUDE_MAX_20X_COST = "Claude Max 20x subscription: $200/month", CLAUDE_COMMUNITY_SESSION = "Community observations vary from roughly 220\u2013250K locally displayed tokens per 5-hour session to billions of cache-heavy raw tokens per week; calibrated reports value a full weekly allowance around $680\u2013$1,900 at API rates. Recent heavy-model reports reach the weekly cap after about 4\u20135 full sessions (low confidence; not a token cap)", SELECTABLE_MODELS, SELECTABLE_MODEL_ALIASES, FALLBACK_ORDER, AGENT_DISPLAY_NAME;
9796
9796
  var init_model_catalog = __esm(() => {
9797
9797
  init_config();
9798
9798
  MODEL_OWNER = {
@@ -9800,6 +9800,7 @@ var init_model_catalog = __esm(() => {
9800
9800
  opus: "claude",
9801
9801
  haiku: "claude",
9802
9802
  fable: "claude",
9803
+ "gpt-6-astra": "codex",
9803
9804
  "gpt-5.6-luna": "codex",
9804
9805
  "gpt-5.6-terra": "codex",
9805
9806
  "gpt-5.6-sol": "codex",
@@ -9821,11 +9822,21 @@ var init_model_catalog = __esm(() => {
9821
9822
  };
9822
9823
  SELECTABLE_MODELS = [
9823
9824
  {
9824
- model: "gpt-5.6-sol",
9825
+ model: "gpt-6-astra",
9825
9826
  agent: "codex",
9826
- description: "Highest-capability Codex route for the hardest agentic coding work.",
9827
+ description: "Newest OpenAI flagship; replaces gpt-5.6-sol as Codex's highest-capability route.",
9827
9828
  intelligenceTier: "fable",
9828
- routingSummary: "hardest coding work; 5x Codex quota cost",
9829
+ routingSummary: "flagship reasoning; 2x sol's input/cache cost and 1.67x its output cost; matches Fable 5.1 pricing",
9830
+ accessCost: CODEX_PRO_20X_COST,
9831
+ marginalTokenCost: "Codex credits (OpenAI API rate): $10/M uncached input, $1/M cached input, $12.50/M cache write, $50/M output",
9832
+ estimatedUsage: `Released 2026-09-03; became Codex CLI's bundled default in v0.153.4 (2026-09-05). Local message-count/quota-weight ranges not yet published as of the last catalog check \u2014 expect a quota weight above gpt-5.6-sol given the higher per-token cost. ${CODEX_COMMUNITY_WEEKLY}`
9833
+ },
9834
+ {
9835
+ model: "gpt-5.6-sol",
9836
+ agent: "codex",
9837
+ description: "High-capability Codex route for demanding agentic coding work; demoted below gpt-6-astra.",
9838
+ intelligenceTier: "opus",
9839
+ routingSummary: "demanding coding work; 5x Codex quota cost; now second-tier behind gpt-6-astra",
9829
9840
  accessCost: CODEX_PRO_20X_COST,
9830
9841
  marginalTokenCost: "Codex credits: $5/M uncached input, $0.50/M cached input, $30/M output",
9831
9842
  estimatedUsage: `Official Pro 20x range: 300\u20131,800 local messages per 5 hours; quota weight 5x Luna. ${CODEX_COMMUNITY_WEEKLY}`
@@ -9853,11 +9864,11 @@ var init_model_catalog = __esm(() => {
9853
9864
  {
9854
9865
  model: "fable",
9855
9866
  agent: "claude",
9856
- description: "Highest-capability Claude route for the hardest and longest-running tasks.",
9867
+ description: "Highest-capability Claude route (Fable 5.1) for the hardest and longest-running tasks.",
9857
9868
  intelligenceTier: "fable",
9858
9869
  routingSummary: "hardest long-running work; highest Claude cost; explicit request only",
9859
9870
  accessCost: CLAUDE_MAX_20X_COST,
9860
- marginalTokenCost: "Claude API/extra usage: $10/M input, $12.50/M cache write, $1/M cache read, $50/M output",
9871
+ marginalTokenCost: "Claude API/extra usage: $10/M input, $12.50/M cache write, $0.25/M cache read (cut from $1/M in Fable 5.1, 2026-09-01), $50/M output",
9861
9872
  estimatedUsage: `${CLAUDE_COMMUNITY_SESSION}; Fable drains weighted quota fastest, so use only on explicit user request. No stable per-model token cap is published.`
9862
9873
  },
9863
9874
  {
@@ -13938,10 +13949,11 @@ var init_token_stats = __esm(async () => {
13938
13949
  await init_api_topics();
13939
13950
  await init_storage_host();
13940
13951
  TOKEN_PRICES = {
13952
+ "codex:gpt-6-astra": { input: 10, cacheWrite: 12.5, cacheRead: 1, output: 50 },
13941
13953
  "codex:gpt-5.6-sol": { input: 5, cacheRead: 0.5, output: 30 },
13942
13954
  "codex:gpt-5.6-terra": { input: 2.5, cacheRead: 0.25, output: 15 },
13943
13955
  "codex:gpt-5.6-luna": { input: 1, cacheRead: 0.1, output: 6 },
13944
- "claude:fable": { input: 10, cacheWrite: 12.5, cacheRead: 1, output: 50 },
13956
+ "claude:fable": { input: 10, cacheWrite: 12.5, cacheRead: 0.25, output: 50 },
13945
13957
  "claude:opus": { input: 5, cacheWrite: 6.25, cacheRead: 0.5, output: 25 },
13946
13958
  "claude:sonnet": { input: 2, cacheWrite: 2.5, cacheRead: 0.2, output: 10 },
13947
13959
  "maestro:kimi-k3": { input: 3, cacheRead: 0.3, output: 15 },
@@ -15952,7 +15964,7 @@ function escapeRegExp2(value) {
15952
15964
  function agentAliases(agent) {
15953
15965
  switch (agent) {
15954
15966
  case "codex":
15955
- return ["codex", "\uCF54\uB371\uC2A4", "gpt-5.6-luna", "gpt-5.6-terra", "gpt-5.6-sol"];
15967
+ return ["codex", "\uCF54\uB371\uC2A4", "gpt-5.6-luna", "gpt-5.6-terra", "gpt-5.6-sol", "gpt-6-astra"];
15956
15968
  case "claude":
15957
15969
  return ["claude", "\uD074\uB85C\uB4DC", "sonnet", "opus", "fable"];
15958
15970
  case "maestro":
@@ -23465,7 +23477,7 @@ async function resolveEntryCallerTopic(scope, entry) {
23465
23477
  return null;
23466
23478
  return getTopicByNameForUser2(entry.from, String(scope.userId), opts);
23467
23479
  }
23468
- function notifyCallerTopic(callerTopicId, targetLabel, message, label = `Reply from ${targetLabel}`) {
23480
+ function notifyCallerTopic(callerTopicId, targetLabel, message, label = `Reply from ${targetLabel}`, threadRootId) {
23469
23481
  const msg = {
23470
23482
  id: randomUUID21(),
23471
23483
  topicId: callerTopicId,
@@ -23478,6 +23490,7 @@ ${message}`,
23478
23490
  label,
23479
23491
  message
23480
23492
  },
23493
+ ...threadRootId ? { threadRootId } : {},
23481
23494
  createdAt: new Date().toISOString()
23482
23495
  };
23483
23496
  appendApiMessage(msg, { notify: false });
@@ -23497,6 +23510,7 @@ ${args.message}`,
23497
23510
  label: `Ask to ${args.targetLabel}`,
23498
23511
  message: args.message
23499
23512
  },
23513
+ ...args.threadRootId ? { threadRootId: args.threadRootId } : {},
23500
23514
  createdAt: new Date().toISOString()
23501
23515
  };
23502
23516
  try {
@@ -23516,7 +23530,7 @@ async function notifyAskDrop(scope, entry, targetLabel, message) {
23516
23530
  return;
23517
23531
  }
23518
23532
  try {
23519
- notifyCallerTopic(callerTopic.id, targetLabel, message, `Error from ${targetLabel}`);
23533
+ notifyCallerTopic(callerTopic.id, targetLabel, message, `Error from ${targetLabel}`, entry.fromThreadRootId);
23520
23534
  } catch (err2) {
23521
23535
  logger.warn({ err: err2, from: entry.from, to: targetLabel, requestId: entry.requestId }, "session-inbox: failed to notify ask caller");
23522
23536
  }
@@ -23948,7 +23962,8 @@ ${entry.message}
23948
23962
  callerUserId: String(scope.userId),
23949
23963
  targetLabel,
23950
23964
  requestId,
23951
- message: entry.message
23965
+ message: entry.message,
23966
+ ...entry.fromThreadRootId ? { threadRootId: entry.fromThreadRootId } : {}
23952
23967
  });
23953
23968
  }
23954
23969
  const { getTopic: getTopic2 } = await init_api_topics().then(() => exports_api_topics);
@@ -50774,4 +50789,4 @@ switch (command) {
50774
50789
  }
50775
50790
  }
50776
50791
 
50777
- //# debugId=60B98B6B10E61F0664756E2164756E21
50792
+ //# debugId=5E884D2B446497BE64756E2164756E21