negotium 0.1.39 → 0.1.40

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.
@@ -2571,7 +2571,7 @@ var init_claude_provider = __esm(async () => {
2571
2571
  });
2572
2572
 
2573
2573
  // ../../packages/core/src/version.ts
2574
- var NEGOTIUM_VERSION = "0.1.39";
2574
+ var NEGOTIUM_VERSION = "0.1.40";
2575
2575
 
2576
2576
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
2577
2577
  import { spawn as spawn3 } from "child_process";
@@ -5933,7 +5933,8 @@ function buildRuntimeToolSection(opts, extensions) {
5933
5933
  currentModel,
5934
5934
  currentEffort,
5935
5935
  subagentParentTitle,
5936
- subagentReportMode = "auto"
5936
+ subagentReportMode = "auto",
5937
+ scheduleSelf = true
5937
5938
  } = opts;
5938
5939
  const runtimeNamespace = "mcp__runtime";
5939
5940
  const taskNamespace = "mcp__task";
@@ -5981,7 +5982,7 @@ function buildRuntimeToolSection(opts, extensions) {
5981
5982
  askUserToolLine,
5982
5983
  'Do not use provider built-in "AskUserQuestion"; it is disabled or unsupported in this headless chat runtime. Use the runtime ask_user_question tool instead.'
5983
5984
  ],
5984
- scheduleSelfToolLine,
5985
+ ...scheduleSelf ? [scheduleSelfToolLine] : [],
5985
5986
  ...visualTools && extensions.visualDesignGuide ? ["", extensions.visualDesignGuide] : [],
5986
5987
  ...extensions.render("after-runtime-tools"),
5987
5988
  "",
@@ -6052,6 +6053,7 @@ function buildRuntimeToolSection(opts, extensions) {
6052
6053
  }
