@perkos/perkos-a2a 0.8.21 → 0.8.23

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":"agentic-actions.d.ts","sourceRoot":"","sources":["../src/agentic-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE,CAAC;AAEF,KAAK,MAAM,GAAG;IAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,CAAC;AAwG1F,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8EnB"}
1
+ {"version":3,"file":"agentic-actions.d.ts","sourceRoot":"","sources":["../src/agentic-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE,CAAC;AAEF,KAAK,MAAM,GAAG;IAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,CAAC;AAuK1F,wBAAsB,oBAAoB,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwGnB"}
@@ -16,8 +16,16 @@ function requestedMarker(text, fallback) {
16
16
  }
17
17
  return fallback;
18
18
  }
19
+ function stripDelegationNoise(text) {
20
+ return text
21
+ .replace(/^Delegated by .*?\.\s*/i, "")
22
+ .replace(/^Delegated request:\s*/i, "")
23
+ .replace(/^A2A-DELEGATION[^\n]*\n?/gim, "")
24
+ .replace(/End with DELEGATED_A2A_DONE\.?/gi, "")
25
+ .trim();
26
+ }
19
27
  function detectTarget(text, selfName) {
20
- const routingText = text.replace(/^Delegated by .*?\.\s*/i, "");
28
+ const routingText = stripDelegationNoise(text);
21
29
  const candidates = [
22
30
  ["Perkos-Claw-Tester", ["perkos-claw-tester", "openclaw", "open claw", "claw"]],
23
31
  ["Perkos-Hermes-Tester", ["perkos-hermes-tester", "hermes"]],
@@ -32,13 +40,14 @@ function detectTarget(text, selfName) {
32
40
  return undefined;
33
41
  }
34
42
  function detectReplyTarget(text, selfName) {
35
- if (selfName !== "Morpheus-A2A-Receiver" && includesAny(text, ["morpheus-a2a-receiver", "morpheus"])) {
43
+ const routingText = stripDelegationNoise(text);
44
+ if (selfName !== "Morpheus-A2A-Receiver" && includesAny(routingText, ["morpheus-a2a-receiver", "morpheus"])) {
36
45
  return "Morpheus-A2A-Receiver";
37
46
  }
38
- if (selfName !== "Perkos-Claw-Tester" && includesAny(text, ["perkos-claw-tester", "openclaw", "open claw"])) {
47
+ if (selfName !== "Perkos-Claw-Tester" && includesAny(routingText, ["perkos-claw-tester", "openclaw", "open claw"])) {
39
48
  return "Perkos-Claw-Tester";
40
49
  }
41
- if (selfName !== "Perkos-Hermes-Tester" && includesAny(text, ["perkos-hermes-tester", "hermes"])) {
50
+ if (selfName !== "Perkos-Hermes-Tester" && includesAny(routingText, ["perkos-hermes-tester", "hermes"])) {
42
51
  return "Perkos-Hermes-Tester";
43
52
  }
44
53
  return undefined;
@@ -102,11 +111,67 @@ function extractTaskFinalText(result) {
102
111
  }
103
112
  return snippets.at(-1) || JSON.stringify(result);
104
113
  }
114
+ function hasA2ARelayExplainTask(text) {
115
+ return includesAny(text, ["a2a relay", "relay a2a", "qué es un a2a relay", "what an a2a relay is"]);
116
+ }
117
+ function answerA2ARelay(selfName) {
118
+ return [
119
+ `${selfName} result:`,
120
+ "An A2A relay is a transport/router that lets agents exchange tasks and responses by agent name even when they are behind NAT, on different runtimes, or on the same host with different ports.",
121
+ "It handles registration, discovery, message routing, heartbeats, and delivery fallback while each agent keeps its own runtime and local permissions.",
122
+ ].join("\n");
123
+ }
124
+ function delegationDepth(text) {
125
+ const match = text.match(/A2A-DELEGATION[^\n]*depth=(\d+)/i);
126
+ return match?.[1] ? Number(match[1]) : 0;
127
+ }
128
+ function buildDelegatedMessage(input) {
129
+ const { originalText, selfName, target, marker } = input;
130
+ const depth = delegationDepth(originalText) + 1;
131
+ const clean = stripDelegationNoise(originalText);
132
+ const header = `A2A-DELEGATION origin=${selfName} target=${target} depth=${depth}`;
133
+ if (hasA2ARelayExplainTask(clean)) {
134
+ if (target === "Perkos-Hermes-Tester") {
135
+ return [
136
+ header,
137
+ "Complete this task directly. Briefly explain what an A2A relay is and why agents use it.",
138
+ "Do not delegate this request further unless explicitly required by a new instruction.",
139
+ "End with DELEGATED_A2A_DONE.",
140
+ ].join("\n");
141
+ }
142
+ return [
143
+ header,
144
+ "Use A2A to ask Perkos-Hermes-Tester to briefly explain what an A2A relay is and why agents use it.",
145
+ "Return Hermes' useful result in your response.",
146
+ `End exactly with ${marker}.`,
147
+ ].join("\n");
148
+ }
149
+ return [
150
+ header,
151
+ "Complete or delegate the following task once. Do not echo this request back to agents already named in the route.",
152
+ clean,
153
+ `End exactly with ${marker}.`,
154
+ ].join("\n");
155
+ }
105
156
  export async function tryHandleAgenticTask(input) {
106
157
  const { selfName, server, task, text, logger } = input;
107
- const wantsDelegation = includesAny(text, ["usa comunicación a2a", "usar comunicación a2a", "pídele", "dile a", "delegate", "delegar", "tell", "ask"]);
158
+ const cleanText = stripDelegationNoise(text);
159
+ const wantsDelegation = includesAny(cleanText, ["usa comunicación a2a", "usar comunicación a2a", "pídele", "dile a", "delegate", "delegar", "tell", "ask"]);
108
160
  const wantsEthResearch = includesAny(text, ["precio de eth", "eth price", "ethereum price", "precio actual de eth"]);
109
161
  const wantsReply = includesAny(text, ["responda a", "envíe", "envia", "send", "reply", "morpheus"]);
162
+ if (includesAny(text, ["A2A_COMM_TEST", "communication test", "ping test"])) {
163
+ const marker = requestedMarker(text, "A2A_COMM_OK");
164
+ completeTaskWithReply(task, [
165
+ `${selfName} received and completed the A2A communication test.`,
166
+ marker,
167
+ ].join("\n"));
168
+ return true;
169
+ }
170
+ if (hasA2ARelayExplainTask(cleanText) && (!wantsDelegation || cleanText.toLowerCase().startsWith("complete this task directly"))) {
171
+ const marker = requestedMarker(text, "DELEGATED_A2A_DONE");
172
+ completeTaskWithReply(task, [answerA2ARelay(selfName), "", marker].join("\n"));
173
+ return true;
174
+ }
110
175
  if (wantsEthResearch && (!wantsDelegation || text.trim().toLowerCase().startsWith("delegated research request"))) {
111
176
  const research = await researchEthPrice();
112
177
  const replyTarget = wantsReply ? detectReplyTarget(text, selfName) : undefined;
@@ -136,15 +201,25 @@ export async function tryHandleAgenticTask(input) {
136
201
  const target = detectTarget(text, selfName);
137
202
  if (!target)
138
203
  return false;
204
+ if (delegationDepth(text) >= 4) {
205
+ completeTaskWithReply(task, [
206
+ `A2A delegation stopped by ${selfName}: max delegation depth reached.`,
207
+ "This prevents routing loops across heterogeneous agents.",
208
+ requestedMarker(text, "A2A_DELEGATION_STOPPED"),
209
+ ].join("\n"));
210
+ return true;
211
+ }
139
212
  const replyTarget = wantsReply ? detectReplyTarget(text, selfName) : undefined;
213
+ const finalMarker = requestedMarker(text, "TRI_HERMES_DONE");
140
214
  const delegatedMessage = wantsEthResearch
141
215
  ? [
216
+ `A2A-DELEGATION origin=${selfName} target=${target} depth=${delegationDepth(text) + 1}`,
142
217
  "Delegated research request. Research the current ETH price using available live/public APIs.",
143
218
  "Return concise findings with source names, timestamp if available, and limitations.",
144
219
  replyTarget ? `If possible, send the final result to ${replyTarget} via A2A.` : "",
145
220
  "End with DELEGATED_ETH_RESEARCH_DONE.",
146
221
  ].filter(Boolean).join("\n")
147
- : `Delegated request: ${text}\nEnd with DELEGATED_A2A_DONE.`;
222
+ : buildDelegatedMessage({ originalText: text, selfName, target, marker: finalMarker });
148
223
  logger.info(`[perkos-a2a] Agentic delegation: ${selfName} -> ${target}${replyTarget ? ` -> ${replyTarget}` : ""}`);
149
224
  const delegatedResult = await server.sendTask(target, delegatedMessage);
150
225
  const delegatedText = extractTaskFinalText(delegatedResult);
@@ -160,7 +235,6 @@ export async function tryHandleAgenticTask(input) {
160
235
  const replyResult = await server.sendTask(replyTarget, replyMessage);
161
236
  replyResultText = extractTaskFinalText(replyResult);
162
237
  }
163
- const finalMarker = requestedMarker(text, "TRI_HERMES_DONE");
164
238
  completeTaskWithReply(task, [
165
239
  `Agentic A2A delegation completed by ${selfName}.`,
166
240
  `Delegated target: ${target}`,
@@ -1 +1 @@
1
- {"version":3,"file":"agentic-actions.js","sourceRoot":"","sources":["../src/agentic-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentic-actions.js","sourceRoot":"","sources":["../src/agentic-actions.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -27357,8 +27357,11 @@ function requestedMarker(text, fallback) {
27357
27357
  }
27358
27358
  return fallback;
27359
27359
  }
27360
+ function stripDelegationNoise(text) {
27361
+ return text.replace(/^Delegated by .*?\.\s*/i, "").replace(/^Delegated request:\s*/i, "").replace(/^A2A-DELEGATION[^\n]*\n?/gim, "").replace(/End with DELEGATED_A2A_DONE\.?/gi, "").trim();
27362
+ }
27360
27363
  function detectTarget(text, selfName) {
27361
- const routingText = text.replace(/^Delegated by .*?\.\s*/i, "");
27364
+ const routingText = stripDelegationNoise(text);
27362
27365
  const candidates = [
27363
27366
  ["Perkos-Claw-Tester", ["perkos-claw-tester", "openclaw", "open claw", "claw"]],
27364
27367
  ["Perkos-Hermes-Tester", ["perkos-hermes-tester", "hermes"]],
@@ -27371,13 +27374,14 @@ function detectTarget(text, selfName) {
27371
27374
  return void 0;
27372
27375
  }
27373
27376
  function detectReplyTarget(text, selfName) {
27374
- if (selfName !== "Morpheus-A2A-Receiver" && includesAny(text, ["morpheus-a2a-receiver", "morpheus"])) {
27377
+ const routingText = stripDelegationNoise(text);
27378
+ if (selfName !== "Morpheus-A2A-Receiver" && includesAny(routingText, ["morpheus-a2a-receiver", "morpheus"])) {
27375
27379
  return "Morpheus-A2A-Receiver";
27376
27380
  }
27377
- if (selfName !== "Perkos-Claw-Tester" && includesAny(text, ["perkos-claw-tester", "openclaw", "open claw"])) {
27381
+ if (selfName !== "Perkos-Claw-Tester" && includesAny(routingText, ["perkos-claw-tester", "openclaw", "open claw"])) {
27378
27382
  return "Perkos-Claw-Tester";
27379
27383
  }
27380
- if (selfName !== "Perkos-Hermes-Tester" && includesAny(text, ["perkos-hermes-tester", "hermes"])) {
27384
+ if (selfName !== "Perkos-Hermes-Tester" && includesAny(routingText, ["perkos-hermes-tester", "hermes"])) {
27381
27385
  return "Perkos-Hermes-Tester";
27382
27386
  }
27383
27387
  return void 0;
@@ -27433,11 +27437,67 @@ function extractTaskFinalText(result) {
27433
27437
  }
27434
27438
  return snippets.at(-1) || JSON.stringify(result);
27435
27439
  }
27440
+ function hasA2ARelayExplainTask(text) {
27441
+ return includesAny(text, ["a2a relay", "relay a2a", "qu\xE9 es un a2a relay", "what an a2a relay is"]);
27442
+ }
27443
+ function answerA2ARelay(selfName) {
27444
+ return [
27445
+ `${selfName} result:`,
27446
+ "An A2A relay is a transport/router that lets agents exchange tasks and responses by agent name even when they are behind NAT, on different runtimes, or on the same host with different ports.",
27447
+ "It handles registration, discovery, message routing, heartbeats, and delivery fallback while each agent keeps its own runtime and local permissions."
27448
+ ].join("\n");
27449
+ }
27450
+ function delegationDepth(text) {
27451
+ const match = text.match(/A2A-DELEGATION[^\n]*depth=(\d+)/i);
27452
+ return match?.[1] ? Number(match[1]) : 0;
27453
+ }
27454
+ function buildDelegatedMessage(input) {
27455
+ const { originalText, selfName, target, marker } = input;
27456
+ const depth = delegationDepth(originalText) + 1;
27457
+ const clean = stripDelegationNoise(originalText);
27458
+ const header = `A2A-DELEGATION origin=${selfName} target=${target} depth=${depth}`;
27459
+ if (hasA2ARelayExplainTask(clean)) {
27460
+ if (target === "Perkos-Hermes-Tester") {
27461
+ return [
27462
+ header,
27463
+ "Complete this task directly. Briefly explain what an A2A relay is and why agents use it.",
27464
+ "Do not delegate this request further unless explicitly required by a new instruction.",
27465
+ "End with DELEGATED_A2A_DONE."
27466
+ ].join("\n");
27467
+ }
27468
+ return [
27469
+ header,
27470
+ "Use A2A to ask Perkos-Hermes-Tester to briefly explain what an A2A relay is and why agents use it.",
27471
+ "Return Hermes' useful result in your response.",
27472
+ `End exactly with ${marker}.`
27473
+ ].join("\n");
27474
+ }
27475
+ return [
27476
+ header,
27477
+ "Complete or delegate the following task once. Do not echo this request back to agents already named in the route.",
27478
+ clean,
27479
+ `End exactly with ${marker}.`
27480
+ ].join("\n");
27481
+ }
27436
27482
  async function tryHandleAgenticTask(input) {
27437
27483
  const { selfName, server, task, text, logger } = input;
27438
- const wantsDelegation = includesAny(text, ["usa comunicaci\xF3n a2a", "usar comunicaci\xF3n a2a", "p\xEDdele", "dile a", "delegate", "delegar", "tell", "ask"]);
27484
+ const cleanText = stripDelegationNoise(text);
27485
+ const wantsDelegation = includesAny(cleanText, ["usa comunicaci\xF3n a2a", "usar comunicaci\xF3n a2a", "p\xEDdele", "dile a", "delegate", "delegar", "tell", "ask"]);
27439
27486
  const wantsEthResearch = includesAny(text, ["precio de eth", "eth price", "ethereum price", "precio actual de eth"]);
27440
27487
  const wantsReply = includesAny(text, ["responda a", "env\xEDe", "envia", "send", "reply", "morpheus"]);
27488
+ if (includesAny(text, ["A2A_COMM_TEST", "communication test", "ping test"])) {
27489
+ const marker = requestedMarker(text, "A2A_COMM_OK");
27490
+ completeTaskWithReply(task, [
27491
+ `${selfName} received and completed the A2A communication test.`,
27492
+ marker
27493
+ ].join("\n"));
27494
+ return true;
27495
+ }
27496
+ if (hasA2ARelayExplainTask(cleanText) && (!wantsDelegation || cleanText.toLowerCase().startsWith("complete this task directly"))) {
27497
+ const marker = requestedMarker(text, "DELEGATED_A2A_DONE");
27498
+ completeTaskWithReply(task, [answerA2ARelay(selfName), "", marker].join("\n"));
27499
+ return true;
27500
+ }
27441
27501
  if (wantsEthResearch && (!wantsDelegation || text.trim().toLowerCase().startsWith("delegated research request"))) {
27442
27502
  const research = await researchEthPrice();
27443
27503
  const replyTarget2 = wantsReply ? detectReplyTarget(text, selfName) : void 0;
@@ -27466,14 +27526,23 @@ ${replyResultText2}` : void 0,
27466
27526
  if (!wantsDelegation) return false;
27467
27527
  const target = detectTarget(text, selfName);
27468
27528
  if (!target) return false;
27529
+ if (delegationDepth(text) >= 4) {
27530
+ completeTaskWithReply(task, [
27531
+ `A2A delegation stopped by ${selfName}: max delegation depth reached.`,
27532
+ "This prevents routing loops across heterogeneous agents.",
27533
+ requestedMarker(text, "A2A_DELEGATION_STOPPED")
27534
+ ].join("\n"));
27535
+ return true;
27536
+ }
27469
27537
  const replyTarget = wantsReply ? detectReplyTarget(text, selfName) : void 0;
27538
+ const finalMarker = requestedMarker(text, "TRI_HERMES_DONE");
27470
27539
  const delegatedMessage = wantsEthResearch ? [
27540
+ `A2A-DELEGATION origin=${selfName} target=${target} depth=${delegationDepth(text) + 1}`,
27471
27541
  "Delegated research request. Research the current ETH price using available live/public APIs.",
27472
27542
  "Return concise findings with source names, timestamp if available, and limitations.",
27473
27543
  replyTarget ? `If possible, send the final result to ${replyTarget} via A2A.` : "",
27474
27544
  "End with DELEGATED_ETH_RESEARCH_DONE."
27475
- ].filter(Boolean).join("\n") : `Delegated request: ${text}
27476
- End with DELEGATED_A2A_DONE.`;
27545
+ ].filter(Boolean).join("\n") : buildDelegatedMessage({ originalText: text, selfName, target, marker: finalMarker });
27477
27546
  logger.info(`[perkos-a2a] Agentic delegation: ${selfName} -> ${target}${replyTarget ? ` -> ${replyTarget}` : ""}`);
27478
27547
  const delegatedResult = await server.sendTask(target, delegatedMessage);
27479
27548
  const delegatedText = extractTaskFinalText(delegatedResult);
@@ -27489,7 +27558,6 @@ End with DELEGATED_A2A_DONE.`;
27489
27558
  const replyResult = await server.sendTask(replyTarget, replyMessage);
27490
27559
  replyResultText = extractTaskFinalText(replyResult);
27491
27560
  }
27492
- const finalMarker = requestedMarker(text, "TRI_HERMES_DONE");
27493
27561
  completeTaskWithReply(task, [
27494
27562
  `Agentic A2A delegation completed by ${selfName}.`,
27495
27563
  `Delegated target: ${target}`,