@agentvault/agentvault 0.14.6 → 0.14.8

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.
@@ -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;AAgtBD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,cAAc,EAAE,CAAC;;;;;kBAQrD,iBAAiB;;AAJjC,wBAoRE"}
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"}
@@ -426,6 +426,7 @@ function _stripMentions(text, agentName, accountId) {
426
426
  async function handleInbound(params) {
427
427
  const { plaintext: rawPlaintext, metadata, channel, account, cfg } = params;
428
428
  const isRoomMessage = Boolean(metadata.roomId);
429
+ const isA2AMessage = Boolean(metadata.a2aChannelId);
429
430
  if (isRoomMessage) {
430
431
  if (!_shouldProcessRoomMessage(rawPlaintext, account.agentName ?? "", account.accountId ?? "")) {
431
432
  return;
@@ -596,7 +597,7 @@ async function handleInbound(params) {
596
597
  // instant
597
598
  attributes: {
598
599
  "ai.agent.message.input_chars": plaintext.length,
599
- "ai.agent.message.type": metadata.roomId ? "room" : "direct"
600
+ "ai.agent.message.type": isA2AMessage ? "a2a" : metadata.roomId ? "room" : "direct"
600
601
  },
601
602
  status: "ok"
602
603
  });
@@ -609,7 +610,10 @@ async function handleInbound(params) {
609
610
  cfg,
610
611
  channel: "agentvault",
611
612
  accountId: account.accountId,
612
- peer: { kind: "direct", id: isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner" }
613
+ peer: {
614
+ kind: isA2AMessage ? "a2a" : "direct",
615
+ id: isA2AMessage ? `agentvault:a2a:${metadata.fromHubAddress}` : isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner"
616
+ }
613
617
  });
614
618
  const storePath = core.channel.session.resolveStorePath(cfg?.session?.store, {
615
619
  agentId: route.agentId
@@ -621,7 +625,7 @@ async function handleInbound(params) {
621
625
  });
622
626
  const body = core.channel.reply.formatAgentEnvelope({
623
627
  channel: "AgentVault",
624
- from: isRoomMessage ? "Room" : "Owner",
628
+ from: isA2AMessage ? `Agent (${metadata.fromHubAddress})` : isRoomMessage ? "Room" : "Owner",
625
629
  timestamp: new Date(metadata.timestamp).getTime(),
626
630
  previousTimestamp,
627
631
  envelope: envelopeOptions,
@@ -641,14 +645,14 @@ async function handleInbound(params) {
641
645
  Body: body,
642
646
  RawBody: plaintext,
643
647
  CommandBody: plaintext,
644
- From: isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
648
+ From: isA2AMessage ? `a2a:${metadata.fromHubAddress}` : isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
645
649
  To: `agentvault:agent:${account.accountId}`,
646
650
  SessionKey: route.sessionKey,
647
651
  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",
652
+ ChatType: isA2AMessage ? "a2a" : isRoomMessage ? "room" : "direct",
653
+ ConversationLabel: isA2AMessage ? `A2A: ${metadata.fromHubAddress}` : isRoomMessage ? "AgentVault Room" : "AgentVault",
654
+ SenderName: isA2AMessage ? metadata.fromHubAddress : isRoomMessage ? "Room" : "Owner",
655
+ SenderId: isA2AMessage ? `a2a:${metadata.fromHubAddress}` : isRoomMessage ? `agentvault:room:${metadata.roomId}` : "agentvault:owner",
652
656
  Provider: "agentvault",
653
657
  Surface: "agentvault",
654
658
  MessageSid: metadata.messageId,
@@ -686,7 +690,11 @@ async function handleInbound(params) {
686
690
  replyCount++;
687
691
  totalReplyChars += text.length;
688
692
  if (!firstReplyTime) firstReplyTime = replyStart;
689
- if (isRoomMessage) {
693
+ if (isA2AMessage) {
694
+ await channel.sendToAgent(metadata.fromHubAddress, text, {
695
+ parentSpanId: inferenceSpanId
696
+ });
697
+ } else if (isRoomMessage) {
690
698
  await channel.sendToRoom(metadata.roomId, text, {
691
699
  metadata: { content_length: text.length }
692
700
  });
@@ -967,6 +975,28 @@ var agentVaultPlugin = {
967
975
  _log?.(`[AgentVault] inbound error: ${String(err)}`);
968
976
  }
969
977
  },
978
+ onA2AMessage: async (msg) => {
979
+ const a2aMetadata = {
980
+ a2aChannelId: msg.channelId,
981
+ fromHubAddress: msg.fromHubAddress,
982
+ conversationId: msg.conversationId,
983
+ timestamp: msg.timestamp,
984
+ parentSpanId: msg.parentSpanId,
985
+ messageId: `a2a:${msg.channelId}:${Date.now()}`
986
+ };
987
+ if (!_ocRuntime) {
988
+ _log?.("[AgentVault] runtime not ready, queuing A2A message");
989
+ _messageQueue.push(async () => {
990
+ await handleInbound({ plaintext: msg.text, metadata: a2aMetadata, channel, account, cfg });
991
+ });
992
+ return;
993
+ }
994
+ try {
995
+ await handleInbound({ plaintext: msg.text, metadata: a2aMetadata, channel, account, cfg });
996
+ } catch (err) {
997
+ _log?.(`[AgentVault] A2A inbound error: ${String(err)}`);
998
+ }
999
+ },
970
1000
  onStateChange: (state) => {
971
1001
  _log?.(`[AgentVault] \u2192 ${state}`);
972
1002
  if (state === "error") reject(new Error("AgentVault channel permanent error"));
@@ -1013,7 +1043,12 @@ var agentVaultPlugin = {
1013
1043
  if (!ch) return { ok: false, error: "AgentVault channel not connected" };
1014
1044
  try {
1015
1045
  const wasReady = ch.state === "ready";
1016
- await ch.send(text);
1046
+ if (to.startsWith("a2a:")) {
1047
+ const hubAddress = to.slice(4);
1048
+ await ch.sendToAgent(hubAddress, text);
1049
+ } else {
1050
+ await ch.send(text);
1051
+ }
1017
1052
  return { ok: true, queued: !wasReady };
1018
1053
  } catch (err) {
1019
1054
  return { ok: false, error: String(err) };
@@ -1027,7 +1062,11 @@ var agentVaultPlugin = {
1027
1062
  const message = text ? `${text}
1028
1063
  ${mediaUrl}` : mediaUrl;
1029
1064
  const wasReady = ch.state === "ready";
1030
- await ch.send(message);
1065
+ if (to.startsWith("a2a:")) {
1066
+ await ch.sendToAgent(to.slice(4), message);
1067
+ } else {
1068
+ await ch.send(message);
1069
+ }
1031
1070
  return { ok: true, queued: !wasReady };
1032
1071
  } catch (err) {
1033
1072
  return { ok: false, error: String(err) };
@@ -1045,17 +1084,25 @@ ${mediaUrl}` : mediaUrl;
1045
1084
  });
1046
1085
  const text = (payload.text ?? "").trim();
1047
1086
  if (!text && !payload.mediaUrls?.length) return { ok: true };
1087
+ const _send = async (msg) => {
1088
+ const target = ctx.to;
1089
+ if (target && typeof target === "string" && target.startsWith("a2a:")) {
1090
+ await ch.sendToAgent(target.slice(4), msg);
1091
+ } else {
1092
+ await ch.send(msg);
1093
+ }
1094
+ };
1048
1095
  if (text) {
1049
- await ch.send(text);
1096
+ await _send(text);
1050
1097
  }
1051
1098
  if (payload.mediaUrls?.length) {
1052
1099
  for (const url of payload.mediaUrls) {
1053
- await ch.send(url);
1100
+ await _send(url);
1054
1101
  }
1055
1102
  }
1056
1103
  if (payload.suggestedActions?.length) {
1057
1104
  const actionsText = payload.suggestedActions.map((a) => `- ${a.label}: ${a.action}`).join("\n");
1058
- await ch.send(`Suggested actions:
1105
+ await _send(`Suggested actions:
1059
1106
  ${actionsText}`);
1060
1107
  }
1061
1108
  return { ok: true };