6053
6054
  function createPromptBuilders(host = {}) {
6054
6055
  const loadTemplate = host.loadTemplate;
6056
+ const scheduleSelf = host.scheduleSelf ?? true;
6055
6057
  const sections = (host.extraSections ?? []).map((section) => {
6056
6058
  const render = section.render;
6057
6059
  const snapshot = {
@@ -6101,7 +6103,8 @@ function createPromptBuilders(host = {}) {
6101
6103
  currentModel: opts.currentModel,
6102
6104
  currentEffort: opts.currentEffort,
6103
6105
  subagentParentTitle: opts.subagentParentTitle,
6104
- subagentReportMode: opts.subagentReportMode
6106
+ subagentReportMode: opts.subagentReportMode,
6107
+ scheduleSelf
6105
6108
  }, {
6106
6109
  render,
6107
6110
  visualDesignGuide: template({
@@ -7888,15 +7891,18 @@ function beginRuntimeTopicMaintenance(topicId, options = {}) {
7888
7891
  var TOPIC_MAINTENANCE_STALE_MS = 30000, TOPIC_MAINTENANCE_HEARTBEAT_MS = 1000;
7889
7892
  var init_runtime_topic_state = __esm(async () => {
7890
7893
  await init_forum_db();
7891
- db.exec(`
7892
- CREATE TABLE IF NOT EXISTS runtime_topic_state (
7893
- topic_id TEXT PRIMARY KEY,
7894
- epoch INTEGER NOT NULL DEFAULT 0,
7895
- maintenance INTEGER NOT NULL DEFAULT 0 CHECK (maintenance IN (0, 1)),
7896
- maintenance_owner TEXT,
7897
- heartbeat_at INTEGER
7898
- )
7899
- `);
7894
+ await init_storage_host();
7895
+ registerStorageSchemaInitializer((database) => {
7896
+ database.exec(`
7897
+ CREATE TABLE IF NOT EXISTS runtime_topic_state (
7898
+ topic_id TEXT PRIMARY KEY,
7899
+ epoch INTEGER NOT NULL DEFAULT 0,
7900
+ maintenance INTEGER NOT NULL DEFAULT 0 CHECK (maintenance IN (0, 1)),
7901
+ maintenance_owner TEXT,
7902
+ heartbeat_at INTEGER
7903
+ )
7904
+ `);
7905
+ }, 32);
7900
7906
  });
7901
7907
 
7902
7908
  // ../../packages/core/src/storage/runtime-leases.ts
@@ -7984,20 +7990,23 @@ var RUNTIME_INSTANCE_ID, TURN_LEASE_STALE_MS = 1e4;
7984
7990
  var init_runtime_leases = __esm(async () => {
7985
7991
  await init_forum_db();
7986
7992
  await init_runtime_topic_state();
7993
+ await init_storage_host();
7987
7994
  RUNTIME_INSTANCE_ID = `${process.pid}-${randomUUID7()}`;
7988
- db.exec(`
7989
- CREATE TABLE IF NOT EXISTS runtime_turn_leases (
7990
- topic_id TEXT PRIMARY KEY,
7991
- query_id TEXT NOT NULL UNIQUE,
7992
- owner_id TEXT NOT NULL,
7993
- origin TEXT NOT NULL,
7994
- started_at INTEGER NOT NULL,
7995
- heartbeat_at INTEGER NOT NULL,
7996
- abort_requested INTEGER NOT NULL DEFAULT 0 CHECK (abort_requested IN (0, 1)),
7997
- abort_reason TEXT CHECK (abort_reason IS NULL OR abort_reason IN ('internal', 'external'))
7998
- )
7999
- `);
8000
- db.exec("CREATE INDEX IF NOT EXISTS idx_runtime_turn_leases_heartbeat ON runtime_turn_leases(heartbeat_at)");
7995
+ registerStorageSchemaInitializer((database) => {
7996
+ database.exec(`
7997
+ CREATE TABLE IF NOT EXISTS runtime_turn_leases (
7998
+ topic_id TEXT PRIMARY KEY,
7999
+ query_id TEXT NOT NULL UNIQUE,
8000
+ owner_id TEXT NOT NULL,
8001
+ origin TEXT NOT NULL,
8002
+ started_at INTEGER NOT NULL,
8003
+ heartbeat_at INTEGER NOT NULL,
8004
+ abort_requested INTEGER NOT NULL DEFAULT 0 CHECK (abort_requested IN (0, 1)),
8005
+ abort_reason TEXT CHECK (abort_reason IS NULL OR abort_reason IN ('internal', 'external'))
8006
+ );
8007
+ CREATE INDEX IF NOT EXISTS idx_runtime_turn_leases_heartbeat ON runtime_turn_leases(heartbeat_at);
8008
+ `);
8009
+ }, 33);
8001
8010
  });
8002
8011
 
8003
8012
  // ../../packages/core/src/query/room-query-registry.ts
@@ -9161,16 +9170,19 @@ var PROCESS_LEASE_STALE_MS = 5000, PROCESS_LEASE_HEARTBEAT_MS = 1000;
9161
9170
  var init_runtime_process_leases = __esm(async () => {
9162
9171
  await init_forum_db();
9163
9172
  await init_runtime_leases();
9164
- db.exec(`
9165
- CREATE TABLE IF NOT EXISTS runtime_process_leases (
9166
- role TEXT PRIMARY KEY,
9167
- owner_id TEXT NOT NULL UNIQUE,
9168
- pid INTEGER NOT NULL,
9169
- started_at INTEGER NOT NULL,
9170
- heartbeat_at INTEGER NOT NULL
9171
- )
9172
- `);
9173
- db.exec("CREATE INDEX IF NOT EXISTS idx_runtime_process_leases_heartbeat ON runtime_process_leases(heartbeat_at)");
9173
+ await init_storage_host();
9174
+ registerStorageSchemaInitializer((database) => {
9175
+ database.exec(`
9176
+ CREATE TABLE IF NOT EXISTS runtime_process_leases (
9177
+ role TEXT PRIMARY KEY,
9178
+ owner_id TEXT NOT NULL UNIQUE,
9179
+ pid INTEGER NOT NULL,
9180
+ started_at INTEGER NOT NULL,
9181
+ heartbeat_at INTEGER NOT NULL
9182
+ );
9183
+ CREATE INDEX IF NOT EXISTS idx_runtime_process_leases_heartbeat ON runtime_process_leases(heartbeat_at);
9184
+ `);
9185
+ }, 34);
9174
9186
  });
9175
9187
 
9176
9188
  // ../../packages/core/src/agents/mcp-tools/ask-user.ts
@@ -9473,7 +9485,7 @@ function createAskUserRuntime(host) {
9473
9485
  function cancelPendingAskUserQuestions(topicId, queryId) {
9474
9486
  defaultAskUserRuntime.cancelPendingQuestions(topicId, queryId);
9475
9487
  }
9476
- var MAX_QUESTION_CHARS = 2000, MAX_CHOICE_LABEL_CHARS = 128, MAX_CHOICE_DESCRIPTION_CHARS = 500, MAX_CHOICES = 12, MAX_IDEMPOTENCY_KEY_CHARS = 200, ASK_GATE_OWNER_ID, ASK_GATE_LEASE_ROLE_PREFIX = "ask-user-gate:", defaultAskUserRuntime;
9488
+ var MAX_QUESTION_CHARS = 2000, MAX_CHOICE_LABEL_CHARS = 128, MAX_CHOICE_DESCRIPTION_CHARS = 500, MAX_CHOICES = 12, MAX_IDEMPOTENCY_KEY_CHARS = 200, ASK_GATE_OWNER_ID, ASK_GATE_LEASE_ROLE_PREFIX = "ask-user-gate:", defaultAskUserDurabilityHost, defaultAskUserRuntime;
9477
9489
  var init_ask_user = __esm(async () => {
9478
9490
  init_common();
9479
9491
  await init_bus();
@@ -9483,6 +9495,21 @@ var init_ask_user = __esm(async () => {
9483
9495
  await init_ask_user_gates();
9484
9496
  await init_runtime_process_leases();
9485
9497
  ASK_GATE_OWNER_ID = `ask-user-${process.pid}-${randomUUID8()}`;
9498
+ defaultAskUserDurabilityHost = {
9499
+ gates: {
9500
+ prepare: prepareAskUserGate,
9501
+ claimAndSelect: claimAskUserGateAndSelect,
9502
+ cancel: cancelAskUserGate,
9503
+ quarantine: quarantineAskUserGate,
9504
+ quarantineForeign: quarantineForeignAskUserGates
9505
+ },
9506
+ processLeases: {
9507
+ acquire: (role, ownerId) => acquireRuntimeProcessLease(role, { ownerId }),
9508
+ list: listRuntimeProcessLeases,
9509
+ isAlive: isRuntimeProcessLeaseAlive,
9510
+ removeDead: removeDeadRuntimeProcessLeases
9511
+ }
9512
+ };
9486
9513
  defaultAskUserRuntime = createAskUserRuntime({
9487
9514
  messaging: {
9488
9515
  persistence: {
@@ -9501,21 +9528,7 @@ var init_ask_user = __esm(async () => {
9501
9528
  getTopic,
9502
9529
  getConfig: getApiTopicConfig
9503
9530
  },
9504
- durability: {
9505
- gates: {
9506
- prepare: prepareAskUserGate,
9507
- claimAndSelect: claimAskUserGateAndSelect,
9508
- cancel: cancelAskUserGate,
9509
- quarantine: quarantineAskUserGate,
9510
- quarantineForeign: quarantineForeignAskUserGates
9511
- },
9512
- processLeases: {
9513
- acquire: (role, ownerId) => acquireRuntimeProcessLease(role, { ownerId }),
9514
- list: listRuntimeProcessLeases,
9515
- isAlive: isRuntimeProcessLeaseAlive,
9516
- removeDead: removeDeadRuntimeProcessLeases
9517
- }
9518
- },
9531
+ durability: defaultAskUserDurabilityHost,
9519
9532
  runtime: {
9520
9533
  ownerId: ASK_GATE_OWNER_ID,
9521
9534
  createId: randomUUID8,
@@ -17087,4 +17100,4 @@ export {
17087
17100
  DEFAULT_SELF_CONFIG_PRODUCT
17088
17101
  };
17089
17102
 
17090
- //# debugId=0ECF421AEB8832A664756E2164756E21
17103
+ //# debugId=AD435CF2A586588764756E2164756E21