negotium 0.1.49 → 0.2.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 (50) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-helpers.js +58 -74
  3. package/dist/agent-helpers.js.map +15 -15
  4. package/dist/background-bash.js +22 -10
  5. package/dist/background-bash.js.map +3 -3
  6. package/dist/browser-runtime.js +35 -68
  7. package/dist/browser-runtime.js.map +7 -7
  8. package/dist/{chunk-5rpw9d1f.js → chunk-kc5kmr95.js} +28 -11
  9. package/dist/{chunk-5rpw9d1f.js.map → chunk-kc5kmr95.js.map} +4 -4
  10. package/dist/hosted-agent.js +36 -18
  11. package/dist/hosted-agent.js.map +7 -7
  12. package/dist/main.js +562 -98
  13. package/dist/main.js.map +21 -19
  14. package/dist/mcp-factories.js +62 -78
  15. package/dist/mcp-factories.js.map +16 -16
  16. package/dist/prompts.js +22 -10
  17. package/dist/prompts.js.map +3 -3
  18. package/dist/query-runtime.js +22 -10
  19. package/dist/query-runtime.js.map +4 -4
  20. package/dist/registry.js +5 -12
  21. package/dist/registry.js.map +5 -5
  22. package/dist/rollout.js +1 -1
  23. package/dist/runtime/src/agents/maestro-registry.ts +1 -1
  24. package/dist/runtime/src/agents/rollout/shared.ts +12 -4
  25. package/dist/runtime/src/mcp/mcp-helpers.ts +1 -1
  26. package/dist/runtime/src/mcp/wiki-server.ts +1 -1
  27. package/dist/runtime/src/migration/single-user.ts +621 -0
  28. package/dist/runtime/src/platform/config.ts +24 -11
  29. package/dist/runtime/src/platform/mcp-config.ts +4 -4
  30. package/dist/runtime/src/platform/playwright/manager.ts +10 -28
  31. package/dist/runtime/src/runtime/attachments.ts +3 -3
  32. package/dist/runtime/src/storage/browser-profiles.ts +11 -9
  33. package/dist/runtime/src/storage/conversations.ts +5 -18
  34. package/dist/runtime/src/storage/storage-host.ts +1 -1
  35. package/dist/runtime/src/storage/tasks.ts +2 -14
  36. package/dist/runtime/src/storage/vault.ts +3 -2
  37. package/dist/runtime/src/version.ts +1 -1
  38. package/dist/runtime-helpers.js +22 -10
  39. package/dist/runtime-helpers.js.map +5 -5
  40. package/dist/storage.js +5 -19
  41. package/dist/storage.js.map +5 -5
  42. package/dist/types/packages/core/src/mcp/mcp-helpers.d.ts +1 -1
  43. package/dist/types/packages/core/src/platform/config.d.ts +9 -1
  44. package/dist/types/packages/core/src/runtime/attachments.d.ts +1 -1
  45. package/dist/types/packages/core/src/storage/conversations.d.ts +2 -2
  46. package/dist/types/packages/core/src/version.d.ts +1 -1
  47. package/dist/vault.js +25 -12
  48. package/dist/vault.js.map +4 -4
  49. package/install-browser-rs.mjs +1 -1
  50. package/package.json +2 -2
