@agentvault/agentvault 0.14.7 → 0.14.9
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.js +2257 -0
- package/dist/channel.js.map +1 -0
- package/dist/cli.js +79 -1
- package/dist/cli.js.map +2 -2
- package/dist/crypto-helpers.js +4 -0
- package/dist/crypto-helpers.js.map +1 -0
- package/dist/http-handlers.d.ts.map +1 -1
- package/dist/index.js +79 -1
- package/dist/index.js.map +2 -2
- package/dist/openclaw-entry.d.ts.map +1 -1
- package/dist/openclaw-entry.js +64 -15
- package/dist/openclaw-entry.js.map +2 -2
- package/dist/openclaw-plugin.js +222 -0
- package/dist/openclaw-plugin.js.map +1 -0
- package/dist/setup.js +329 -0
- package/dist/setup.js.map +1 -0
- package/dist/state.js +61 -0
- package/dist/state.js.map +1 -0
- package/dist/transport.js +43 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
- package/dist/__tests__/install-plugin.test.d.ts +0 -2
- package/dist/__tests__/install-plugin.test.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-entry.d.ts","sourceRoot":"","sources":["../src/openclaw-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EACV,iBAAiB,EASlB,MAAM,qBAAqB,CAAC;AAO7B,gFAAgF;AAChF,eAAO,IAAI,oBAAoB,SAAQ,CAAC;AAexC,uEAAuE;AACvE,iBAAS,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9C;AAED,qFAAqF;AACrF,iBAAS,yBAAyB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAcT;AAED,sFAAsF;AACtF,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAiBR;
|
|
1
|
+
{"version":3,"file":"openclaw-entry.d.ts","sourceRoot":"","sources":["../src/openclaw-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EACV,iBAAiB,EASlB,MAAM,qBAAqB,CAAC;AAO7B,gFAAgF;AAChF,eAAO,IAAI,oBAAoB,SAAQ,CAAC;AAexC,uEAAuE;AACvE,iBAAS,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9C;AAED,qFAAqF;AACrF,iBAAS,yBAAyB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAcT;AAED,sFAAsF;AACtF,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAiBR;AAqwBD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,cAAc,EAAE,CAAC;;;;;kBAQrD,iBAAiB;;AAJjC,wBAoRE"}
|
package/dist/openclaw-entry.js
CHANGED
|
@@ -290,7 +290,9 @@ async function handleSendRequest(parsed, channel) {
|
|
|
290
290
|
return { status: 400, body: { ok: false, error: "Missing 'text' field" } };
|
|
291
291
|
}
|
|
292
292
|
try {
|
|
293
|
-
if (parsed.
|
|
293
|
+
if (parsed.hub_address && typeof parsed.hub_address === "string") {
|
|
294
|
+
await channel.sendToAgent(parsed.hub_address, text);
|
|
295
|
+
} else if (parsed.room_id && typeof parsed.room_id === "string") {
|
|
294
296
|
await channel.sendToRoom(parsed.room_id, text, {
|
|
295
297
|
messageType: parsed.message_type,
|
|
296
298
|
priority: parsed.priority,
|
|
@@ -426,6 +428,7 @@ function _stripMentions(text, agentName, accountId) {
|
|
|
426
428
|
async function handleInbound(params) {
|
|
427
429
|
const { plaintext: rawPlaintext, metadata, channel, account, cfg } = params;
|
|
428
430
|
const isRoomMessage = Boolean(metadata.roomId);
|
|
431
|
+
const isA2AMessage = Boolean(metadata.a2aChannelId);
|
|
429
432
|
if (isRoomMessage) {
|
|
430
433
|
if (!_shouldProcessRoomMessage(rawPlaintext, account.agentName ?? "", account.accountId ?? "")) {
|
|
431
434
|
return;
|
|
@@ -596,7 +599,7 @@ async function handleInbound(params) {
|
|
|
596
599
|
// instant
|
|
597
600
|
attributes: {
|
|
598
601
|
"ai.agent.message.input_chars": plaintext.length,
|
|
599
|
-
"ai.agent.message.type": metadata.roomId ? "room" : "direct"
|
|
602
|
+
"ai.agent.message.type": isA2AMessage ? "a2a" : metadata.roomId ? "room" : "direct"
|
|
600
603
|
},
|
|
601
604
|
status: "ok"
|
|
602
605
|
});
|
|
@@ -609,7 +612,10 @@ async function handleInbound(params) {
|
|
|
609
612
|
cfg,
|
|
610
613
|
channel: "agentvault",
|
|
611
614
|
accountId: account.accountId,
|
|
612
|
-
peer: {
|
|
615
|
+
peer: {
|
|
616
|
+
kind: isA2AMessage ? "a2a" : "direct",
|
|
617
|
+
id: isA2AMessage ? `agentvault:a2a:${metadata.fromHubAddress}` : isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner"
|
|
618
|
+
}
|
|
613
619
|
});
|
|
614
620
|
const storePath = core.channel.session.resolveStorePath(cfg?.session?.store, {
|
|
615
621
|
agentId: route.agentId
|
|
@@ -621,7 +627,7 @@ async function handleInbound(params) {
|
|
|
621
627
|
});
|
|
622
628
|
const body = core.channel.reply.formatAgentEnvelope({
|
|
623
629
|
channel: "AgentVault",
|
|
624
|
-
from: isRoomMessage ? "Room" : "Owner",
|
|
630
|
+
from: isA2AMessage ? `Agent (${metadata.fromHubAddress})` : isRoomMessage ? "Room" : "Owner",
|
|
625
631
|
timestamp: new Date(metadata.timestamp).getTime(),
|
|
626
632
|
previousTimestamp,
|
|
627
633
|
envelope: envelopeOptions,
|
|
@@ -641,14 +647,14 @@ async function handleInbound(params) {
|
|
|
641
647
|
Body: body,
|
|
642
648
|
RawBody: plaintext,
|
|
643
649
|
CommandBody: plaintext,
|
|
644
|
-
From: isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
|
|
650
|
+
From: isA2AMessage ? `a2a:${metadata.fromHubAddress}` : isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
|
|
645
651
|
To: `agentvault:agent:${account.accountId}`,
|
|
646
652
|
SessionKey: route.sessionKey,
|
|
647
653
|
AccountId: account.accountId,
|
|
648
|
-
ChatType: isRoomMessage ? "room" : "direct",
|
|
649
|
-
ConversationLabel: isRoomMessage ? "AgentVault Room" : "AgentVault",
|
|
650
|
-
SenderName: isRoomMessage ? "Room" : "Owner",
|
|
651
|
-
SenderId: isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
|
|
654
|
+
ChatType: isA2AMessage ? "a2a" : isRoomMessage ? "room" : "direct",
|
|
655
|
+
ConversationLabel: isA2AMessage ? `A2A: ${metadata.fromHubAddress}` : isRoomMessage ? "AgentVault Room" : "AgentVault",
|
|
656
|
+
SenderName: isA2AMessage ? metadata.fromHubAddress : isRoomMessage ? "Room" : "Owner",
|
|
657
|
+
SenderId: isA2AMessage ? `a2a:${metadata.fromHubAddress}` : isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
|
|
652
658
|
Provider: "agentvault",
|
|
653
659
|
Surface: "agentvault",
|
|
654
660
|
MessageSid: metadata.messageId,
|
|
@@ -686,7 +692,11 @@ async function handleInbound(params) {
|
|
|
686
692
|
replyCount++;
|
|
687
693
|
totalReplyChars += text.length;
|
|
688
694
|
if (!firstReplyTime) firstReplyTime = replyStart;
|
|
689
|
-
if (
|
|
695
|
+
if (isA2AMessage) {
|
|
696
|
+
await channel.sendToAgent(metadata.fromHubAddress, text, {
|
|
697
|
+
parentSpanId: inferenceSpanId
|
|
698
|
+
});
|
|
699
|
+
} else if (isRoomMessage) {
|
|
690
700
|
await channel.sendToRoom(metadata.roomId, text, {
|
|
691
701
|
metadata: { content_length: text.length }
|
|
692
702
|
});
|
|
@@ -967,6 +977,28 @@ var agentVaultPlugin = {
|
|
|
967
977
|
_log?.(`[AgentVault] inbound error: ${String(err)}`);
|
|
968
978
|
}
|
|
969
979
|
},
|
|
980
|
+
onA2AMessage: async (msg) => {
|
|
981
|
+
const a2aMetadata = {
|
|
982
|
+
a2aChannelId: msg.channelId,
|
|
983
|
+
fromHubAddress: msg.fromHubAddress,
|
|
984
|
+
conversationId: msg.conversationId,
|
|
985
|
+
timestamp: msg.timestamp,
|
|
986
|
+
parentSpanId: msg.parentSpanId,
|
|
987
|
+
messageId: `a2a:${msg.channelId}:${Date.now()}`
|
|
988
|
+
};
|
|
989
|
+
if (!_ocRuntime) {
|
|
990
|
+
_log?.("[AgentVault] runtime not ready, queuing A2A message");
|
|
991
|
+
_messageQueue.push(async () => {
|
|
992
|
+
await handleInbound({ plaintext: msg.text, metadata: a2aMetadata, channel, account, cfg });
|
|
993
|
+
});
|
|
994
|
+
return;
|
|
995
|
+
}
|
|
996
|
+
try {
|
|
997
|
+
await handleInbound({ plaintext: msg.text, metadata: a2aMetadata, channel, account, cfg });
|
|
998
|
+
} catch (err) {
|
|
999
|
+
_log?.(`[AgentVault] A2A inbound error: ${String(err)}`);
|
|
1000
|
+
}
|
|
1001
|
+
},
|
|
970
1002
|
onStateChange: (state) => {
|
|
971
1003
|
_log?.(`[AgentVault] \u2192 ${state}`);
|
|
972
1004
|
if (state === "error") reject(new Error("AgentVault channel permanent error"));
|
|
@@ -1013,7 +1045,12 @@ var agentVaultPlugin = {
|
|
|
1013
1045
|
if (!ch) return { ok: false, error: "AgentVault channel not connected" };
|
|
1014
1046
|
try {
|
|
1015
1047
|
const wasReady = ch.state === "ready";
|
|
1016
|
-
|
|
1048
|
+
if (to.startsWith("a2a:")) {
|
|
1049
|
+
const hubAddress = to.slice(4);
|
|
1050
|
+
await ch.sendToAgent(hubAddress, text);
|
|
1051
|
+
} else {
|
|
1052
|
+
await ch.send(text);
|
|
1053
|
+
}
|
|
1017
1054
|
return { ok: true, queued: !wasReady };
|
|
1018
1055
|
} catch (err) {
|
|
1019
1056
|
return { ok: false, error: String(err) };
|
|
@@ -1027,7 +1064,11 @@ var agentVaultPlugin = {
|
|
|
1027
1064
|
const message = text ? `${text}
|
|
1028
1065
|
${mediaUrl}` : mediaUrl;
|
|
1029
1066
|
const wasReady = ch.state === "ready";
|
|
1030
|
-
|
|
1067
|
+
if (to.startsWith("a2a:")) {
|
|
1068
|
+
await ch.sendToAgent(to.slice(4), message);
|
|
1069
|
+
} else {
|
|
1070
|
+
await ch.send(message);
|
|
1071
|
+
}
|
|
1031
1072
|
return { ok: true, queued: !wasReady };
|
|
1032
1073
|
} catch (err) {
|
|
1033
1074
|
return { ok: false, error: String(err) };
|
|
@@ -1045,17 +1086,25 @@ ${mediaUrl}` : mediaUrl;
|
|
|
1045
1086
|
});
|
|
1046
1087
|
const text = (payload.text ?? "").trim();
|
|
1047
1088
|
if (!text && !payload.mediaUrls?.length) return { ok: true };
|
|
1089
|
+
const _send = async (msg) => {
|
|
1090
|
+
const target = ctx.to;
|
|
1091
|
+
if (target && typeof target === "string" && target.startsWith("a2a:")) {
|
|
1092
|
+
await ch.sendToAgent(target.slice(4), msg);
|
|
1093
|
+
} else {
|
|
1094
|
+
await ch.send(msg);
|
|
1095
|
+
}
|
|
1096
|
+
};
|
|
1048
1097
|
if (text) {
|
|
1049
|
-
await
|
|
1098
|
+
await _send(text);
|
|
1050
1099
|
}
|
|
1051
1100
|
if (payload.mediaUrls?.length) {
|
|
1052
1101
|
for (const url of payload.mediaUrls) {
|
|
1053
|
-
await
|
|
1102
|
+
await _send(url);
|
|
1054
1103
|
}
|
|
1055
1104
|
}
|
|
1056
1105
|
if (payload.suggestedActions?.length) {
|
|
1057
1106
|
const actionsText = payload.suggestedActions.map((a) => `- ${a.label}: ${a.action}`).join("\n");
|
|
1058
|
-
await
|
|
1107
|
+
await _send(`Suggested actions:
|
|
1059
1108
|
${actionsText}`);
|
|
1060
1109
|
}
|
|
1061
1110
|
return { ok: true };
|