@rk0429/agentic-relay 0.6.3 → 0.6.4
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/relay.mjs +39 -18
- package/package.json +1 -1
package/dist/relay.mjs
CHANGED
|
@@ -717,12 +717,11 @@ var init_server = __esm({
|
|
|
717
717
|
this.backendSelector = new BackendSelector();
|
|
718
718
|
this.server = new McpServer({
|
|
719
719
|
name: "agentic-relay",
|
|
720
|
-
version: "0.6.
|
|
720
|
+
version: "0.6.4"
|
|
721
721
|
});
|
|
722
722
|
this.registerTools(this.server);
|
|
723
723
|
}
|
|
724
724
|
server;
|
|
725
|
-
childServer;
|
|
726
725
|
guard;
|
|
727
726
|
backendSelector;
|
|
728
727
|
_childHttpServer;
|
|
@@ -912,29 +911,51 @@ ${result.stdout}`;
|
|
|
912
911
|
}
|
|
913
912
|
/**
|
|
914
913
|
* Start an HTTP server for child agents.
|
|
915
|
-
*
|
|
916
|
-
*
|
|
914
|
+
* Each client connection gets its own McpServer + StreamableHTTPServerTransport pair
|
|
915
|
+
* because StreamableHTTPServerTransport only supports a single session per instance.
|
|
916
|
+
* Routes requests to the correct session based on the Mcp-Session-Id header.
|
|
917
917
|
*/
|
|
918
918
|
async startChildHttpServer() {
|
|
919
|
-
|
|
920
|
-
name: "agentic-relay",
|
|
921
|
-
version: "0.6.3"
|
|
922
|
-
});
|
|
923
|
-
this.registerTools(this.childServer);
|
|
924
|
-
const childTransport = new StreamableHTTPServerTransport({
|
|
925
|
-
sessionIdGenerator: () => randomUUID()
|
|
926
|
-
});
|
|
919
|
+
const sessions = /* @__PURE__ */ new Map();
|
|
927
920
|
const httpServer = createServer(async (req, res) => {
|
|
928
921
|
const url = req.url ?? "";
|
|
929
|
-
if (url
|
|
930
|
-
await childTransport.handleRequest(req, res);
|
|
931
|
-
} else {
|
|
922
|
+
if (url !== "/mcp" && !url.startsWith("/mcp?")) {
|
|
932
923
|
res.writeHead(404, { "Content-Type": "text/plain" });
|
|
933
924
|
res.end("Not found");
|
|
925
|
+
return;
|
|
926
|
+
}
|
|
927
|
+
const sessionId = req.headers["mcp-session-id"];
|
|
928
|
+
if (sessionId) {
|
|
929
|
+
const session = sessions.get(sessionId);
|
|
930
|
+
if (session) {
|
|
931
|
+
await session.transport.handleRequest(req, res);
|
|
932
|
+
return;
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
const transport = new StreamableHTTPServerTransport({
|
|
936
|
+
sessionIdGenerator: () => randomUUID()
|
|
937
|
+
});
|
|
938
|
+
const server = new McpServer({
|
|
939
|
+
name: "agentic-relay",
|
|
940
|
+
version: "0.6.4"
|
|
941
|
+
});
|
|
942
|
+
this.registerTools(server);
|
|
943
|
+
transport.onclose = () => {
|
|
944
|
+
const sid2 = transport.sessionId;
|
|
945
|
+
if (sid2) {
|
|
946
|
+
sessions.delete(sid2);
|
|
947
|
+
logger.debug(`Child MCP session closed: ${sid2}`);
|
|
948
|
+
}
|
|
949
|
+
};
|
|
950
|
+
await server.connect(transport);
|
|
951
|
+
await transport.handleRequest(req, res);
|
|
952
|
+
const sid = transport.sessionId;
|
|
953
|
+
if (sid) {
|
|
954
|
+
sessions.set(sid, { transport, server });
|
|
955
|
+
logger.debug(`Child MCP session created: ${sid}`);
|
|
934
956
|
}
|
|
935
957
|
});
|
|
936
958
|
this._childHttpServer = httpServer;
|
|
937
|
-
await this.childServer.connect(childTransport);
|
|
938
959
|
await new Promise((resolve) => {
|
|
939
960
|
httpServer.listen(0, "127.0.0.1", () => {
|
|
940
961
|
const addr = httpServer.address();
|
|
@@ -3898,7 +3919,7 @@ function createVersionCommand(registry2) {
|
|
|
3898
3919
|
description: "Show relay and backend versions"
|
|
3899
3920
|
},
|
|
3900
3921
|
async run() {
|
|
3901
|
-
const relayVersion = "0.6.
|
|
3922
|
+
const relayVersion = "0.6.4";
|
|
3902
3923
|
console.log(`agentic-relay v${relayVersion}`);
|
|
3903
3924
|
console.log("");
|
|
3904
3925
|
console.log("Backends:");
|
|
@@ -4248,7 +4269,7 @@ void configManager.getConfig().then((config) => {
|
|
|
4248
4269
|
var main = defineCommand10({
|
|
4249
4270
|
meta: {
|
|
4250
4271
|
name: "relay",
|
|
4251
|
-
version: "0.6.
|
|
4272
|
+
version: "0.6.4",
|
|
4252
4273
|
description: "Unified CLI proxy for Claude Code, Codex CLI, and Gemini CLI"
|
|
4253
4274
|
},
|
|
4254
4275
|
subCommands: {
|
package/package.json
CHANGED