@@ -115,10 +115,14 @@ function parsePortEnv(envValue, fallback) {
115
115
  var WORKSPACE_DIR = resolveLocalStateDir("NEGOTIUM_WORKSPACE_DIR", "workspace");
116
116
  var TOPIC_WORKSPACE_DIR = resolve(WORKSPACE_DIR, "topics");
117
117
  var SHARED_WIKI_DIR = resolve(WORKSPACE_DIR, "wiki");
118
- var CONTEXTS_DIR = resolve(WORKSPACE_DIR, "contexts");
119
- var BROWSER_PROFILES_DIR = resolve(WORKSPACE_DIR, "browser-profiles");
120
- var DM_WORKSPACE_DIR = resolve(WORKSPACE_DIR, "dm");
121
- var SESSION_WORKSPACE_DIR = resolve(WORKSPACE_DIR, "sessions");
118
+ var CRON_WORKSPACE_DIR = resolve(WORKSPACE_DIR, "cron");
119
+ var BROWSER_DIR = resolveLocalStateDir("NEGOTIUM_BROWSER_DIR", "browser");
120
+ var BROWSER_PROFILES_DIR = resolve(BROWSER_DIR, "profiles");
121
+ var BINARIES_DIR = resolve(STATE_DIR, "binaries");
122
+ var SECRETS_DIR = resolve(STATE_DIR, "secrets");
123
+ var CONTEXTS_DIR = resolve(STATE_DIR, "data", "contexts");
124
+ var DM_WORKSPACE_DIR = resolve(STATE_DIR, "data", "dm");
125
+ var SESSION_WORKSPACE_DIR = resolve(STATE_DIR, "data", "sessions");
122
126
  var CLAUDE_EXECUTABLE_ENV = envText("NEGOTIUM_CLAUDE_EXECUTABLE");
123
127
  var CLAUDE_EXECUTABLE = CLAUDE_EXECUTABLE_ENV ? resolve(CLAUDE_EXECUTABLE_ENV) : undefined;
124
128
  var BROWSER_RS_VERSION = "v0.1.16";
@@ -156,7 +160,7 @@ function resolveBrowserRsBin(envValue) {
156
160
  if (!override && !versionAtLeast(BROWSER_RS_VERSION.replace(/^v/, ""), BROWSER_RS_MIN_SECURE_VERSION)) {
157
161
  return;
158
162
  }
159
- const candidate = override ? resolve(override) : resolve(STATE_DIR, "bin", "browser-rs", BROWSER_RS_VERSION, "browser-rs");
163
+ const candidate = override ? resolve(override) : resolve(BINARIES_DIR, "browser-rs", BROWSER_RS_VERSION, "browser-rs");
160
164
  try {
161
165
  accessSync(candidate, constants.X_OK);
162
166
  return browserRsMeetsMinimumVersion(candidate) ? candidate : undefined;
@@ -169,7 +173,7 @@ function resolveBrowserMcpBin(envValue) {
169
173
  const override = envValue?.trim();
170
174
  if (override)
171
175
  return resolve(override);
172
- return BROWSER_RS_BIN ?? resolve(STATE_DIR, "bin", "browser-rs", BROWSER_RS_VERSION, "browser-rs");
176
+ return BROWSER_RS_BIN ?? resolve(BINARIES_DIR, "browser-rs", BROWSER_RS_VERSION, "browser-rs");
173
177
  }
174
178
  var PLAYWRIGHT_MCP_BIN = resolveBrowserMcpBin(envText("NEGOTIUM_BROWSER_MCP_BIN"));
175
179
  var TSX_BIN = resolveDependencyBin("tsx");
@@ -196,7 +200,7 @@ function resolveTopicWorkspaceDir(topicId) {
196
200
  }
197
201
  function loadOrCreateLocalSecret(envKey, filename, options = {}) {
198
202
  const envValue = envText(envKey);
199
- const secretFile = resolve(STATE_DIR, filename);
203
+ const secretFile = resolve(SECRETS_DIR, filename);
200
204
  mkdirSync(dirname(secretFile), { recursive: true });
201
205
  if (envValue) {
202
206
  if (options.persistEnvValue) {
@@ -236,10 +240,12 @@ var NEGOTIUM_PORT = parseInt(process.env.NEGOTIUM_PORT || "7777", 10);
236
240
  var hostname = process.env.HOSTNAME || "127.0.0.1";
237
241
  var DATA_DIR = resolveLocalStateDir("NEGOTIUM_DATA_DIR", "data");
238
242
  var LOG_DIR = resolveLocalStateDir("NEGOTIUM_LOG_DIR", "logs");
243
+ var UPLOADS_DIR = resolve(DATA_DIR, "uploads");
244
+ var VAULT_DIR = resolve(DATA_DIR, "vault");
239
245
  var SESSIONS_DB = process.env.SESSIONS_DB_PATH ? resolve(process.env.SESSIONS_DB_PATH) : resolve(DATA_DIR, "sessions.db");
240
246
  var DEBUG_FILE = resolve(DATA_DIR, "debug-users.json");
241
247
  var USERS_LOG_DIR = resolve(DATA_DIR, "users");
242
- var RUN_DIR = resolveLocalStateDir("NEGOTIUM_RUN_DIR", "run");
248
+ var RUN_DIR = resolveLocalStateDir("NEGOTIUM_RUN_DIR", "runtime");
243
249
  var PROGRESS_DIR = resolve(RUN_DIR, "progress");
244
250
  var DM_CMD_DIR = resolve(RUN_DIR, "dm-commands");
245
251
  var DM_RESP_DIR = resolve(RUN_DIR, "dm-responses");
@@ -250,6 +256,8 @@ var PLAYWRIGHT_MAX_PORT = parsePortEnv(process.env.PLAYWRIGHT_MAX_PORT, 9499);
250
256
  var PLAYWRIGHT_PORTS_DIR = resolve(RUN_DIR, "playwright-ports");
251
257
  mkdirSync(STATE_DIR, { recursive: true });
252
258
  mkdirSync(DATA_DIR, { recursive: true });
259
+ mkdirSync(UPLOADS_DIR, { recursive: true });
260
+ mkdirSync(VAULT_DIR, { recursive: true, mode: 448 });
253
261
  mkdirSync(LOG_DIR, { recursive: true });
254
262
  mkdirSync(PROGRESS_DIR, { recursive: true });
255
263
  mkdirSync(DM_CMD_DIR, { recursive: true });
@@ -260,10 +268,14 @@ mkdirSync(PLAYWRIGHT_PORTS_DIR, { recursive: true });
260
268
  mkdirSync(WORKSPACE_DIR, { recursive: true });
261
269
  mkdirSync(TOPIC_WORKSPACE_DIR, { recursive: true });
262
270
  mkdirSync(SHARED_WIKI_DIR, { recursive: true });
271
+ mkdirSync(CRON_WORKSPACE_DIR, { recursive: true });
263
272
  mkdirSync(CONTEXTS_DIR, { recursive: true });
264
- mkdirSync(BROWSER_PROFILES_DIR, { recursive: true });
265
273
  mkdirSync(DM_WORKSPACE_DIR, { recursive: true });
266
274
  mkdirSync(SESSION_WORKSPACE_DIR, { recursive: true });
275
+ mkdirSync(BROWSER_DIR, { recursive: true });
276
+ mkdirSync(BROWSER_PROFILES_DIR, { recursive: true });
277
+ mkdirSync(BINARIES_DIR, { recursive: true });
278
+ mkdirSync(SECRETS_DIR, { recursive: true, mode: 448 });
267
279
  var ACTIVE_QUERY_STALE_MS = 10 * 60 * 1000;
268
280
  var AGENTS_PROMPTS_DIR = resolve(PROJECT_ROOT, "src/prompts/agents");
269
281
  var RESOURCES_DIR = resolve(PROJECT_ROOT, "src/resources");
@@ -295,7 +307,12 @@ function codexAuthFilePath() {
295
307
 
296
308
  // ../../packages/core/src/agents/rollout/shared.ts
297
309
  var __dirname2 = dirname2(fileURLToPath2(import.meta.url));
298
- var trustedWorkspaceRoots = [WORKSPACE_DIR, DM_WORKSPACE_DIR, TOPIC_WORKSPACE_DIR].map((root) => resolve2(root));
310
+ var trustedWorkspaceRoots = [
311
+ WORKSPACE_DIR,
312
+ DM_WORKSPACE_DIR,
313
+ SESSION_WORKSPACE_DIR,
314
+ TOPIC_WORKSPACE_DIR
315
+ ].map((root) => resolve2(root));
299
316
  var FIXTURES_DIR = join2(__dirname2, "..", "fixtures");
300
317
 
301
318
  // ../../packages/core/src/platform/jsonl.ts
@@ -1232,7 +1249,7 @@ function getMcpServersForQuery(opts) {
1232
1249
  if (!opts.topicId)
1233
1250
  throw new Error("getMcpServersForQuery: cron sessionType requires topicId");
1234
1251
  return getCronMcpServers({
1235
- userId: opts.userId || "default",
1252
+ userId: opts.userId || "local",
1236
1253
  session: opts.session || "cron",
1237
1254
  topicId: opts.topicId,
1238
1255
  queryId: opts.queryId,
@@ -1249,7 +1266,7 @@ function getMcpServersForQuery(opts) {
1249
1266
  }
1250
1267
  if (opts.sessionType === "dm" || opts.sessionType === "ephemeral") {
1251
1268
  return getDmMcpServers({
1252
- userId: opts.userId || "default",
1269
+ userId: opts.userId || "local",
1253
1270
  agent: opts.agent,
1254
1271
  playwrightPort: opts.playwrightPort,
1255
1272
  playwrightCapability: opts.playwrightCapability
@@ -1257,7 +1274,7 @@ function getMcpServersForQuery(opts) {
1257
1274
  }
1258
1275
  if (opts.sessionType === "manager") {
1259
1276
  return getManagerMcpServers({
1260
- userId: opts.userId || "default",
1277
+ userId: opts.userId || "local",
1261
1278
  session: opts.session,
1262
1279
  topicId: opts.topicId,
1263
1280
  queryId: opts.queryId,
@@ -1274,7 +1291,7 @@ function getMcpServersForQuery(opts) {
1274
1291
  });
1275
1292
  }
1276
1293
  return getForumMcpServers({
1277
- userId: opts.userId || "default",
1294
+ userId: opts.userId || "local",
1278
1295
  session: opts.session || "default",
1279
1296
  topicId: opts.topicId,
1280
1297
  subagentParentTopicId: opts.subagentParentTopicId,
@@ -1434,8 +1451,9 @@ function initializeVaultDatabase(database) {
1434
1451
  }
1435
1452
  }
1436
1453
  function openVaultDatabase(dataDir) {
1437
- const path = join3(dataDir, "vault.db");
1438
- mkdirSync3(dataDir, { recursive: true });
1454
+ const vaultDir = join3(dataDir, "vault");
1455
+ const path = join3(vaultDir, "vault.db");
1456
+ mkdirSync3(vaultDir, { recursive: true, mode: 448 });
1439
1457
  const database = new Database(path, { create: true });
1440
1458
  chmodSync2(path, 384);
1441
1459
  initializeVaultDatabase(database);
@@ -2116,7 +2134,7 @@ import { tmpdir } from "os";
2116
2134
  import { dirname as dirname4, join as join4 } from "path";
2117
2135
 
2118
2136
  // ../../packages/core/src/version.ts
2119
- var NEGOTIUM_VERSION = "0.1.49";
2137
+ var NEGOTIUM_VERSION = "0.2.0";
2120
2138
 
2121
2139
  // ../../packages/core/src/agents/codex-native-multi-agent.ts
2122
2140
  var moduleRequire = createRequire2(import.meta.url);
@@ -3744,4 +3762,4 @@ export {
3744
3762
  buildClaudeDisallowedTools
3745
3763
  };
3746
3764
 
3747
- //# debugId=91493C665ED6215F64756E2164756E21
3765
+ //# debugId=C72D28B2A613B1BE64756E2164756E21