negotium 0.5.3 → 0.5.5
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 +33 -27
- package/dist/agent-helpers.js.map +6 -5
- package/dist/browser-runtime.js +28 -2
- package/dist/browser-runtime.js.map +4 -3
- package/dist/{chunk-9wvrzxfz.js → chunk-n9g0wk3p.js} +27 -26
- package/dist/{chunk-9wvrzxfz.js.map → chunk-n9g0wk3p.js.map} +5 -4
- package/dist/hosted-agent.js +28 -27
- package/dist/hosted-agent.js.map +6 -5
- package/dist/main.js +59 -28
- package/dist/main.js.map +8 -7
- package/dist/mcp-factories.js +33 -27
- package/dist/mcp-factories.js.map +6 -5
- package/dist/registry.js +3 -3
- package/dist/registry.js.map +2 -2
- package/dist/rollout.js +1 -1
- package/dist/runtime/src/platform/mcp-config.ts +6 -28
- package/dist/runtime/src/platform/playwright/mcp-transport.ts +35 -0
- package/dist/runtime/src/platform/playwright/public-runtime.ts +1 -0
- package/dist/runtime/src/prompts/sessions/_shared-tools.md +1 -0
- package/dist/runtime/src/version.ts +1 -1
- package/dist/types/packages/core/src/platform/mcp-config.d.ts +2 -2
- package/dist/types/packages/core/src/platform/playwright/mcp-transport.d.ts +4 -0
- package/dist/types/packages/core/src/platform/playwright/public-runtime.d.ts +1 -0
- package/dist/types/packages/core/src/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -1874,7 +1874,7 @@ var exports_version = {};
|
|
|
1874
1874
|
__export(exports_version, {
|
|
1875
1875
|
NEGOTIUM_VERSION: () => NEGOTIUM_VERSION
|
|
1876
1876
|
});
|
|
1877
|
-
var NEGOTIUM_VERSION = "0.5.
|
|
1877
|
+
var NEGOTIUM_VERSION = "0.5.5";
|
|
1878
1878
|
|
|
1879
1879
|
// ../../packages/core/src/agents/codex-native-multi-agent.ts
|
|
1880
1880
|
import { spawn } from "child_process";
|
|
@@ -2671,6 +2671,34 @@ function browserOwnerCapability(capability, owner) {
|
|
|
2671
2671
|
}
|
|
2672
2672
|
var init_capability = () => {};
|
|
2673
2673
|
|
|
2674
|
+
// ../../packages/core/src/platform/playwright/mcp-transport.ts
|
|
2675
|
+
function buildPlaywrightMcpTransport(port, owner, capability, agent) {
|
|
2676
|
+
const query = new URLSearchParams({ owner });
|
|
2677
|
+
const ownerCapability = browserOwnerCapability(capability, owner);
|
|
2678
|
+
if (agent === "codex") {
|
|
2679
|
+
return {
|
|
2680
|
+
url: `http://127.0.0.1:${port}/mcp?${query}`,
|
|
2681
|
+
env_http_headers: { "X-Browser-Capability": CODEX_BROWSER_CAPABILITY_ENV }
|
|
2682
|
+
};
|
|
2683
|
+
}
|
|
2684
|
+
if (agent === "maestro") {
|
|
2685
|
+
return {
|
|
2686
|
+
type: "http",
|
|
2687
|
+
url: `http://127.0.0.1:${port}/mcp?${query}`,
|
|
2688
|
+
headers: { "X-Browser-Capability": ownerCapability }
|
|
2689
|
+
};
|
|
2690
|
+
}
|
|
2691
|
+
return {
|
|
2692
|
+
type: "sse",
|
|
2693
|
+
url: `http://127.0.0.1:${port}/sse?${query}`,
|
|
2694
|
+
headers: { "X-Browser-Capability": ownerCapability }
|
|
2695
|
+
};
|
|
2696
|
+
}
|
|
2697
|
+
var CODEX_BROWSER_CAPABILITY_ENV = "NEGOTIUM_BROWSER_CAPABILITY";
|
|
2698
|
+
var init_mcp_transport = __esm(() => {
|
|
2699
|
+
init_capability();
|
|
2700
|
+
});
|
|
2701
|
+
|
|
2674
2702
|
// ../../packages/core/src/platform/mcp-config.ts
|
|
2675
2703
|
import { accessSync as accessSync2, constants as fsConstants } from "fs";
|
|
2676
2704
|
import { homedir as homedir6 } from "os";
|
|
@@ -2750,29 +2778,6 @@ function browserOwnerForContext(ctx) {
|
|
|
2750
2778
|
return `user:${ctx.userId}:${ctx.session}`;
|
|
2751
2779
|
return;
|
|
2752
2780
|
}
|
|
2753
|
-
function playwrightTransport(port, owner, capability, agent) {
|
|
2754
|
-
const ownerCapability = browserOwnerCapability(capability, owner);
|
|
2755
|
-
if (agent === "codex") {
|
|
2756
|
-
const query2 = new URLSearchParams({ owner });
|
|
2757
|
-
return {
|
|
2758
|
-
url: `http://127.0.0.1:${port}/mcp?${query2}`,
|
|
2759
|
-
env_http_headers: { "X-Browser-Capability": CODEX_BROWSER_CAPABILITY_ENV }
|
|
2760
|
-
};
|
|
2761
|
-
}
|
|
2762
|
-
const query = new URLSearchParams({ owner });
|
|
2763
|
-
if (agent === "maestro") {
|
|
2764
|
-
return {
|
|
2765
|
-
type: "http",
|
|
2766
|
-
url: `http://127.0.0.1:${port}/mcp?${query}`,
|
|
2767
|
-
headers: { "X-Browser-Capability": ownerCapability }
|
|
2768
|
-
};
|
|
2769
|
-
}
|
|
2770
|
-
return {
|
|
2771
|
-
type: "sse",
|
|
2772
|
-
url: `http://127.0.0.1:${port}/sse?${query}`,
|
|
2773
|
-
headers: { "X-Browser-Capability": ownerCapability }
|
|
2774
|
-
};
|
|
2775
|
-
}
|
|
2776
2781
|
function longLivedHttpMcp(agent, port) {
|
|
2777
2782
|
return agent === "codex" ? { url: `http://127.0.0.1:${port}/mcp` } : { type: "sse", url: `http://127.0.0.1:${port}/sse` };
|
|
2778
2783
|
}
|
|
@@ -3066,7 +3071,7 @@ function getMcpServersForQuery(opts) {
|
|
|
3066
3071
|
peerBridge: opts.peerBridge
|
|
3067
3072
|
});
|
|
3068
3073
|
}
|
|
3069
|
-
var _playwrightUnavailableNotifier, _playwrightUnavailableLastNotifiedAt, _PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS, _playwrightUnavailableThisTurn,
|
|
3074
|
+
var _playwrightUnavailableNotifier, _playwrightUnavailableLastNotifiedAt, _PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS, _playwrightUnavailableThisTurn, cuaRsMcpPort, cuaRsMcpToken, MCP_CATALOG, allForumMcpServerNames, requiredForumMcpServers, REQUIRED_FORUM_MCP_SERVERS, optionalForumMcpServers, OPTIONAL_FORUM_MCP_SERVERS, nodeMcpEntries;
|
|
3070
3075
|
var init_mcp_config = __esm(() => {
|
|
3071
3076
|
init_canonical_bridge_config();
|
|
3072
3077
|
init_runtime_spec();
|
|
@@ -3076,6 +3081,7 @@ var init_mcp_config = __esm(() => {
|
|
|
3076
3081
|
init_logger();
|
|
3077
3082
|
init_mcp_catalog_policy();
|
|
3078
3083
|
init_capability();
|
|
3084
|
+
init_mcp_transport();
|
|
3079
3085
|
_playwrightUnavailableLastNotifiedAt = new Map;
|
|
3080
3086
|
_PLAYWRIGHT_UNAVAILABLE_COOLDOWN_MS = 5 * 60000;
|
|
3081
3087
|
_playwrightUnavailableThisTurn = new Set;
|
|
@@ -3087,7 +3093,7 @@ var init_mcp_config = __esm(() => {
|
|
|
3087
3093
|
const owner = browserOwnerForContext({ userId, session, topicId });
|
|
3088
3094
|
if (!owner)
|
|
3089
3095
|
return null;
|
|
3090
|
-
return
|
|
3096
|
+
return buildPlaywrightMcpTransport(playwrightPort, owner, playwrightCapability, agent);
|
|
3091
3097
|
}
|
|
3092
3098
|
_markPlaywrightUnavailable({
|
|
3093
3099
|
userId,
|
|
@@ -30211,7 +30217,8 @@ function createNodeControlHandler(options) {
|
|
|
30211
30217
|
"canonical-topic-abort",
|
|
30212
30218
|
"canonical-session-reset",
|
|
30213
30219
|
"canonical-session-compact",
|
|
30214
|
-
"canonical-input-files"
|
|
30220
|
+
"canonical-input-files",
|
|
30221
|
+
"canonical-ask-answer"
|
|
30215
30222
|
],
|
|
30216
30223
|
cursor: latestRuntimeEventSeq()
|
|
30217
30224
|
});
|
|
@@ -30471,6 +30478,28 @@ function createNodeControlHandler(options) {
|
|
|
30471
30478
|
result: result.text
|
|
30472
30479
|
});
|
|
30473
30480
|
}
|
|
30481
|
+
const runtimeAskAnswerMatch = runtimePath.match(/^\/topics\/([^/]+)\/messages\/([^/]+)\/ask-answer$/);
|
|
30482
|
+
if (runtimeAskAnswerMatch && req.method === "POST") {
|
|
30483
|
+
const body = await bodyRecord(req);
|
|
30484
|
+
if (body.v !== NODE_RUNTIME_CONTRACT_VERSION)
|
|
30485
|
+
return jsonError(400, "Unsupported v");
|
|
30486
|
+
const topicId = decodeURIComponent(runtimeAskAnswerMatch[1]);
|
|
30487
|
+
const messageId = decodeURIComponent(runtimeAskAnswerMatch[2]);
|
|
30488
|
+
const topic = getTopic(topicId);
|
|
30489
|
+
if (!topic || !topicInRequestScope(req, topic))
|
|
30490
|
+
return jsonError(404, "Topic not found");
|
|
30491
|
+
const userId = requiredText(body.userId, "userId");
|
|
30492
|
+
const label = requiredText(body.label, "label");
|
|
30493
|
+
const answered = topicService.answerQuestion(topicId, messageId, label, userId);
|
|
30494
|
+
if (!answered.ok)
|
|
30495
|
+
return jsonError(409, answered.error);
|
|
30496
|
+
return Response.json({
|
|
30497
|
+
ok: true,
|
|
30498
|
+
v: NODE_RUNTIME_CONTRACT_VERSION,
|
|
30499
|
+
queryId: answered.queryId,
|
|
30500
|
+
answerMessage: answered.answerMessage
|
|
30501
|
+
});
|
|
30502
|
+
}
|
|
30474
30503
|
const runtimeTopicMatch = runtimePath.match(/^\/topics\/([^/]+)$/);
|
|
30475
30504
|
if (runtimeTopicMatch && req.method === "GET") {
|
|
30476
30505
|
const topic = getTopic(decodeURIComponent(runtimeTopicMatch[1]));
|
|
@@ -45616,6 +45645,8 @@ function allowedRuntimePath(path, method) {
|
|
|
45616
45645
|
return true;
|
|
45617
45646
|
if (path === "/topics")
|
|
45618
45647
|
return true;
|
|
45648
|
+
if (/^\/topics\/[^/]+\/messages\/[^/]+\/ask-answer$/.test(path))
|
|
45649
|
+
return true;
|
|
45619
45650
|
return /^\/topics\/[^/]+\/(abort|session\/(reset|compact))$/.test(path);
|
|
45620
45651
|
}
|
|
45621
45652
|
if (method === "DELETE" || method === "PATCH")
|
|
@@ -47667,4 +47698,4 @@ switch (command) {
|
|
|
47667
47698
|
}
|
|
47668
47699
|
}
|
|
47669
47700
|
|
|
47670
|
-
//# debugId=
|
|
47701
|
+
//# debugId=1920132702DD756664756E2164756E21
|