@clawcrony/claw-crony 1.0.1

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.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +82 -0
  3. package/dist/index.d.ts +17 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +720 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/agent-card.d.ts +4 -0
  8. package/dist/src/agent-card.d.ts.map +1 -0
  9. package/dist/src/agent-card.js +61 -0
  10. package/dist/src/agent-card.js.map +1 -0
  11. package/dist/src/audit.d.ts +36 -0
  12. package/dist/src/audit.d.ts.map +1 -0
  13. package/dist/src/audit.js +88 -0
  14. package/dist/src/audit.js.map +1 -0
  15. package/dist/src/client.d.ts +53 -0
  16. package/dist/src/client.d.ts.map +1 -0
  17. package/dist/src/client.js +322 -0
  18. package/dist/src/client.js.map +1 -0
  19. package/dist/src/executor.d.ts +34 -0
  20. package/dist/src/executor.d.ts.map +1 -0
  21. package/dist/src/executor.js +994 -0
  22. package/dist/src/executor.js.map +1 -0
  23. package/dist/src/file-security.d.ts +63 -0
  24. package/dist/src/file-security.d.ts.map +1 -0
  25. package/dist/src/file-security.js +350 -0
  26. package/dist/src/file-security.js.map +1 -0
  27. package/dist/src/hub-match.d.ts +73 -0
  28. package/dist/src/hub-match.d.ts.map +1 -0
  29. package/dist/src/hub-match.js +120 -0
  30. package/dist/src/hub-match.js.map +1 -0
  31. package/dist/src/hub-registration.d.ts +24 -0
  32. package/dist/src/hub-registration.d.ts.map +1 -0
  33. package/dist/src/hub-registration.js +242 -0
  34. package/dist/src/hub-registration.js.map +1 -0
  35. package/dist/src/internal/envelope.d.ts +33 -0
  36. package/dist/src/internal/envelope.d.ts.map +1 -0
  37. package/dist/src/internal/envelope.js +152 -0
  38. package/dist/src/internal/envelope.js.map +1 -0
  39. package/dist/src/internal/idempotency.d.ts +48 -0
  40. package/dist/src/internal/idempotency.d.ts.map +1 -0
  41. package/dist/src/internal/idempotency.js +82 -0
  42. package/dist/src/internal/idempotency.js.map +1 -0
  43. package/dist/src/internal/metrics.d.ts +38 -0
  44. package/dist/src/internal/metrics.d.ts.map +1 -0
  45. package/dist/src/internal/metrics.js +83 -0
  46. package/dist/src/internal/metrics.js.map +1 -0
  47. package/dist/src/internal/outbox.d.ts +49 -0
  48. package/dist/src/internal/outbox.d.ts.map +1 -0
  49. package/dist/src/internal/outbox.js +149 -0
  50. package/dist/src/internal/outbox.js.map +1 -0
  51. package/dist/src/internal/routing.d.ts +28 -0
  52. package/dist/src/internal/routing.d.ts.map +1 -0
  53. package/dist/src/internal/routing.js +57 -0
  54. package/dist/src/internal/routing.js.map +1 -0
  55. package/dist/src/internal/security.d.ts +53 -0
  56. package/dist/src/internal/security.d.ts.map +1 -0
  57. package/dist/src/internal/security.js +122 -0
  58. package/dist/src/internal/security.js.map +1 -0
  59. package/dist/src/internal/transport.d.ts +49 -0
  60. package/dist/src/internal/transport.d.ts.map +1 -0
  61. package/dist/src/internal/transport.js +207 -0
  62. package/dist/src/internal/transport.js.map +1 -0
  63. package/dist/src/internal/types-internal.d.ts +95 -0
  64. package/dist/src/internal/types-internal.d.ts.map +1 -0
  65. package/dist/src/internal/types-internal.js +9 -0
  66. package/dist/src/internal/types-internal.js.map +1 -0
  67. package/dist/src/peer-health.d.ts +47 -0
  68. package/dist/src/peer-health.d.ts.map +1 -0
  69. package/dist/src/peer-health.js +169 -0
  70. package/dist/src/peer-health.js.map +1 -0
  71. package/dist/src/peer-retry.d.ts +16 -0
  72. package/dist/src/peer-retry.d.ts.map +1 -0
  73. package/dist/src/peer-retry.js +75 -0
  74. package/dist/src/peer-retry.js.map +1 -0
  75. package/dist/src/queueing-executor.d.ts +23 -0
  76. package/dist/src/queueing-executor.d.ts.map +1 -0
  77. package/dist/src/queueing-executor.js +179 -0
  78. package/dist/src/queueing-executor.js.map +1 -0
  79. package/dist/src/routing-rules.d.ts +53 -0
  80. package/dist/src/routing-rules.d.ts.map +1 -0
  81. package/dist/src/routing-rules.js +130 -0
  82. package/dist/src/routing-rules.js.map +1 -0
  83. package/dist/src/task-cleanup.d.ts +21 -0
  84. package/dist/src/task-cleanup.d.ts.map +1 -0
  85. package/dist/src/task-cleanup.js +77 -0
  86. package/dist/src/task-cleanup.js.map +1 -0
  87. package/dist/src/task-store.d.ts +16 -0
  88. package/dist/src/task-store.d.ts.map +1 -0
  89. package/dist/src/task-store.js +80 -0
  90. package/dist/src/task-store.js.map +1 -0
  91. package/dist/src/telemetry.d.ts +88 -0
  92. package/dist/src/telemetry.d.ts.map +1 -0
  93. package/dist/src/telemetry.js +235 -0
  94. package/dist/src/telemetry.js.map +1 -0
  95. package/dist/src/transport-fallback.d.ts +29 -0
  96. package/dist/src/transport-fallback.d.ts.map +1 -0
  97. package/dist/src/transport-fallback.js +81 -0
  98. package/dist/src/transport-fallback.js.map +1 -0
  99. package/dist/src/types.d.ts +160 -0
  100. package/dist/src/types.d.ts.map +1 -0
  101. package/dist/src/types.js +7 -0
  102. package/dist/src/types.js.map +1 -0
  103. package/openclaw.plugin.json +272 -0
  104. package/package.json +56 -0
  105. package/skill/SKILL.md +230 -0
  106. package/skill/references/tools-md-template.md +57 -0
  107. package/skill/scripts/a2a-send.mjs +357 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AgentCard } from "@a2a-js/sdk";
