negotium 0.3.0 → 0.3.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/agent-helpers.js +107 -6
- package/dist/agent-helpers.js.map +11 -11
- package/dist/background-bash.js +3 -2
- package/dist/background-bash.js.map +4 -4
- package/dist/browser-runtime.js +3 -2
- package/dist/browser-runtime.js.map +4 -4
- package/dist/chunk-s2gez3wg.js.map +1 -1
- package/dist/{chunk-1y2xw0xe.js → chunk-vvfwqxnh.js} +33 -3
- package/dist/{chunk-1y2xw0xe.js.map → chunk-vvfwqxnh.js.map} +8 -8
- package/dist/hosted-agent.js +34 -4
- package/dist/hosted-agent.js.map +8 -8
- package/dist/main.js +1179 -366
- package/dist/main.js.map +24 -21
- package/dist/mcp-catalog.js +2 -1
- package/dist/mcp-catalog.js.map +3 -3
- package/dist/mcp-factories.js +635 -256
- package/dist/mcp-factories.js.map +15 -13
- package/dist/mcp-servers.js +3 -1
- package/dist/mcp-servers.js.map +3 -3
- package/dist/prompts.js +8 -2
- package/dist/prompts.js.map +5 -5
- package/dist/query-runtime.js +3 -2
- package/dist/query-runtime.js.map +4 -4
- package/dist/registry.js +3 -3
- package/dist/registry.js.map +2 -2
- package/dist/rollout.js +1 -1
- package/dist/runtime/src/mcp/canonical-bridge-config.ts +1 -1
- package/dist/runtime/src/mcp/canonical-proxy-server.ts +74 -1
- package/dist/runtime/src/mcp/decision-server.ts +21 -0
- package/dist/runtime/src/mcp/factories/decision.ts +178 -0
- package/dist/runtime/src/mcp/factories/index.ts +6 -0
- package/dist/runtime/src/mcp/runtime-spec.ts +1 -0
- package/dist/runtime/src/node-host.ts +1 -0
- package/dist/runtime/src/platform/config.ts +2 -1
- package/dist/runtime/src/platform/mcp-catalog-policy.ts +1 -0
- package/dist/runtime/src/platform/mcp-config.ts +31 -1
- package/dist/runtime/src/prompts/builders.ts +5 -0
- package/dist/runtime/src/runtime/visual-html.ts +68 -2
- package/dist/runtime/src/storage/decisions.ts +231 -0
- package/dist/runtime/src/storage/storage-public.ts +2 -0
- package/dist/runtime/src/types.ts +13 -0
- package/dist/runtime/src/version.ts +1 -1
- package/dist/runtime-helpers.js +71 -4
- package/dist/runtime-helpers.js.map +5 -5
- package/dist/storage.js +261 -56
- package/dist/storage.js.map +5 -4
- package/dist/types/apps/negotium/src/mcp-servers.d.ts +1 -1
- package/dist/types/packages/core/src/mcp/canonical-bridge-config.d.ts +1 -1
- package/dist/types/packages/core/src/mcp/factories/decision.d.ts +16 -0
- package/dist/types/packages/core/src/mcp/factories/index.d.ts +1 -0
- package/dist/types/packages/core/src/mcp/runtime-spec.d.ts +1 -1
- package/dist/types/packages/core/src/platform/config.d.ts +2 -1
- package/dist/types/packages/core/src/platform/mcp-catalog-policy.d.ts +4 -0
- package/dist/types/packages/core/src/storage/decisions.d.ts +45 -0
- package/dist/types/packages/core/src/storage/storage-public.d.ts +2 -0
- package/dist/types/packages/core/src/types.d.ts +12 -0
- package/dist/types/packages/core/src/version.d.ts +1 -1
- package/dist/vault.js +3 -2
- package/dist/vault.js.map +4 -4
- package/install-browser-rs.mjs +3 -3
- package/package.json +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../packages/core/src/mcp/canonical-bridge-config.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { PeerRuntimeBridgeContext } from \"#types\";\n\nexport type CanonicalMcpSurface = \"task\" | \"wiki\";\n\nexport interface CanonicalMcpBridgeScope {\n surface: CanonicalMcpSurface;\n userId: string;\n topicId: string;\n queryId: string;\n peerBridge: PeerRuntimeBridgeContext;\n}\n\nexport interface CanonicalMcpBridgeEnvLease {\n env: Record<string, string>;\n /** Revoke the capability immediately. Must be safe to call more than once. */\n revoke(): void;\n}\n\nexport type CanonicalMcpBridgeEnvProvider = (\n scope: CanonicalMcpBridgeScope,\n) => CanonicalMcpBridgeEnvLease | undefined;\n\nconst registrations: Array<{ id: symbol; provider: CanonicalMcpBridgeEnvProvider }> = [];\nconst turnLeases = new Map<string, Set<() => void>>();\n\nfunction turnKey(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): string {\n return JSON.stringify([\n scope.userId,\n scope.topicId,\n scope.queryId,\n scope.peerBridge.hubCellId,\n scope.peerBridge.hostTopicId,\n scope.peerBridge.hostQueryId,\n ]);\n}\n\n/** Placement adapters install a scoped capability issuer without exposing\n * their hub discovery or authentication model to generic core. */\nexport function registerCanonicalMcpBridgeEnvProvider(\n provider: CanonicalMcpBridgeEnvProvider,\n): () => void {\n const registration = { id: Symbol(\"canonical-mcp-bridge\"), provider };\n registrations.push(registration);\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n const index = registrations.findIndex((entry) => entry.id === registration.id);\n if (index >= 0) registrations.splice(index, 1);\n };\n}\n\nexport function canonicalMcpBridgeEnv(\n scope: CanonicalMcpBridgeScope,\n): Record<string, string> | undefined {\n const lease = registrations.at(-1)?.provider(scope);\n if (!lease) return undefined;\n const key = turnKey(scope);\n const leases = turnLeases.get(key) ?? new Set<() => void>();\n leases.add(lease.revoke);\n turnLeases.set(key, leases);\n return lease.env;\n}\n\n/** Revoke every canonical MCP capability issued while building one placed turn. */\nexport function revokeCanonicalMcpBridgeTurn(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): number {\n const key = turnKey(scope);\n const leases = turnLeases.get(key);\n if (!leases) return 0;\n turnLeases.delete(key);\n for (const revoke of leases) {\n try {\n revoke();\n } catch {\n // Revocation is best-effort across independently owned bridge adapters;\n // continue so one broken disposer cannot preserve sibling capabilities.\n }\n }\n return leases.size;\n}\n"
|
|
5
|
+
"import type { PeerRuntimeBridgeContext } from \"#types\";\n\nexport type CanonicalMcpSurface = \"task\" | \"decision\" | \"wiki\";\n\nexport interface CanonicalMcpBridgeScope {\n surface: CanonicalMcpSurface;\n userId: string;\n topicId: string;\n queryId: string;\n peerBridge: PeerRuntimeBridgeContext;\n}\n\nexport interface CanonicalMcpBridgeEnvLease {\n env: Record<string, string>;\n /** Revoke the capability immediately. Must be safe to call more than once. */\n revoke(): void;\n}\n\nexport type CanonicalMcpBridgeEnvProvider = (\n scope: CanonicalMcpBridgeScope,\n) => CanonicalMcpBridgeEnvLease | undefined;\n\nconst registrations: Array<{ id: symbol; provider: CanonicalMcpBridgeEnvProvider }> = [];\nconst turnLeases = new Map<string, Set<() => void>>();\n\nfunction turnKey(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): string {\n return JSON.stringify([\n scope.userId,\n scope.topicId,\n scope.queryId,\n scope.peerBridge.hubCellId,\n scope.peerBridge.hostTopicId,\n scope.peerBridge.hostQueryId,\n ]);\n}\n\n/** Placement adapters install a scoped capability issuer without exposing\n * their hub discovery or authentication model to generic core. */\nexport function registerCanonicalMcpBridgeEnvProvider(\n provider: CanonicalMcpBridgeEnvProvider,\n): () => void {\n const registration = { id: Symbol(\"canonical-mcp-bridge\"), provider };\n registrations.push(registration);\n let disposed = false;\n return () => {\n if (disposed) return;\n disposed = true;\n const index = registrations.findIndex((entry) => entry.id === registration.id);\n if (index >= 0) registrations.splice(index, 1);\n };\n}\n\nexport function canonicalMcpBridgeEnv(\n scope: CanonicalMcpBridgeScope,\n): Record<string, string> | undefined {\n const lease = registrations.at(-1)?.provider(scope);\n if (!lease) return undefined;\n const key = turnKey(scope);\n const leases = turnLeases.get(key) ?? new Set<() => void>();\n leases.add(lease.revoke);\n turnLeases.set(key, leases);\n return lease.env;\n}\n\n/** Revoke every canonical MCP capability issued while building one placed turn. */\nexport function revokeCanonicalMcpBridgeTurn(\n scope: Pick<CanonicalMcpBridgeScope, \"userId\" | \"topicId\" | \"queryId\" | \"peerBridge\">,\n): number {\n const key = turnKey(scope);\n const leases = turnLeases.get(key);\n if (!leases) return 0;\n turnLeases.delete(key);\n for (const revoke of leases) {\n try {\n revoke();\n } catch {\n // Revocation is best-effort across independently owned bridge adapters;\n // continue so one broken disposer cannot preserve sibling capabilities.\n }\n }\n return leases.size;\n}\n"
|
|
6
6
|
],
|
|
7
7
|
"mappings": ";;;;;;;;;;;;;;;;;;;AAsBA,IAAM,gBAAgF,CAAC;AACvF,IAAM,aAAa,IAAI;AAEvB,SAAS,OAAO,CACd,OACQ;AAAA,EACR,OAAO,KAAK,UAAU;AAAA,IACpB,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM,WAAW;AAAA,IACjB,MAAM,WAAW;AAAA,IACjB,MAAM,WAAW;AAAA,EACnB,CAAC;AAAA;AAKI,SAAS,qCAAqC,CACnD,UACY;AAAA,EACZ,MAAM,eAAe,EAAE,IAAI,OAAO,sBAAsB,GAAG,SAAS;AAAA,EACpE,cAAc,KAAK,YAAY;AAAA,EAC/B,IAAI,WAAW;AAAA,EACf,OAAO,MAAM;AAAA,IACX,IAAI;AAAA,MAAU;AAAA,IACd,WAAW;AAAA,IACX,MAAM,QAAQ,cAAc,UAAU,CAAC,UAAU,MAAM,OAAO,aAAa,EAAE;AAAA,IAC7E,IAAI,SAAS;AAAA,MAAG,cAAc,OAAO,OAAO,CAAC;AAAA;AAAA;AAI1C,SAAS,qBAAqB,CACnC,OACoC;AAAA,EACpC,MAAM,QAAQ,cAAc,GAAG,EAAE,GAAG,SAAS,KAAK;AAAA,EAClD,KAAK;AAAA,IAAO;AAAA,EACZ,MAAM,MAAM,QAAQ,KAAK;AAAA,EACzB,MAAM,SAAS,WAAW,IAAI,GAAG,KAAK,IAAI;AAAA,EAC1C,OAAO,IAAI,MAAM,MAAM;AAAA,EACvB,WAAW,IAAI,KAAK,MAAM;AAAA,EAC1B,OAAO,MAAM;AAAA;AAIR,SAAS,4BAA4B,CAC1C,OACQ;AAAA,EACR,MAAM,MAAM,QAAQ,KAAK;AAAA,EACzB,MAAM,SAAS,WAAW,IAAI,GAAG;AAAA,EACjC,KAAK;AAAA,IAAQ,OAAO;AAAA,EACpB,WAAW,OAAO,GAAG;AAAA,EACrB,WAAW,UAAU,QAAQ;AAAA,IAC3B,IAAI;AAAA,MACF,OAAO;AAAA,MACP,MAAM;AAAA,EAIV;AAAA,EACA,OAAO,OAAO;AAAA;",
|
|
8
8
|
"debugId": "FF9F7F9A872D7FA764756E2164756E21",
|
|
@@ -132,7 +132,7 @@ var DM_WORKSPACE_DIR = resolve(STATE_DIR, "data", "dm");
|
|
|
132
132
|
var SESSION_WORKSPACE_DIR = resolve(STATE_DIR, "data", "sessions");
|
|
133
133
|
var CLAUDE_EXECUTABLE_ENV = envText("NEGOTIUM_CLAUDE_EXECUTABLE");
|
|
134
134
|
var CLAUDE_EXECUTABLE = CLAUDE_EXECUTABLE_ENV ? resolve(CLAUDE_EXECUTABLE_ENV) : undefined;
|
|
135
|
-
var BROWSER_RS_VERSION = "v0.1.
|
|
135
|
+
var BROWSER_RS_VERSION = "v0.1.21";
|
|
136
136
|
var BROWSER_RS_MIN_SECURE_VERSION = "0.1.15";
|
|
137
137
|
function versionAtLeast(actualVersion, minimumVersion) {
|
|
138
138
|
const actual = actualVersion.split(".").map(Number);
|
|
@@ -202,6 +202,7 @@ var TSX_LOADER = createRequire(import.meta.url).resolve("tsx");
|
|
|
202
202
|
var TSCONFIG_PATH = resolve(PROJECT_ROOT, "tsconfig.json");
|
|
203
203
|
var SESSION_COMM_SERVER = resolve(PROJECT_ROOT, "src/mcp/session-comm/server.ts");
|
|
204
204
|
var TASK_SERVER = resolve(PROJECT_ROOT, "src/mcp/task-server.ts");
|
|
205
|
+
var DECISION_SERVER = resolve(PROJECT_ROOT, "src/mcp/decision-server.ts");
|
|
205
206
|
var BROWSER_MCP_SSE_PROXY_SERVER = resolve(PROJECT_ROOT, "src/mcp/browser-sse-proxy-server.ts");
|
|
206
207
|
var CANONICAL_MCP_PROXY_SERVER = resolve(PROJECT_ROOT, "src/mcp/canonical-proxy-server.ts");
|
|
207
208
|
var WIKI_SERVER = resolve(PROJECT_ROOT, "src/mcp/wiki-server.ts");
|
|
@@ -1208,6 +1209,7 @@ var COMMON_RUNTIME_MCP_POLICY = {
|
|
|
1208
1209
|
runtime: { scopes: ["forum", "manager", "fork", "cron"], forumRequired: true },
|
|
1209
1210
|
"token-stats": { scopes: ["dm", "forum", "manager", "cron"], forumRequired: true },
|
|
1210
1211
|
task: { scopes: ["dm", "forum", "manager", "cron"], forumRequired: true },
|
|
1212
|
+
decision: { scopes: ["dm", "forum", "manager", "cron"], forumRequired: true },
|
|
1211
1213
|
"session-comm": { scopes: ["forum", "fork", "manager"], forumRequired: true },
|
|
1212
1214
|
wiki: { scopes: ["dm", "forum", "manager", "cron"], forumRequired: true },
|
|
1213
1215
|
skills: { scopes: ["dm", "forum", "manager", "cron"], forumRequired: true },
|
|
@@ -1420,6 +1422,34 @@ var MCP_CATALOG = {
|
|
|
1420
1422
|
return buildBuiltinMcpServer("task", ctx, () => buildStdioMcpServer(agent, TASK_SERVER, args));
|
|
1421
1423
|
}
|
|
1422
1424
|
},
|
|
1425
|
+
decision: {
|
|
1426
|
+
...commonRuntimeMcpPolicy("decision"),
|
|
1427
|
+
build(ctx) {
|
|
1428
|
+
const { userId, session, topicId, queryId, agent, model, peerBridge } = ctx;
|
|
1429
|
+
if (peerBridge) {
|
|
1430
|
+
if (!topicId || !queryId)
|
|
1431
|
+
return null;
|
|
1432
|
+
const env = canonicalMcpBridgeEnv({
|
|
1433
|
+
surface: "decision",
|
|
1434
|
+
userId,
|
|
1435
|
+
topicId,
|
|
1436
|
+
queryId,
|
|
1437
|
+
peerBridge
|
|
1438
|
+
});
|
|
1439
|
+
return env ? buildStdioMcpServer(agent, CANONICAL_MCP_PROXY_SERVER, ["--surface=decision"], env) : null;
|
|
1440
|
+
}
|
|
1441
|
+
const args = [
|
|
1442
|
+
`--user-id=${userId}`,
|
|
1443
|
+
`--topic=${session}`,
|
|
1444
|
+
`--agent=${agent ?? FALLBACK_AGENT}`
|
|
1445
|
+
];
|
|
1446
|
+
if (topicId)
|
|
1447
|
+
args.push(`--topic-id=${topicId}`);
|
|
1448
|
+
if (model)
|
|
1449
|
+
args.push(`--model=${model}`);
|
|
1450
|
+
return buildBuiltinMcpServer("decision", ctx, () => buildStdioMcpServer(agent, DECISION_SERVER, args));
|
|
1451
|
+
}
|
|
1452
|
+
},
|
|
1423
1453
|
"session-comm": {
|
|
1424
1454
|
...commonRuntimeMcpPolicy("session-comm"),
|
|
1425
1455
|
build(ctx) {
|
|
@@ -1615,7 +1645,7 @@ function getForumMcpServers(opts) {
|
|
|
1615
1645
|
peerBridge
|
|
1616
1646
|
} = opts;
|
|
1617
1647
|
const filter = (name) => {
|
|
1618
|
-
if (silent && name === "task")
|
|
1648
|
+
if (silent && (name === "task" || name === "decision"))
|
|
1619
1649
|
return false;
|
|
1620
1650
|
if (enabled === null)
|
|
1621
1651
|
return true;
|
|
@@ -2629,4 +2659,4 @@ function formatDateBucket(d) {
|
|
|
2629
2659
|
|
|
2630
2660
|
export { __toESM, __require, logger, CLAUDE_EFFORT_VALUES, CODEX_EFFORT_VALUES, MAESTRO_EFFORT_VALUES, MODEL_SONNET, MODEL_OPUS, MODEL_FABLE, configureRolloutHost, assertUuidLike, ensureCwdExists, extractChatPairs, encodeClaudeCwd, writeClaudeRollout, repairPoisonedRollout, hostedCodexHomePath, extractLatestCodexPatchPreview, extractCodexPatchCallIds, readCodexPatchCallIds, readLatestCodexPatchPreview, extractLatestCodexContextUsage, readLatestCodexContextUsage, migrateCodexRolloutNativeMultiAgentMetadata, latestCodexRolloutPath, writeCodexRollout, decodeUuidV7Timestamp };
|
|
2631
2661
|
|
|
2632
|
-
//# debugId=
|
|
2662
|
+
//# debugId=CF222B23DE52DB4364756E2164756E21
|