aether-agent-sdk 1.0.0 → 1.0.3

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -185
  3. package/dist/src/agents/AgentRegistry.d.ts +48 -0
  4. package/dist/src/agents/AgentRegistry.d.ts.map +1 -0
  5. package/dist/src/agents/AgentRegistry.js +114 -0
  6. package/dist/src/agents/AgentRegistry.js.map +1 -0
  7. package/dist/src/agents/AnalyzerAgent.d.ts +18 -0
  8. package/dist/src/agents/AnalyzerAgent.d.ts.map +1 -0
  9. package/dist/src/agents/AnalyzerAgent.js +129 -0
  10. package/dist/src/agents/AnalyzerAgent.js.map +1 -0
  11. package/dist/src/agents/IntelligentVerifierAgent.d.ts +46 -0
  12. package/dist/src/agents/IntelligentVerifierAgent.d.ts.map +1 -0
  13. package/dist/src/agents/IntelligentVerifierAgent.js +262 -0
  14. package/dist/src/agents/IntelligentVerifierAgent.js.map +1 -0
  15. package/dist/src/agents/SettlementAgent.d.ts +14 -0
  16. package/dist/src/agents/SettlementAgent.d.ts.map +1 -0
  17. package/dist/src/agents/SettlementAgent.js +155 -0
  18. package/dist/src/agents/SettlementAgent.js.map +1 -0
  19. package/dist/src/agents/SettlementAgentEnhanced.d.ts +33 -0
  20. package/dist/src/agents/SettlementAgentEnhanced.d.ts.map +1 -0
  21. package/dist/src/agents/SettlementAgentEnhanced.js +219 -0
  22. package/dist/src/agents/SettlementAgentEnhanced.js.map +1 -0
  23. package/dist/src/agents/VerifierAgent.d.ts +30 -0
  24. package/dist/src/agents/VerifierAgent.d.ts.map +1 -0
  25. package/dist/src/agents/VerifierAgent.js +181 -0
  26. package/dist/src/agents/VerifierAgent.js.map +1 -0
  27. package/dist/src/agents/index.d.ts +7 -0
  28. package/dist/src/agents/index.d.ts.map +1 -0
  29. package/dist/src/agents/index.js +11 -0
  30. package/dist/src/agents/index.js.map +1 -0
  31. package/dist/src/facilitator/X402FacilitatorServer.d.ts +17 -0
  32. package/dist/src/facilitator/X402FacilitatorServer.d.ts.map +1 -0
  33. package/dist/src/facilitator/X402FacilitatorServer.js +176 -0
  34. package/dist/src/facilitator/X402FacilitatorServer.js.map +1 -0
  35. package/dist/src/facilitator/index.d.ts +7 -0
  36. package/dist/src/facilitator/index.d.ts.map +1 -0
  37. package/dist/src/facilitator/index.js +11 -0
  38. package/dist/src/facilitator/index.js.map +1 -0
  39. package/dist/src/index.d.ts +19 -0
  40. package/dist/src/index.d.ts.map +1 -0
  41. package/dist/src/index.js +39 -0
  42. package/dist/src/index.js.map +1 -0
  43. package/dist/src/modes/HumanInTheLoopMode.d.ts +92 -0
  44. package/dist/src/modes/HumanInTheLoopMode.d.ts.map +1 -0
  45. package/dist/src/modes/HumanInTheLoopMode.js +234 -0
  46. package/dist/src/modes/HumanInTheLoopMode.js.map +1 -0
  47. package/dist/src/modes/index.d.ts +8 -0
  48. package/dist/src/modes/index.d.ts.map +1 -0
  49. package/dist/src/modes/index.js +11 -0
  50. package/dist/src/modes/index.js.map +1 -0
  51. package/dist/src/protocols/A2ANegotiation.d.ts +122 -0
  52. package/dist/src/protocols/A2ANegotiation.d.ts.map +1 -0
  53. package/dist/src/protocols/A2ANegotiation.js +230 -0
  54. package/dist/src/protocols/A2ANegotiation.js.map +1 -0
  55. package/dist/src/protocols/A2AProtocol.d.ts +49 -0
  56. package/dist/src/protocols/A2AProtocol.d.ts.map +1 -0
  57. package/dist/src/protocols/A2AProtocol.js +126 -0
  58. package/dist/src/protocols/A2AProtocol.js.map +1 -0
  59. package/dist/src/protocols/AP2Protocol.d.ts +57 -0
  60. package/dist/src/protocols/AP2Protocol.d.ts.map +1 -0
  61. package/dist/src/protocols/AP2Protocol.js +121 -0
  62. package/dist/src/protocols/AP2Protocol.js.map +1 -0
  63. package/dist/src/protocols/index.d.ts +10 -0
  64. package/dist/src/protocols/index.d.ts.map +1 -0
  65. package/dist/src/protocols/index.js +15 -0
  66. package/dist/src/protocols/index.js.map +1 -0
  67. package/dist/src/services/index.d.ts +8 -0
  68. package/dist/src/services/index.d.ts.map +1 -0
  69. package/dist/src/services/index.js +13 -0
  70. package/dist/src/services/index.js.map +1 -0
  71. package/dist/src/utils/env.d.ts +15 -0
  72. package/dist/src/utils/env.d.ts.map +1 -0
  73. package/dist/src/utils/env.js +39 -0
  74. package/dist/src/utils/env.js.map +1 -0
  75. package/dist/src/utils/index.d.ts +7 -0
  76. package/dist/src/utils/index.d.ts.map +1 -0
  77. package/dist/src/utils/index.js +12 -0
  78. package/dist/src/utils/index.js.map +1 -0
  79. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ /**
2
+ * A2A Agent Negotiation Protocol
3
+ *
4
+ * This module implements negotiation logic for agents to:
5
+ * - Negotiate payment terms
6
+ * - Handle counter-offers
7
+ * - Manage negotiation timeouts
8
+ * - Track negotiation history
9
+ *
10
+ * Used for the hackathon bounty "Best Use of Hedera Agent Kit & Google A2A"
11
+ */
12
+ import { A2AProtocol, A2AMessage } from './A2AProtocol';
13
+ /**
14
+ * Negotiation State
15
+ */
16
+ export declare enum NegotiationState {
17
+ PENDING = "pending",
18
+ IN_PROGRESS = "in_progress",
19
+ AGREED = "agreed",
20
+ REJECTED = "rejected",
21
+ TIMEOUT = "timeout"
22
+ }
23
+ /**
24
+ * Negotiation Proposal
25
+ */
26
+ export interface NegotiationProposal {
27
+ proposalId: string;
28
+ negotiationType: "payment" | "service" | "delivery";
29
+ from: string;
30
+ to: string;
31
+ currentOffer: any;
32
+ history: NegotiationEntry[];
33
+ state: NegotiationState;
34
+ createdAt: number;
35
+ expiresAt: number;
36
+ }
37
+ /**
38
+ * Negotiation Entry in History
39
+ */
40
+ export interface NegotiationEntry {
41
+ timestamp: number;
42
+ agentId: string;
43
+ action: "propose" | "counter" | "accept" | "reject";
44
+ proposal: any;
45
+ message?: string;
46
+ }
47
+ /**
48
+ * A2A Negotiation Protocol Implementation
49
+ */
50
+ export declare class A2ANegotiation {
51
+ private a2a;
52
+ private negotiations;
53
+ private readonly NEGOTIATION_TIMEOUT;
54
+ constructor(a2a: A2AProtocol);
55
+ /**
56
+ * Start a new negotiation
57
+ */
58
+ startNegotiation(negotiationType: "payment" | "service" | "delivery", receiverAgentId: string, initialOffer: any): string;
59
+ /**
60
+ * Process incoming negotiation message
61
+ */
62
+ processNegotiationMessage(message: A2AMessage): Promise<A2ANegotiationResult | null>;
63
+ /**
64
+ * Process counter-offer
65
+ */
66
+ private processCounterOffer;
67
+ /**
68
+ * Process acceptance
69
+ */
70
+ private processAcceptance;
71
+ /**
72
+ * Process rejection
73
+ */
74
+ private processRejection;
75
+ /**
76
+ * Counter-offer in an existing negotiation
77
+ */
78
+ sendCounterOffer(proposalId: string, counterOffer: any): Promise<void>;
79
+ /**
80
+ * Accept a negotiation
81
+ */
82
+ acceptNegotiation(proposalId: string): Promise<void>;
83
+ /**
84
+ * Get negotiation by ID
85
+ */
86
+ getNegotiation(proposalId: string): NegotiationProposal | null;
87
+ /**
88
+ * Get all active negotiations
89
+ */
90
+ getActiveNegotiations(): NegotiationProposal[];
91
+ }
92
+ /**
93
+ * Negotiation Result
94
+ */
95
+ export interface A2ANegotiationResult {
96
+ proposalId: string;
97
+ state: NegotiationState;
98
+ currentOffer: any;
99
+ action: "counter" | "accept" | "reject";
100
+ }
101
+ /**
102
+ * Payment Negotiation Example Flow:
103
+ *
104
+ * SettlementAgent: "I propose 1 USDC payment"
105
+ * → creates negotiation with proposalId: "pay-123"
106
+ * → sends A2A request with initialOffer: { amount: 1, currency: "USDC" }
107
+ *
108
+ * MerchantAgent: "I counter-propose 1.5 USDC"
109
+ * → receives negotiation "pay-123"
110
+ * → calls processCounterOffer with proposal: { amount: 1.5, currency: "USDC" }
111
+ * → sends A2A request back with counter offer
112
+ *
113
+ * SettlementAgent: "I accept 1.2 USDC"
114
+ * → receives counter offer
115
+ * → sends A2A response with final offer: { amount: 1.2, currency: "USDC" }
116
+ *
117
+ * MerchantAgent: "Agreed, proceed with 1.2 USDC"
118
+ * → calls acceptNegotiation("pay-123")
119
+ * → negotiation.state becomes AGREED
120
+ * → settlement proceeds
121
+ */
122
+ //# sourceMappingURL=A2ANegotiation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2ANegotiation.d.ts","sourceRoot":"","sources":["../../../src/protocols/A2ANegotiation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAGvD;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,GAAG,CAAA;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,KAAK,EAAE,gBAAgB,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;IACnD,QAAQ,EAAE,GAAG,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAQ;gBAEhC,GAAG,EAAE,WAAW;IAI5B;;OAEG;IACH,gBAAgB,CACd,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,EACnD,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,GAAG,GAChB,MAAM;IAuCT;;OAEG;IACG,yBAAyB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAgC1F;;OAEG;YACW,mBAAmB;IAuBjC;;OAEG;YACW,iBAAiB;IAsB/B;;OAEG;YACW,gBAAgB;IAsB9B;;OAEG;IACG,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB5E;;OAEG;IACG,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB1D;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAI9D;;OAEG;IACH,qBAAqB,IAAI,mBAAmB,EAAE;CAI/C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,gBAAgB,CAAA;IACvB,YAAY,EAAE,GAAG,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAA;CACxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ /**
3
+ * A2A Agent Negotiation Protocol
4
+ *
5
+ * This module implements negotiation logic for agents to:
6
+ * - Negotiate payment terms
7
+ * - Handle counter-offers
8
+ * - Manage negotiation timeouts
9
+ * - Track negotiation history
10
+ *
11
+ * Used for the hackathon bounty "Best Use of Hedera Agent Kit & Google A2A"
12
+ */
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.A2ANegotiation = exports.NegotiationState = void 0;
18
+ const chalk_1 = __importDefault(require("chalk"));
19
+ /**
20
+ * Negotiation State
21
+ */
22
+ var NegotiationState;
23
+ (function (NegotiationState) {
24
+ NegotiationState["PENDING"] = "pending";
25
+ NegotiationState["IN_PROGRESS"] = "in_progress";
26
+ NegotiationState["AGREED"] = "agreed";
27
+ NegotiationState["REJECTED"] = "rejected";
28
+ NegotiationState["TIMEOUT"] = "timeout";
29
+ })(NegotiationState || (exports.NegotiationState = NegotiationState = {}));
30
+ /**
31
+ * A2A Negotiation Protocol Implementation
32
+ */
33
+ class A2ANegotiation {
34
+ a2a;
35
+ negotiations = new Map();
36
+ NEGOTIATION_TIMEOUT = 60000; // 60 seconds
37
+ constructor(a2a) {
38
+ this.a2a = a2a;
39
+ }
40
+ /**
41
+ * Start a new negotiation
42
+ */
43
+ startNegotiation(negotiationType, receiverAgentId, initialOffer) {
44
+ const proposalId = `negotiation-${Date.now()}-${Math.random().toString(36).substring(7)}`;
45
+ const proposal = {
46
+ proposalId,
47
+ negotiationType,
48
+ from: this.a2a['agentId'],
49
+ to: receiverAgentId,
50
+ currentOffer: initialOffer,
51
+ history: [{
52
+ timestamp: Date.now(),
53
+ agentId: this.a2a['agentId'],
54
+ action: "propose",
55
+ proposal: initialOffer
56
+ }],
57
+ state: NegotiationState.PENDING,
58
+ createdAt: Date.now(),
59
+ expiresAt: Date.now() + this.NEGOTIATION_TIMEOUT
60
+ };
61
+ this.negotiations.set(proposalId, proposal);
62
+ // Set timeout
63
+ setTimeout(() => {
64
+ if (this.negotiations.has(proposalId)) {
65
+ const neg = this.negotiations.get(proposalId);
66
+ if (neg.state === NegotiationState.PENDING || neg.state === NegotiationState.IN_PROGRESS) {
67
+ neg.state = NegotiationState.TIMEOUT;
68
+ console.log(chalk_1.default.yellow(`⏰ Negotiation ${proposalId} timed out`));
69
+ this.negotiations.set(proposalId, neg);
70
+ }
71
+ }
72
+ }, this.NEGOTIATION_TIMEOUT);
73
+ console.log(chalk_1.default.blue(`🚀 Starting ${negotiationType} negotiation ${proposalId}`));
74
+ return proposalId;
75
+ }
76
+ /**
77
+ * Process incoming negotiation message
78
+ */
79
+ async processNegotiationMessage(message) {
80
+ const payload = message.payload;
81
+ if (!payload || payload.type !== "negotiation") {
82
+ return null;
83
+ }
84
+ const action = payload.action;
85
+ const proposalId = payload.proposalId;
86
+ console.log(chalk_1.default.blue(`💬 Processing negotiation ${action} for ${proposalId}`));
87
+ const negotiation = this.negotiations.get(proposalId);
88
+ if (!negotiation) {
89
+ console.log(chalk_1.default.yellow(`⚠️ Unknown negotiation ${proposalId}`));
90
+ return null;
91
+ }
92
+ switch (action) {
93
+ case "counter":
94
+ return await this.processCounterOffer(negotiation, payload.proposal);
95
+ case "accept":
96
+ return await this.processAcceptance(negotiation);
97
+ case "reject":
98
+ return await this.processRejection(negotiation);
99
+ default:
100
+ console.log(chalk_1.default.yellow(`⚠️ Unknown action: ${action}`));
101
+ return null;
102
+ }
103
+ }
104
+ /**
105
+ * Process counter-offer
106
+ */
107
+ async processCounterOffer(negotiation, proposal) {
108
+ negotiation.currentOffer = proposal;
109
+ negotiation.state = NegotiationState.IN_PROGRESS;
110
+ negotiation.history.push({
111
+ timestamp: Date.now(),
112
+ agentId: negotiation.to,
113
+ action: "counter",
114
+ proposal
115
+ });
116
+ this.negotiations.set(negotiation.proposalId, negotiation);
117
+ console.log(chalk_1.default.yellow(`🔄 Counter-offer received: ${JSON.stringify(proposal)}`));
118
+ return {
119
+ proposalId: negotiation.proposalId,
120
+ state: negotiation.state,
121
+ currentOffer: proposal,
122
+ action: "counter"
123
+ };
124
+ }
125
+ /**
126
+ * Process acceptance
127
+ */
128
+ async processAcceptance(negotiation) {
129
+ negotiation.state = NegotiationState.AGREED;
130
+ negotiation.history.push({
131
+ timestamp: Date.now(),
132
+ agentId: negotiation.to,
133
+ action: "accept",
134
+ proposal: negotiation.currentOffer
135
+ });
136
+ this.negotiations.set(negotiation.proposalId, negotiation);
137
+ console.log(chalk_1.default.green(`✅ Negotiation agreed!`));
138
+ return {
139
+ proposalId: negotiation.proposalId,
140
+ state: negotiation.state,
141
+ currentOffer: negotiation.currentOffer,
142
+ action: "accept"
143
+ };
144
+ }
145
+ /**
146
+ * Process rejection
147
+ */
148
+ async processRejection(negotiation) {
149
+ negotiation.state = NegotiationState.REJECTED;
150
+ negotiation.history.push({
151
+ timestamp: Date.now(),
152
+ agentId: negotiation.to,
153
+ action: "reject",
154
+ proposal: null
155
+ });
156
+ this.negotiations.set(negotiation.proposalId, negotiation);
157
+ console.log(chalk_1.default.red(`❌ Negotiation rejected`));
158
+ return {
159
+ proposalId: negotiation.proposalId,
160
+ state: negotiation.state,
161
+ currentOffer: negotiation.currentOffer,
162
+ action: "reject"
163
+ };
164
+ }
165
+ /**
166
+ * Counter-offer in an existing negotiation
167
+ */
168
+ async sendCounterOffer(proposalId, counterOffer) {
169
+ const negotiation = this.negotiations.get(proposalId);
170
+ if (!negotiation) {
171
+ throw new Error(`Negotiation ${proposalId} not found`);
172
+ }
173
+ await this.a2a.sendMessage(negotiation.to, negotiation.to, "request", {
174
+ type: "negotiation",
175
+ action: "counter",
176
+ proposalId,
177
+ proposal: counterOffer
178
+ });
179
+ }
180
+ /**
181
+ * Accept a negotiation
182
+ */
183
+ async acceptNegotiation(proposalId) {
184
+ const negotiation = this.negotiations.get(proposalId);
185
+ if (!negotiation) {
186
+ throw new Error(`Negotiation ${proposalId} not found`);
187
+ }
188
+ await this.a2a.sendMessage(negotiation.to, negotiation.to, "response", {
189
+ type: "negotiation",
190
+ action: "accept",
191
+ proposalId
192
+ });
193
+ }
194
+ /**
195
+ * Get negotiation by ID
196
+ */
197
+ getNegotiation(proposalId) {
198
+ return this.negotiations.get(proposalId) || null;
199
+ }
200
+ /**
201
+ * Get all active negotiations
202
+ */
203
+ getActiveNegotiations() {
204
+ return Array.from(this.negotiations.values())
205
+ .filter(n => n.state === NegotiationState.PENDING || n.state === NegotiationState.IN_PROGRESS);
206
+ }
207
+ }
208
+ exports.A2ANegotiation = A2ANegotiation;
209
+ /**
210
+ * Payment Negotiation Example Flow:
211
+ *
212
+ * SettlementAgent: "I propose 1 USDC payment"
213
+ * → creates negotiation with proposalId: "pay-123"
214
+ * → sends A2A request with initialOffer: { amount: 1, currency: "USDC" }
215
+ *
216
+ * MerchantAgent: "I counter-propose 1.5 USDC"
217
+ * → receives negotiation "pay-123"
218
+ * → calls processCounterOffer with proposal: { amount: 1.5, currency: "USDC" }
219
+ * → sends A2A request back with counter offer
220
+ *
221
+ * SettlementAgent: "I accept 1.2 USDC"
222
+ * → receives counter offer
223
+ * → sends A2A response with final offer: { amount: 1.2, currency: "USDC" }
224
+ *
225
+ * MerchantAgent: "Agreed, proceed with 1.2 USDC"
226
+ * → calls acceptNegotiation("pay-123")
227
+ * → negotiation.state becomes AGREED
228
+ * → settlement proceeds
229
+ */
230
+ //# sourceMappingURL=A2ANegotiation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2ANegotiation.js","sourceRoot":"","sources":["../../../src/protocols/A2ANegotiation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * A2A (Agent-to-Agent) Protocol Implementation
3
+ * Based on JSON-RPC 2.0 for agent communication
4
+ */
5
+ export interface A2AMessage {
6
+ jsonrpc: '2.0';
7
+ id: string | number;
8
+ method: string;
9
+ params?: any;
10
+ }
11
+ export interface A2AResponse {
12
+ jsonrpc: '2.0';
13
+ id: string | number;
14
+ result?: any;
15
+ error?: {
16
+ code: number;
17
+ message: string;
18
+ data?: any;
19
+ };
20
+ }
21
+ export interface Task {
22
+ id: string;
23
+ status: 'pending' | 'processing' | 'completed' | 'failed';
24
+ input: any;
25
+ output?: any;
26
+ error?: string;
27
+ createdAt: number;
28
+ updatedAt: number;
29
+ }
30
+ export declare class A2AProtocol {
31
+ private baseUrl;
32
+ private agentId;
33
+ constructor(baseUrl: string, agentId: string);
34
+ sendTask(input: any): Promise<Task>;
35
+ getTask(taskId: string): Promise<Task>;
36
+ cancelTask(taskId: string): Promise<boolean>;
37
+ private makeRequest;
38
+ }
39
+ export declare class A2AServer {
40
+ private handlers;
41
+ private tasks;
42
+ constructor();
43
+ registerHandler(method: string, handler: (params: any) => Promise<any>): void;
44
+ handleRequest(message: A2AMessage): Promise<A2AResponse>;
45
+ createTask(input: any): Task;
46
+ updateTask(taskId: string, updates: Partial<Task>): Task | null;
47
+ getTask(taskId: string): Task | null;
48
+ }
49
+ //# sourceMappingURL=A2AProtocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2AProtocol.d.ts","sourceRoot":"","sources":["../../../src/protocols/A2AProtocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,KAAK,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,GAAG,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,GAAG,CAAA;KACX,CAAA;CACF;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAA;IACzD,KAAK,EAAE,GAAG,CAAA;IACV,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKtC,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAYpC,WAAW;CAgB1B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAA4C;IAC5D,OAAO,CAAC,KAAK,CAAmB;;IAOhC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IAIhE,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC9D,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAa5B,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAQ/D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAGrC"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /**
3
+ * A2A (Agent-to-Agent) Protocol Implementation
4
+ * Based on JSON-RPC 2.0 for agent communication
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.A2AServer = exports.A2AProtocol = void 0;
8
+ class A2AProtocol {
9
+ baseUrl;
10
+ agentId;
11
+ constructor(baseUrl, agentId) {
12
+ this.baseUrl = baseUrl;
13
+ this.agentId = agentId;
14
+ }
15
+ async sendTask(input) {
16
+ const message = {
17
+ jsonrpc: '2.0',
18
+ id: Date.now(),
19
+ method: 'sendTask',
20
+ params: { input }
21
+ };
22
+ const response = await this.makeRequest(message);
23
+ return response.result;
24
+ }
25
+ async getTask(taskId) {
26
+ const message = {
27
+ jsonrpc: '2.0',
28
+ id: Date.now(),
29
+ method: 'getTask',
30
+ params: { taskId }
31
+ };
32
+ const response = await this.makeRequest(message);
33
+ return response.result;
34
+ }
35
+ async cancelTask(taskId) {
36
+ const message = {
37
+ jsonrpc: '2.0',
38
+ id: Date.now(),
39
+ method: 'cancelTask',
40
+ params: { taskId }
41
+ };
42
+ const response = await this.makeRequest(message);
43
+ return response.result;
44
+ }
45
+ async makeRequest(message) {
46
+ const response = await fetch(this.baseUrl, {
47
+ method: 'POST',
48
+ headers: {
49
+ 'Content-Type': 'application/json',
50
+ 'X-Agent-Id': this.agentId
51
+ },
52
+ body: JSON.stringify(message)
53
+ });
54
+ if (!response.ok) {
55
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
56
+ }
57
+ return await response.json();
58
+ }
59
+ }
60
+ exports.A2AProtocol = A2AProtocol;
61
+ class A2AServer {
62
+ handlers;
63
+ tasks;
64
+ constructor() {
65
+ this.handlers = new Map();
66
+ this.tasks = new Map();
67
+ }
68
+ registerHandler(method, handler) {
69
+ this.handlers.set(method, handler);
70
+ }
71
+ async handleRequest(message) {
72
+ const handler = this.handlers.get(message.method);
73
+ if (!handler) {
74
+ return {
75
+ jsonrpc: '2.0',
76
+ id: message.id,
77
+ error: {
78
+ code: -32601,
79
+ message: 'Method not found'
80
+ }
81
+ };
82
+ }
83
+ try {
84
+ const result = await handler(message.params);
85
+ return {
86
+ jsonrpc: '2.0',
87
+ id: message.id,
88
+ result
89
+ };
90
+ }
91
+ catch (error) {
92
+ return {
93
+ jsonrpc: '2.0',
94
+ id: message.id,
95
+ error: {
96
+ code: -32603,
97
+ message: 'Internal error',
98
+ data: error.message
99
+ }
100
+ };
101
+ }
102
+ }
103
+ createTask(input) {
104
+ const task = {
105
+ id: `task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
106
+ status: 'pending',
107
+ input,
108
+ createdAt: Date.now(),
109
+ updatedAt: Date.now()
110
+ };
111
+ this.tasks.set(task.id, task);
112
+ return task;
113
+ }
114
+ updateTask(taskId, updates) {
115
+ const task = this.tasks.get(taskId);
116
+ if (!task)
117
+ return null;
118
+ Object.assign(task, updates, { updatedAt: Date.now() });
119
+ return task;
120
+ }
121
+ getTask(taskId) {
122
+ return this.tasks.get(taskId) || null;
123
+ }
124
+ }
125
+ exports.A2AServer = A2AServer;
126
+ //# sourceMappingURL=A2AProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A2AProtocol.js","sourceRoot":"","sources":["../../../src/protocols/A2AProtocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * AP2 (A2A Payment) Protocol
3
+ * Agent-to-Agent Payment Protocol for autonomous transactions
4
+ */
5
+ export interface AP2PaymentRequest {
6
+ id: string;
7
+ from: string;
8
+ to: string;
9
+ amount: string;
10
+ currency: string;
11
+ network: string;
12
+ description?: string;
13
+ metadata?: Record<string, any>;
14
+ createdAt: number;
15
+ expiresAt: number;
16
+ }
17
+ export interface AP2PaymentResponse {
18
+ requestId: string;
19
+ status: 'pending' | 'approved' | 'rejected' | 'completed' | 'failed';
20
+ transactionHash?: string;
21
+ message?: string;
22
+ timestamp: number;
23
+ }
24
+ export interface AP2PaymentVerification {
25
+ requestId: string;
26
+ transactionHash: string;
27
+ network: string;
28
+ verified: boolean;
29
+ confirmations: number;
30
+ timestamp: number;
31
+ }
32
+ export declare class AP2Protocol {
33
+ private network;
34
+ private currency;
35
+ constructor(network?: string, currency?: string);
36
+ createPaymentRequest(from: string, to: string, amount: number, description?: string, metadata?: Record<string, any>): AP2PaymentRequest;
37
+ createPaymentResponse(requestId: string, status: AP2PaymentResponse['status'], transactionHash?: string, message?: string): AP2PaymentResponse;
38
+ verifyPayment(requestId: string, transactionHash: string, verified: boolean, confirmations?: number): AP2PaymentVerification;
39
+ isExpired(request: AP2PaymentRequest): boolean;
40
+ validateRequest(request: AP2PaymentRequest): {
41
+ valid: boolean;
42
+ errors: string[];
43
+ };
44
+ encodeRequest(request: AP2PaymentRequest): string;
45
+ decodeRequest(encoded: string): AP2PaymentRequest;
46
+ }
47
+ export declare class AP2PaymentNegotiation {
48
+ private requests;
49
+ private responses;
50
+ constructor();
51
+ proposePayment(request: AP2PaymentRequest): void;
52
+ respondToPayment(response: AP2PaymentResponse): void;
53
+ getRequest(requestId: string): AP2PaymentRequest | undefined;
54
+ getResponse(requestId: string): AP2PaymentResponse | undefined;
55
+ clearExpiredRequests(): number;
56
+ }
57
+ //# sourceMappingURL=AP2Protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AP2Protocol.d.ts","sourceRoot":"","sources":["../../../src/protocols/AP2Protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAA;IACpE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,OAAO,GAAE,MAAwB,EAAE,QAAQ,GAAE,MAAe;IAKxE,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,iBAAiB;IAoBpB,qBAAqB,CACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACpC,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,kBAAkB;IAarB,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,OAAO,EACjB,aAAa,GAAE,MAAU,GACxB,sBAAsB;IAWzB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;IAI9C,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAmBjF,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAIjD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB;CAIlD;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,SAAS,CAAiC;;IAOlD,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAIhD,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIpD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI5D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI9D,oBAAoB,IAAI,MAAM;CAa/B"}