2
+ import type { GatewayConfig } from "./types.js";
3
+ export declare function buildAgentCard(config: GatewayConfig): AgentCard;
4
+ //# sourceMappingURL=agent-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-card.d.ts","sourceRoot":"","sources":["../../src/agent-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,aAAa,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAoBhD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA+C/D"}
@@ -0,0 +1,61 @@
1
+ function toSkill(entry, index) {
2
+ if (typeof entry === "string") {
3
+ return {
4
+ id: `skill-${index + 1}`,
5
+ name: entry,
6
+ description: entry,
7
+ tags: [],
8
+ };
9
+ }
10
+ return {
11
+ id: entry.id || `skill-${index + 1}`,
12
+ name: entry.name,
13
+ description: entry.description || entry.name,
14
+ tags: [],
15
+ };
16
+ }
17
+ export function buildAgentCard(config) {
18
+ const agentCard = config.agentCard || {};
19
+ const server = config.server || { host: "0.0.0.0", port: 18800 };
20
+ const configuredUrl = agentCard.url;
21
+ const fallbackHost = server.host === "0.0.0.0" ? "localhost" : server.host;
22
+ const fallbackUrl = `http://${fallbackHost}:${server.port}/a2a/jsonrpc`;
23
+ const securitySchemes = {};
24
+ const security = [];
25
+ const security_ = config.security || { inboundAuth: "none", token: "" };
26
+ if (security_.inboundAuth === "bearer") {
27
+ securitySchemes["bearer"] = {
28
+ type: "http",
29
+ scheme: "bearer",
30
+ };
31
+ security.push({ bearer: [] });
32
+ }
33
+ const grpcPort = server.port + 1;
34
+ const grpcHost = server.host === "0.0.0.0"
35
+ ? (configuredUrl ? new URL(configuredUrl).hostname : "localhost")
36
+ : server.host;
37
+ return {
38
+ protocolVersion: "0.3.0",
39
+ version: "1.0.0",
40
+ name: agentCard.name || "OpenClaw A2A Gateway",
41
+ description: agentCard.description || "A2A bridge for OpenClaw agents",
42
+ url: configuredUrl || fallbackUrl,
43
+ skills: (agentCard.skills || []).map((entry, index) => toSkill(entry, index)),
44
+ capabilities: {
45
+ streaming: true,
46
+ pushNotifications: false,
47
+ stateTransitionHistory: false,
48
+ },
49
+ securitySchemes,
50
+ security,
51
+ supportsAuthenticatedExtendedCard: false,
52
+ defaultInputModes: ["text"],
53
+ defaultOutputModes: ["text"],
54
+ additionalInterfaces: [
55
+ { url: configuredUrl || fallbackUrl, transport: "JSONRPC" },
56
+ { url: `${new URL(configuredUrl || fallbackUrl).origin}/a2a/rest`, transport: "HTTP+JSON" },
57
+ { url: `${grpcHost}:${grpcPort}`, transport: "GRPC" },
58
+ ],
59
+ };
60
+ }
61
+ //# sourceMappingURL=agent-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-card.js","sourceRoot":"","sources":["../../src/agent-card.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ export type AuditDirection = "inbound" | "outbound";
2
+ export type AuditEventType = "task" | "security";
3
+ export interface AuditEntry {
4
+ ts: string;
5
+ direction: AuditDirection;
6
+ type: AuditEventType;
7
+ taskId?: string;
8
+ contextId?: string;
9
+ peer?: string;
10
+ status: string;
11
+ statusCode?: number;
12
+ durationMs?: number;
13
+ detail?: string;
14
+ }
15
+ /**
16
+ * Append-only JSONL audit logger.
17
+ * Writes one JSON line per A2A call event to a dedicated audit file,
18
+ * separate from the application's structured logs.
19
+ */
20
+ export declare class AuditLogger {
21
+ private readonly filePath;
22
+ private dirEnsured;
23
+ constructor(filePath: string);
24
+ private ensureDir;
25
+ recordInbound(taskId: string, contextId: string, status: string, durationMs: number): void;
26
+ recordOutbound(peer: string, ok: boolean, statusCode: number, durationMs: number): void;
27
+ recordSecurityEvent(surface: string, reason: string): void;
28
+ /**
29
+ * Read the last N entries from the audit log.
30
+ * Returns entries in reverse chronological order (newest first).
31
+ */
32
+ tail(count?: number): Promise<AuditEntry[]>;
33
+ close(): void;
34
+ private write;
35
+ }
36
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/audit.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,cAAc,CAAC;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;gBAEf,QAAQ,EAAE,MAAM;IAI5B,OAAO,CAAC,SAAS;IAMjB,aAAa,CACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,IAAI;IAYP,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI;IAYP,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU1D;;;OAGG;IACG,IAAI,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAoBrD,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,KAAK;CAQd"}
@@ -0,0 +1,88 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import readline from "node:readline";
4
+ /**
5
+ * Append-only JSONL audit logger.
6
+ * Writes one JSON line per A2A call event to a dedicated audit file,
7
+ * separate from the application's structured logs.
8
+ */
9
+ export class AuditLogger {
10
+ filePath;
11
+ dirEnsured = false;
12
+ constructor(filePath) {
13
+ this.filePath = filePath;
14
+ }
15
+ ensureDir() {
16
+ if (this.dirEnsured)
17
+ return;
18
+ this.dirEnsured = true;
19
+ fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
20
+ }
21
+ recordInbound(taskId, contextId, status, durationMs) {
22
+ this.write({
23
+ ts: new Date().toISOString(),
24
+ direction: "inbound",
25
+ type: "task",
26
+ taskId,
27
+ contextId,
28
+ status,
29
+ durationMs,
30
+ });
31
+ }
32
+ recordOutbound(peer, ok, statusCode, durationMs) {
33
+ this.write({
34
+ ts: new Date().toISOString(),
35
+ direction: "outbound",
36
+ type: "task",
37
+ peer,
38
+ status: ok ? "success" : "failure",
39
+ statusCode,
40
+ durationMs,
41
+ });
42
+ }
43
+ recordSecurityEvent(surface, reason) {
44
+ this.write({
45
+ ts: new Date().toISOString(),
46
+ direction: "inbound",
47
+ type: "security",
48
+ status: "rejected",
49
+ detail: `${surface}: ${reason}`,
50
+ });
51
+ }
52
+ /**
53
+ * Read the last N entries from the audit log.
54
+ * Returns entries in reverse chronological order (newest first).
55
+ */
56
+ async tail(count = 50) {
57
+ if (!fs.existsSync(this.filePath))
58
+ return [];
59
+ const entries = [];
60
+ const input = fs.createReadStream(this.filePath, { encoding: "utf-8" });
61
+ const rl = readline.createInterface({ input, crlfDelay: Infinity });
62
+ for await (const line of rl) {
63
+ if (!line.trim())
64
+ continue;
65
+ try {
66
+ entries.push(JSON.parse(line));
67
+ }
68
+ catch {
69
+ // skip malformed lines
70
+ }
71
+ }
72
+ // Return last N in reverse order
73
+ return entries.slice(-count).reverse();
74
+ }
75
+ close() {
76
+ // No-op — appendFileSync has no persistent handles to close
77
+ }
78
+ write(entry) {
79
+ try {
80
+ this.ensureDir();
81
+ fs.appendFileSync(this.filePath, JSON.stringify(entry) + "\n");
82
+ }
83
+ catch {
84
+ // Swallow write errors — audit must not crash the gateway
85
+ }
86
+ }
87
+ }
88
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { OutboundSendResult, PeerConfig, RetryConfig } from "./types.js";
2
+ import type { PeerHealthManager } from "./peer-health.js";
3
+ export declare class A2AClient {
4
+ /**
5
+ * Create a ClientFactory with auth-aware fetch for a given peer.
6
+ */
7
+ private buildFactory;
8
+ /**
9
+ * Discover a peer's Agent Card using the SDK resolver.
10
+ * Used for both card discovery and health probes.
11
+ *
12
+ * @param timeoutMs Override timeout (default 30s; health checks use 5s).
13
+ */
14
+ discoverAgentCard(peer: PeerConfig, timeoutMs?: number): Promise<Record<string, unknown>>;
15
+ /**
16
+ * Send a message to a peer agent using the A2A SDK Client.
17
+ *
18
+ * Implements transport fallback: when the preferred transport fails with a
19
+ * retryable transport error (connection refused, timeout, 5xx), the next
20
+ * available transport (REST → gRPC) is tried automatically.
21
+ *
22
+ * Circuit-breaker and retry-with-backoff are applied on top of the
23
+ * transport fallback loop.
24
+ */
25
+ sendMessage(peer: PeerConfig, message: Record<string, unknown>, options?: {
26
+ healthManager?: PeerHealthManager;
27
+ retryConfig?: RetryConfig;
28
+ log?: (level: "info" | "warn", msg: string, details?: Record<string, unknown>) => void;
29
+ }): Promise<OutboundSendResult>;
30
+ /**
31
+ * Core send logic with automatic transport fallback.
32
+ *
33
+ * 1. Build the outbound A2A message (shared across all transports).
34
+ * 2. Resolve the Agent Card to discover available transports from
35
+ * `additionalInterfaces` and order them by priority (JSON-RPC > REST > gRPC).
36
+ * 3. Try transports in priority order; on retryable transport errors
37
+ * (connection refused, timeout, 5xx) fall back to the next transport.
38
+ * Auth errors (401/403) and A2A protocol errors are NOT retried on
39
+ * a different transport — they would fail identically.
40
+ * 4. When there is only one transport or card resolution fails,
41
+ * fall back to the original single-transport SDK path.
42
+ */
43
+ private doSendMessage;
44
+ /**
45
+ * Send via the SDK's ClientFactory (single-transport path).
46
+ */
47
+ private doSendViaFactory;
48
+ /**
49
+ * Send via a specific transport endpoint (no auth — uses bearer token in serviceParameters).
50
+ */
51
+ private doSendViaTransport;
52
+ }
53
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAqC1D,qBAAa,SAAS;IACpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;;;OAKG;IACG,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAyB/F;;;;;;;;;OASG;IACG,WAAW,CACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,iBAAiB,CAAC;QAClC,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KACxF,GACA,OAAO,CAAC,kBAAkB,CAAC;IAkC9B;;;;;;;;;;;;OAYG;YACW,aAAa;IAyJ3B;;OAEG;YACW,gBAAgB;IAqB9B;;OAEG;YACW,kBAAkB;CA2CjC"}
@@ -0,0 +1,322 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+ import { ClientFactory, ClientFactoryOptions, DefaultAgentCardResolver, JsonRpcTransportFactory, RestTransportFactory, createAuthenticatingFetchWithRetry, } from "@a2a-js/sdk/client";
3
+ import { GrpcTransportFactory } from "@a2a-js/sdk/client/grpc";
4
+ import { withRetry } from "./peer-retry.js";
5
+ import { orderTransports, isRetryableTransportError, } from "./transport-fallback.js";
6
+ /**
7
+ * Build an AuthenticationHandler for bearer or apiKey auth.
8
+ */
9
+ function createAuthHandler(peer) {
10
+ const auth = peer.auth;
11
+ if (!auth?.token)
12
+ return undefined;
13
+ const headerKey = auth.type === "bearer" ? "authorization" : "x-api-key";
14
+ const headerValue = auth.type === "bearer" ? `Bearer ${auth.token}` : auth.token;
15
+ return {
16
+ headers: async () => ({
17
+ [headerKey]: headerValue,
18
+ }),
19
+ shouldRetryWithHeaders: async () => undefined,
20
+ };
21
+ }
22
+ /**
23
+ * Parse agentCardUrl into base URL and path.
24
+ */
25
+ function parseAgentCardUrl(agentCardUrl) {
26
+ const parsed = new URL(agentCardUrl);
27
+ return {
28
+ baseUrl: parsed.origin,
29
+ path: parsed.pathname,
30
+ };
31
+ }
32
+ export class A2AClient {
33
+ /**
34
+ * Create a ClientFactory with auth-aware fetch for a given peer.
35
+ */
36
+ buildFactory(peer) {
37
+ const { baseUrl: _baseUrl, path } = parseAgentCardUrl(peer.agentCardUrl);
38
+ const authHandler = createAuthHandler(peer);
39
+ // Wrap global fetch with auth headers if configured
40
+ const authFetch = authHandler
41
+ ? createAuthenticatingFetchWithRetry(fetch, authHandler)
42
+ : fetch;
43
+ // Inject auth fetch into card resolver and all transports
44
+ const options = ClientFactoryOptions.createFrom(ClientFactoryOptions.default, {
45
+ cardResolver: new DefaultAgentCardResolver({ fetchImpl: authFetch }),
46
+ transports: [
47
+ new JsonRpcTransportFactory({ fetchImpl: authFetch }),
48
+ new RestTransportFactory({ fetchImpl: authFetch }),
49
+ new GrpcTransportFactory(),
50
+ ],
51
+ });
52
+ return { factory: new ClientFactory(options), path };
53
+ }
54
+ /**
55
+ * Discover a peer's Agent Card using the SDK resolver.
56
+ * Used for both card discovery and health probes.
57
+ *
58
+ * @param timeoutMs Override timeout (default 30s; health checks use 5s).
59
+ */
60
+ async discoverAgentCard(peer, timeoutMs = 30_000) {
61
+ const { baseUrl, path } = parseAgentCardUrl(peer.agentCardUrl);
62
+ const { factory } = this.buildFactory(peer);
63
+ // createFromUrl resolves the card internally
64
+ await factory.createFromUrl(baseUrl, path);
65
+ // Re-fetch the card for the return value (lightweight)
66
+ const authHandler = createAuthHandler(peer);
67
+ const headers = authHandler
68
+ ? (await authHandler.headers())
69
+ : {};
70
+ const response = await fetch(`${baseUrl}${path}`, {
71
+ headers,
72
+ signal: AbortSignal.timeout(timeoutMs),
73
+ });
74
+ if (!response.ok) {
75
+ throw new Error(`Agent Card lookup failed with status ${response.status}`);
76
+ }
77
+ return response.json();
78
+ }
79
+ /**
80
+ * Send a message to a peer agent using the A2A SDK Client.
81
+ *
82
+ * Implements transport fallback: when the preferred transport fails with a
83
+ * retryable transport error (connection refused, timeout, 5xx), the next
84
+ * available transport (REST → gRPC) is tried automatically.
85
+ *
86
+ * Circuit-breaker and retry-with-backoff are applied on top of the
87
+ * transport fallback loop.
88
+ */
89
+ async sendMessage(peer, message, options) {
90
+ const healthManager = options?.healthManager;
91
+ const retryConfig = options?.retryConfig;
92
+ // Circuit breaker: reject immediately if peer is unavailable
93
+ if (healthManager && !healthManager.isAvailable(peer.name)) {
94
+ return {
95
+ ok: false,
96
+ statusCode: 503,
97
+ response: { error: `Circuit open: peer "${peer.name}" is unavailable` },
98
+ };
99
+ }
100
+ const doSend = () => this.doSendMessage(peer, message, options?.log);
101
+ let result;
102
+ if (retryConfig && retryConfig.maxRetries > 0) {
103
+ result = await withRetry(doSend, retryConfig, options?.log, peer.name);
104
+ }
105
+ else {
106
+ result = await doSend();
107
+ }
108
+ // Update health manager
109
+ if (healthManager) {
110
+ if (result.ok) {
111
+ healthManager.recordSuccess(peer.name);
112
+ }
113
+ else {
114
+ healthManager.recordFailure(peer.name);
115
+ }
116
+ }
117
+ return result;
118
+ }
119
+ /**
120
+ * Core send logic with automatic transport fallback.
121
+ *
122
+ * 1. Build the outbound A2A message (shared across all transports).
123
+ * 2. Resolve the Agent Card to discover available transports from
124
+ * `additionalInterfaces` and order them by priority (JSON-RPC > REST > gRPC).
125
+ * 3. Try transports in priority order; on retryable transport errors
126
+ * (connection refused, timeout, 5xx) fall back to the next transport.
127
+ * Auth errors (401/403) and A2A protocol errors are NOT retried on
128
+ * a different transport — they would fail identically.
129
+ * 4. When there is only one transport or card resolution fails,
130
+ * fall back to the original single-transport SDK path.
131
+ */
132
+ async doSendMessage(peer, message, log) {
133
+ const { baseUrl, path } = parseAgentCardUrl(peer.agentCardUrl);
134
+ // ------------------------------------------------------------------
135
+ // 1. Build the outbound A2A message
136
+ // ------------------------------------------------------------------
137
+ const targetAgentId = typeof message?.agentId === "string" ? String(message.agentId) : "";
138
+ const outboundMessage = {
139
+ kind: "message",
140
+ messageId: message.messageId || uuidv4(),
141
+ role: message.role || "user",
142
+ parts: message.parts || [
143
+ { kind: "text", text: String(message.text || message.message || "") },
144
+ ],
145
+ };
146
+ if (targetAgentId) {
147
+ outboundMessage.agentId = targetAgentId;
148
+ }
149
+ const sendParams = { message: outboundMessage };
150
+ const serviceParameters = {};
151
+ if (peer.auth?.token) {
152
+ if (peer.auth.type === "bearer") {
153
+ serviceParameters.authorization = `Bearer ${peer.auth.token}`;
154
+ }
155
+ else {
156
+ serviceParameters["x-api-key"] = peer.auth.token;
157
+ }
158
+ }
159
+ const requestOptions = {
160
+ serviceParameters: Object.keys(serviceParameters).length ? serviceParameters : undefined,
161
+ };
162
+ // ------------------------------------------------------------------
163
+ // 2. Resolve Agent Card for transport list
164
+ // ------------------------------------------------------------------
165
+ let transports = [];
166
+ try {
167
+ const resolver = new DefaultAgentCardResolver({
168
+ fetchImpl: peer.auth?.token
169
+ ? createAuthenticatingFetchWithRetry(fetch, createAuthHandler(peer))
170
+ : fetch,
171
+ });
172
+ const agentCard = await resolver.resolve(baseUrl, path);
173
+ const mainTransport = agentCard.preferredTransport ?? "JSONRPC";
174
+ const cardUrl = agentCard.url ?? `${baseUrl}${path}`;
175
+ const allInterfaces = [{ url: cardUrl, transport: mainTransport }];
176
+ const additionalInterfaces = agentCard.additionalInterfaces;
177
+ if (additionalInterfaces) {
178
+ for (const iface of additionalInterfaces) {
179
+ if (iface.url !== cardUrl || iface.transport !== mainTransport) {
180
+ allInterfaces.push({ url: iface.url, transport: iface.transport });
181
+ }
182
+ }
183
+ }
184
+ transports = orderTransports(allInterfaces);
185
+ }
186
+ catch {
187
+ // Card resolution failed — let the SDK pick the default transport
188
+ transports = [];
189
+ }
190
+ // ------------------------------------------------------------------
191
+ // 3. Single-transport fallback path (original)
192
+ // ------------------------------------------------------------------
193
+ if (transports.length <= 1) {
194
+ return this.doSendViaFactory(peer, sendParams, requestOptions);
195
+ }
196
+ // ------------------------------------------------------------------
197
+ // 4. Transport fallback loop
198
+ // ------------------------------------------------------------------
199
+ let lastError;
200
+ for (let i = 0; i < transports.length; i++) {
201
+ const endpoint = transports[i];
202
+ log?.("info", "transport.try", {
203
+ peer: peer.name,
204
+ transport: endpoint.transport,
205
+ url: endpoint.url,
206
+ attempt: i + 1,
207
+ total: transports.length,
208
+ });
209
+ try {
210
+ const result = await this.doSendViaTransport(endpoint, sendParams, requestOptions);
211
+ if (result.ok || !isRetryableTransportError(result)) {
212
+ if (i > 0) {
213
+ log?.("info", "transport.fallback.success", {
214
+ peer: peer.name,
215
+ transport: endpoint.transport,
216
+ url: endpoint.url,
217
+ attemptIndex: i,
218
+ });
219
+ }
220
+ return result;
221
+ }
222
+ // Retryable transport error → try next transport
223
+ lastError = result;
224
+ log?.("warn", "transport.fallback", {
225
+ peer: peer.name,
226
+ failedTransport: endpoint.transport,
227
+ statusCode: result.statusCode,
228
+ error: result.response?.error,
229
+ });
230
+ }
231
+ catch (error) {
232
+ if (!isRetryableTransportError(error)) {
233
+ // Non-retryable error (auth, protocol) → stop immediately
234
+ return {
235
+ ok: false,
236
+ statusCode: 500,
237
+ response: { error: error instanceof Error ? error.message : String(error) },
238
+ };
239
+ }
240
+ // Retryable error → try next transport
241
+ lastError = error;
242
+ log?.("warn", "transport.fallback", {
243
+ peer: peer.name,
244
+ failedTransport: endpoint.transport,
245
+ error: error instanceof Error ? error.message : String(error),
246
+ });
247
+ }
248
+ }
249
+ // All transports exhausted
250
+ const errorMessage = lastError instanceof Error
251
+ ? lastError.message
252
+ : typeof lastError === "object" && lastError !== null && "response" in lastError
253
+ ? lastError.response?.error ?? String(lastError)
254
+ : String(lastError);
255
+ return {
256
+ ok: false,
257
+ statusCode: 500,
258
+ response: { error: `All transports failed for peer "${peer.name}": ${errorMessage}` },
259
+ };
260
+ }
261
+ /**
262
+ * Send via the SDK's ClientFactory (single-transport path).
263
+ */
264
+ async doSendViaFactory(peer, sendParams, requestOptions) {
265
+ const { factory, path } = this.buildFactory(peer);
266
+ try {
267
+ const client = await factory.createFromUrl(peer.agentCardUrl, path);
268
+ const result = await client.sendMessage(sendParams, requestOptions);
269
+ return {
270
+ ok: true,
271
+ statusCode: 200,
272
+ response: result,
273
+ };
274
+ }
275
+ catch (error) {
276
+ // Re-throw so withRetry can classify the error
277
+ throw error;
278
+ }
279
+ }
280
+ /**
281
+ * Send via a specific transport endpoint (no auth — uses bearer token in serviceParameters).
282
+ */
283
+ async doSendViaTransport(endpoint, sendParams, requestOptions) {
284
+ let transport;
285
+ switch (endpoint.transport) {
286
+ case "JSONRPC": {
287
+ const factory = new JsonRpcTransportFactory();
288
+ transport = await factory.create(endpoint.url, {});
289
+ break;
290
+ }
291
+ case "HTTP+JSON": {
292
+ const factory = new RestTransportFactory();
293
+ transport = await factory.create(endpoint.url, {});
294
+ break;
295
+ }
296
+ case "GRPC": {
297
+ const factory = new GrpcTransportFactory();
298
+ transport = await factory.create(endpoint.url, {});
299
+ break;
300
+ }
301
+ default:
302
+ return {
303
+ ok: false,
304
+ statusCode: 500,
305
+ response: { error: `Unsupported transport: ${endpoint.transport}` },
306
+ };
307
+ }
308
+ try {
309
+ const result = await transport.sendMessage(sendParams, requestOptions);
310
+ return {
311
+ ok: true,
312
+ statusCode: 200,
313
+ response: result,
314
+ };
315
+ }
316
+ catch (error) {
317
+ // Re-throw so the fallback loop can classify the error
318
+ throw error;
319
+ }
320
+ }
321
+ }
322
+ //# sourceMappingURL=client.js.map