@agentvault/agentvault 0.17.3 → 0.17.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/channel.d.ts +8 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/cli.js +162 -23
- package/dist/cli.js.map +4 -4
- package/dist/http-handlers.d.ts +7 -0
- package/dist/http-handlers.d.ts.map +1 -1
- package/dist/index.js +213 -68
- package/dist/index.js.map +4 -4
- package/dist/mcp-proxy-helpers.d.ts +9 -0
- package/dist/mcp-proxy-helpers.d.ts.map +1 -0
- package/dist/mcp-server.d.ts +2 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/openclaw-entry.d.ts.map +1 -1
- package/dist/openclaw-entry.js +16423 -179
- package/dist/openclaw-entry.js.map +4 -4
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
package/dist/channel.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
22
22
|
private _stopped;
|
|
23
23
|
private _persisted;
|
|
24
24
|
private _httpServer;
|
|
25
|
+
private _mcpServer;
|
|
25
26
|
private _pollFallbackTimer;
|
|
26
27
|
private _heartbeatTimer;
|
|
27
28
|
private _heartbeatCallback;
|
|
@@ -187,6 +188,13 @@ export declare class SecureChannel extends EventEmitter {
|
|
|
187
188
|
stop(): Promise<void>;
|
|
188
189
|
startHttpServer(port: number): void;
|
|
189
190
|
private _stopHttpServer;
|
|
191
|
+
/**
|
|
192
|
+
* Attach an MCP server instance to this channel.
|
|
193
|
+
* The MCP server will be served at /mcp on the local HTTP server.
|
|
194
|
+
*/
|
|
195
|
+
setMcpServer(mcpServer: import("./mcp-server.js").AgentVaultMcpServer): void;
|
|
196
|
+
/** The attached MCP server, if any. */
|
|
197
|
+
get mcpServer(): import("./mcp-server.js").AgentVaultMcpServer | null;
|
|
190
198
|
/**
|
|
191
199
|
* Create a new topic within the conversation group.
|
|
192
200
|
* Requires the channel to be initialized with a groupId (from activation).
|
package/dist/channel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ3C,OAAO,EAWL,iBAAiB,EAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EAMZ,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,QAAQ,EAER,UAAU,EAEV,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,UAAU,EACX,MAAM,YAAY,CAAC;AA6DpB,qBAAa,aAAc,SAAQ,YAAY;
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -46477,6 +46477,7 @@ var http_handlers_exports = {};
|
|
|
46477
46477
|
__export(http_handlers_exports, {
|
|
46478
46478
|
handleActionRequest: () => handleActionRequest,
|
|
46479
46479
|
handleDecisionRequest: () => handleDecisionRequest,
|
|
46480
|
+
handleMcpConfigRequest: () => handleMcpConfigRequest,
|
|
46480
46481
|
handleSendRequest: () => handleSendRequest,
|
|
46481
46482
|
handleStatusRequest: () => handleStatusRequest,
|
|
46482
46483
|
handleTargetsRequest: () => handleTargetsRequest
|
|
@@ -46618,12 +46619,90 @@ function handleTargetsRequest(channel2) {
|
|
|
46618
46619
|
}
|
|
46619
46620
|
};
|
|
46620
46621
|
}
|
|
46622
|
+
function handleMcpConfigRequest(agentName, port, mcpSkillCount) {
|
|
46623
|
+
return {
|
|
46624
|
+
status: 200,
|
|
46625
|
+
body: {
|
|
46626
|
+
mcpServers: {
|
|
46627
|
+
[`agentvault-${agentName}`]: {
|
|
46628
|
+
url: `http://127.0.0.1:${port}/mcp`
|
|
46629
|
+
}
|
|
46630
|
+
},
|
|
46631
|
+
_meta: {
|
|
46632
|
+
agent: agentName,
|
|
46633
|
+
skills_count: mcpSkillCount,
|
|
46634
|
+
transport: "streamable-http",
|
|
46635
|
+
auth: "none (localhost)",
|
|
46636
|
+
instructions: "Add the mcpServers block to your MCP configuration file (e.g., .mcp.json or mcp_config.json)"
|
|
46637
|
+
}
|
|
46638
|
+
}
|
|
46639
|
+
};
|
|
46640
|
+
}
|
|
46621
46641
|
var init_http_handlers = __esm({
|
|
46622
46642
|
"src/http-handlers.ts"() {
|
|
46623
46643
|
"use strict";
|
|
46624
46644
|
}
|
|
46625
46645
|
});
|
|
46626
46646
|
|
|
46647
|
+
// src/mcp-proxy-helpers.ts
|
|
46648
|
+
var mcp_proxy_helpers_exports = {};
|
|
46649
|
+
__export(mcp_proxy_helpers_exports, {
|
|
46650
|
+
createMcpProxyRequest: () => createMcpProxyRequest
|
|
46651
|
+
});
|
|
46652
|
+
import { Readable } from "node:stream";
|
|
46653
|
+
async function createMcpProxyRequest(mcpServer, payload) {
|
|
46654
|
+
const bodyStr = JSON.stringify(payload);
|
|
46655
|
+
const req = Object.assign(new Readable({ read() {
|
|
46656
|
+
} }), {
|
|
46657
|
+
method: "POST",
|
|
46658
|
+
url: "/mcp",
|
|
46659
|
+
headers: {
|
|
46660
|
+
"content-type": "application/json",
|
|
46661
|
+
"content-length": String(Buffer.byteLength(bodyStr)),
|
|
46662
|
+
// Use localhost to bypass SPT validation (WS already authenticated)
|
|
46663
|
+
host: "localhost"
|
|
46664
|
+
},
|
|
46665
|
+
socket: { remoteAddress: "127.0.0.1" }
|
|
46666
|
+
});
|
|
46667
|
+
req.push(bodyStr);
|
|
46668
|
+
req.push(null);
|
|
46669
|
+
let responseStatus = 200;
|
|
46670
|
+
let responseBody = "";
|
|
46671
|
+
const chunks = [];
|
|
46672
|
+
const res = {
|
|
46673
|
+
writeHead: (status) => {
|
|
46674
|
+
responseStatus = status;
|
|
46675
|
+
},
|
|
46676
|
+
write: (chunk) => {
|
|
46677
|
+
chunks.push(typeof chunk === "string" ? chunk : chunk.toString());
|
|
46678
|
+
return true;
|
|
46679
|
+
},
|
|
46680
|
+
end: (data) => {
|
|
46681
|
+
if (data) chunks.push(typeof data === "string" ? data : data.toString());
|
|
46682
|
+
responseBody = chunks.join("");
|
|
46683
|
+
},
|
|
46684
|
+
setHeader: () => {
|
|
46685
|
+
},
|
|
46686
|
+
getHeader: () => void 0,
|
|
46687
|
+
statusCode: 200,
|
|
46688
|
+
headersSent: false
|
|
46689
|
+
};
|
|
46690
|
+
await mcpServer.handleRequest(req, res);
|
|
46691
|
+
if (responseBody) {
|
|
46692
|
+
try {
|
|
46693
|
+
return JSON.parse(responseBody);
|
|
46694
|
+
} catch {
|
|
46695
|
+
return { jsonrpc: "2.0", error: { code: -32603, message: responseBody } };
|
|
46696
|
+
}
|
|
46697
|
+
}
|
|
46698
|
+
return null;
|
|
46699
|
+
}
|
|
46700
|
+
var init_mcp_proxy_helpers = __esm({
|
|
46701
|
+
"src/mcp-proxy-helpers.ts"() {
|
|
46702
|
+
"use strict";
|
|
46703
|
+
}
|
|
46704
|
+
});
|
|
46705
|
+
|
|
46627
46706
|
// src/workspace-handlers.ts
|
|
46628
46707
|
var workspace_handlers_exports = {};
|
|
46629
46708
|
__export(workspace_handlers_exports, {
|
|
@@ -46839,6 +46918,7 @@ var init_channel = __esm({
|
|
|
46839
46918
|
_stopped = false;
|
|
46840
46919
|
_persisted = null;
|
|
46841
46920
|
_httpServer = null;
|
|
46921
|
+
_mcpServer = null;
|
|
46842
46922
|
_pollFallbackTimer = null;
|
|
46843
46923
|
_heartbeatTimer = null;
|
|
46844
46924
|
_heartbeatCallback = null;
|
|
@@ -47890,9 +47970,28 @@ var init_channel = __esm({
|
|
|
47890
47970
|
const result = handlers.handleTargetsRequest(this);
|
|
47891
47971
|
res.writeHead(result.status, { "Content-Type": "application/json" });
|
|
47892
47972
|
res.end(JSON.stringify(result.body));
|
|
47973
|
+
} else if (req.url === "/mcp" && (req.method === "POST" || req.method === "GET" || req.method === "DELETE")) {
|
|
47974
|
+
if (!this._mcpServer) {
|
|
47975
|
+
res.writeHead(503, { "Content-Type": "application/json" });
|
|
47976
|
+
res.end(JSON.stringify({ ok: false, error: "MCP server not initialized" }));
|
|
47977
|
+
return;
|
|
47978
|
+
}
|
|
47979
|
+
this._mcpServer.handleRequest(req, res).catch((err) => {
|
|
47980
|
+
console.error("[MCP] Request handling error:", err);
|
|
47981
|
+
if (!res.headersSent) {
|
|
47982
|
+
res.writeHead(500, { "Content-Type": "application/json" });
|
|
47983
|
+
res.end(JSON.stringify({ ok: false, error: "Internal MCP error" }));
|
|
47984
|
+
}
|
|
47985
|
+
});
|
|
47986
|
+
} else if (req.method === "GET" && req.url === "/mcp-config") {
|
|
47987
|
+
const agentName = this.config.agentName ?? "agent";
|
|
47988
|
+
const mcpSkillCount = this._mcpServer?.skillCount ?? 0;
|
|
47989
|
+
const result = handlers.handleMcpConfigRequest(agentName, port, mcpSkillCount);
|
|
47990
|
+
res.writeHead(result.status, { "Content-Type": "application/json" });
|
|
47991
|
+
res.end(JSON.stringify(result.body));
|
|
47893
47992
|
} else {
|
|
47894
47993
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
47895
|
-
res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send, POST /decision, POST /action, GET /status,
|
|
47994
|
+
res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send, POST /decision, POST /action, GET /status, GET /targets, or /mcp" }));
|
|
47896
47995
|
}
|
|
47897
47996
|
});
|
|
47898
47997
|
this._httpServer.listen(port, "127.0.0.1", () => {
|
|
@@ -47905,6 +48004,17 @@ var init_channel = __esm({
|
|
|
47905
48004
|
this._httpServer = null;
|
|
47906
48005
|
}
|
|
47907
48006
|
}
|
|
48007
|
+
/**
|
|
48008
|
+
* Attach an MCP server instance to this channel.
|
|
48009
|
+
* The MCP server will be served at /mcp on the local HTTP server.
|
|
48010
|
+
*/
|
|
48011
|
+
setMcpServer(mcpServer) {
|
|
48012
|
+
this._mcpServer = mcpServer;
|
|
48013
|
+
}
|
|
48014
|
+
/** The attached MCP server, if any. */
|
|
48015
|
+
get mcpServer() {
|
|
48016
|
+
return this._mcpServer;
|
|
48017
|
+
}
|
|
47908
48018
|
// --- Topic management ---
|
|
47909
48019
|
/**
|
|
47910
48020
|
* Create a new topic within the conversation group.
|
|
@@ -48499,6 +48609,33 @@ var init_channel = __esm({
|
|
|
48499
48609
|
await this._fetchScanRules();
|
|
48500
48610
|
return;
|
|
48501
48611
|
}
|
|
48612
|
+
if (data.event === "mcp_request") {
|
|
48613
|
+
const requestId = data.data?.request_id;
|
|
48614
|
+
const mcpPayload = data.data?.mcp_payload;
|
|
48615
|
+
if (requestId && mcpPayload && this._mcpServer) {
|
|
48616
|
+
try {
|
|
48617
|
+
const { createMcpProxyRequest: createMcpProxyRequest2 } = await Promise.resolve().then(() => (init_mcp_proxy_helpers(), mcp_proxy_helpers_exports));
|
|
48618
|
+
const mcpResponse = await createMcpProxyRequest2(this._mcpServer, mcpPayload);
|
|
48619
|
+
ws.send(JSON.stringify({
|
|
48620
|
+
event: "mcp_response",
|
|
48621
|
+
data: { request_id: requestId, mcp_payload: mcpResponse }
|
|
48622
|
+
}));
|
|
48623
|
+
} catch (err) {
|
|
48624
|
+
ws.send(JSON.stringify({
|
|
48625
|
+
event: "mcp_response",
|
|
48626
|
+
data: {
|
|
48627
|
+
request_id: requestId,
|
|
48628
|
+
mcp_payload: {
|
|
48629
|
+
jsonrpc: "2.0",
|
|
48630
|
+
id: mcpPayload?.id ?? null,
|
|
48631
|
+
error: { code: -32603, message: String(err) }
|
|
48632
|
+
}
|
|
48633
|
+
}
|
|
48634
|
+
}));
|
|
48635
|
+
}
|
|
48636
|
+
}
|
|
48637
|
+
return;
|
|
48638
|
+
}
|
|
48502
48639
|
if (data.event === "hub_identity_sync") {
|
|
48503
48640
|
if (this._persisted && data.data?.hub_id) {
|
|
48504
48641
|
const changed = this._persisted.hubId !== data.data.hub_id || this._persisted.agentRole !== (data.data.agent_role ?? "peer");
|
|
@@ -50502,18 +50639,6 @@ var init_fetch_interceptor = __esm({
|
|
|
50502
50639
|
}
|
|
50503
50640
|
});
|
|
50504
50641
|
|
|
50505
|
-
// src/openclaw-entry.ts
|
|
50506
|
-
var init_openclaw_entry = __esm({
|
|
50507
|
-
"src/openclaw-entry.ts"() {
|
|
50508
|
-
"use strict";
|
|
50509
|
-
init_account_config();
|
|
50510
|
-
init_fetch_interceptor();
|
|
50511
|
-
init_http_handlers();
|
|
50512
|
-
init_openclaw_compat();
|
|
50513
|
-
init_types();
|
|
50514
|
-
}
|
|
50515
|
-
});
|
|
50516
|
-
|
|
50517
50642
|
// ../../node_modules/zod/v3/helpers/util.js
|
|
50518
50643
|
var util, objectUtil, ZodParsedType, getParsedType;
|
|
50519
50644
|
var init_util = __esm({
|
|
@@ -70636,7 +70761,7 @@ var init_mcp = __esm({
|
|
|
70636
70761
|
});
|
|
70637
70762
|
|
|
70638
70763
|
// ../../node_modules/@hono/node-server/dist/index.mjs
|
|
70639
|
-
import { Readable } from "stream";
|
|
70764
|
+
import { Readable as Readable2 } from "stream";
|
|
70640
70765
|
import crypto2 from "crypto";
|
|
70641
70766
|
var GlobalRequest, Request2, newHeadersFromIncoming, wrapBodyStream, newRequestFromIncoming, getRequestCache, requestCache, incomingKey, urlKey, headersKey, abortControllerKey, getAbortController, requestPrototype, responseCache, getResponseCache, cacheKey, GlobalResponse, Response2;
|
|
70642
70767
|
var init_dist2 = __esm({
|
|
@@ -70696,7 +70821,7 @@ var init_dist2 = __esm({
|
|
|
70696
70821
|
init.body = new ReadableStream({
|
|
70697
70822
|
async pull(controller) {
|
|
70698
70823
|
try {
|
|
70699
|
-
reader ||=
|
|
70824
|
+
reader ||= Readable2.toWeb(incoming).getReader();
|
|
70700
70825
|
const { done, value } = await reader.read();
|
|
70701
70826
|
if (done) {
|
|
70702
70827
|
controller.close();
|
|
@@ -70709,7 +70834,7 @@ var init_dist2 = __esm({
|
|
|
70709
70834
|
}
|
|
70710
70835
|
});
|
|
70711
70836
|
} else {
|
|
70712
|
-
init.body =
|
|
70837
|
+
init.body = Readable2.toWeb(incoming);
|
|
70713
70838
|
}
|
|
70714
70839
|
}
|
|
70715
70840
|
return new Request2(url2, init);
|
|
@@ -70870,13 +70995,6 @@ var init_mcp_server2 = __esm({
|
|
|
70870
70995
|
}
|
|
70871
70996
|
});
|
|
70872
70997
|
|
|
70873
|
-
// src/mcp-handlers.ts
|
|
70874
|
-
var init_mcp_handlers = __esm({
|
|
70875
|
-
"src/mcp-handlers.ts"() {
|
|
70876
|
-
"use strict";
|
|
70877
|
-
}
|
|
70878
|
-
});
|
|
70879
|
-
|
|
70880
70998
|
// src/skill-manifest.ts
|
|
70881
70999
|
function parseSkillMd(content) {
|
|
70882
71000
|
const lines = content.split("\n");
|
|
@@ -70982,6 +71100,27 @@ var init_skill_manifest = __esm({
|
|
|
70982
71100
|
}
|
|
70983
71101
|
});
|
|
70984
71102
|
|
|
71103
|
+
// src/openclaw-entry.ts
|
|
71104
|
+
var init_openclaw_entry = __esm({
|
|
71105
|
+
"src/openclaw-entry.ts"() {
|
|
71106
|
+
"use strict";
|
|
71107
|
+
init_account_config();
|
|
71108
|
+
init_fetch_interceptor();
|
|
71109
|
+
init_http_handlers();
|
|
71110
|
+
init_openclaw_compat();
|
|
71111
|
+
init_types();
|
|
71112
|
+
init_mcp_server2();
|
|
71113
|
+
init_skill_manifest();
|
|
71114
|
+
}
|
|
71115
|
+
});
|
|
71116
|
+
|
|
71117
|
+
// src/mcp-handlers.ts
|
|
71118
|
+
var init_mcp_handlers = __esm({
|
|
71119
|
+
"src/mcp-handlers.ts"() {
|
|
71120
|
+
"use strict";
|
|
71121
|
+
}
|
|
71122
|
+
});
|
|
71123
|
+
|
|
70985
71124
|
// src/skill-invoker.ts
|
|
70986
71125
|
var init_skill_invoker = __esm({
|
|
70987
71126
|
"src/skill-invoker.ts"() {
|