[Init] Initial commit - NetMesh terminal manager
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
This commit is contained in:
61
electron/bridges/aiBridge/sdk/injectMcp.test.cjs
Normal file
61
electron/bridges/aiBridge/sdk/injectMcp.test.cjs
Normal file
@@ -0,0 +1,61 @@
|
||||
const test = require("node:test");
|
||||
const assert = require("node:assert/strict");
|
||||
const { buildInjectedMcpServers } = require("./injectMcp.cjs");
|
||||
|
||||
function fakeMcpBridge() {
|
||||
let hostStartCount = 0;
|
||||
return {
|
||||
get hostStartCount() { return hostStartCount; },
|
||||
getOrCreateHost: async () => {
|
||||
hostStartCount += 1;
|
||||
return 54321;
|
||||
},
|
||||
getScopedSessionIds: (chatId) => (chatId === "chat-1" ? ["s1", "s2"] : []),
|
||||
buildMcpServerConfig: (port, ids, chatId) => ({
|
||||
name: "netcatty-remote-hosts",
|
||||
type: "stdio",
|
||||
command: "/path/electron",
|
||||
args: ["/path/netcatty-mcp-server.cjs"],
|
||||
env: [
|
||||
{ name: "NETCATTY_MCP_PORT", value: String(port) },
|
||||
{ name: "NETCATTY_MCP_CHAT_SESSION_ID", value: chatId },
|
||||
],
|
||||
}),
|
||||
};
|
||||
}
|
||||
|
||||
test("mcp mode returns netcatty MCP stdio config", async () => {
|
||||
const res = await buildInjectedMcpServers({
|
||||
mcpServerBridge: fakeMcpBridge(),
|
||||
chatSessionId: "chat-1",
|
||||
toolIntegrationMode: "mcp",
|
||||
});
|
||||
assert.equal(res.length, 1);
|
||||
assert.equal(res[0].name, "netcatty-remote-hosts");
|
||||
assert.equal(res[0].type, "stdio");
|
||||
assert.equal(res[0].command, "/path/electron");
|
||||
const portPair = res[0].env.find((p) => p.name === "NETCATTY_MCP_PORT");
|
||||
assert.equal(portPair.value, "54321");
|
||||
});
|
||||
|
||||
test("skills mode starts the CLI host and returns no injected MCP config", async () => {
|
||||
const bridge = fakeMcpBridge();
|
||||
const res = await buildInjectedMcpServers({
|
||||
mcpServerBridge: bridge,
|
||||
chatSessionId: "chat-1",
|
||||
toolIntegrationMode: "skills",
|
||||
});
|
||||
assert.deepEqual(res, []);
|
||||
assert.equal(bridge.hostStartCount, 1);
|
||||
});
|
||||
|
||||
test("getOrCreateHost failure degrades to empty, not throw", async () => {
|
||||
const bridge = fakeMcpBridge();
|
||||
bridge.getOrCreateHost = async () => { throw new Error("port boom"); };
|
||||
const res = await buildInjectedMcpServers({
|
||||
mcpServerBridge: bridge,
|
||||
chatSessionId: "chat-1",
|
||||
toolIntegrationMode: "mcp",
|
||||
});
|
||||
assert.deepEqual(res, []);
|
||||
});
|
||||
Reference in New Issue
Block a user