aether-agent-sdk 1.0.5 → 1.0.7
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/README.md +17 -23
- package/dist/src/agents/SettlementAgent.d.ts +4 -1
- package/dist/src/agents/SettlementAgent.d.ts.map +1 -1
- package/dist/src/agents/SettlementAgent.js +49 -15
- package/dist/src/agents/SettlementAgent.js.map +1 -1
- package/dist/src/facilitator/X402FacilitatorServer.d.ts.map +1 -1
- package/dist/src/facilitator/X402FacilitatorServer.js +45 -19
- package/dist/src/facilitator/X402FacilitatorServer.js.map +1 -1
- package/package.json +1 -3
- package/dist/src/agents/AgentRegistry.d.ts +0 -48
- package/dist/src/agents/AgentRegistry.d.ts.map +0 -1
- package/dist/src/agents/AgentRegistry.js +0 -114
- package/dist/src/agents/AgentRegistry.js.map +0 -1
- package/dist/src/agents/AnalyzerAgent.d.ts +0 -18
- package/dist/src/agents/AnalyzerAgent.d.ts.map +0 -1
- package/dist/src/agents/AnalyzerAgent.js +0 -129
- package/dist/src/agents/AnalyzerAgent.js.map +0 -1
- package/dist/src/agents/IntelligentVerifierAgent.d.ts +0 -46
- package/dist/src/agents/IntelligentVerifierAgent.d.ts.map +0 -1
- package/dist/src/agents/IntelligentVerifierAgent.js +0 -262
- package/dist/src/agents/IntelligentVerifierAgent.js.map +0 -1
- package/dist/src/agents/SettlementAgentEnhanced.d.ts +0 -33
- package/dist/src/agents/SettlementAgentEnhanced.d.ts.map +0 -1
- package/dist/src/agents/SettlementAgentEnhanced.js +0 -219
- package/dist/src/agents/SettlementAgentEnhanced.js.map +0 -1
- package/dist/src/agents/VerifierAgent.d.ts +0 -30
- package/dist/src/agents/VerifierAgent.d.ts.map +0 -1
- package/dist/src/agents/VerifierAgent.js +0 -181
- package/dist/src/agents/VerifierAgent.js.map +0 -1
- package/dist/src/modes/HumanInTheLoopMode.d.ts +0 -92
- package/dist/src/modes/HumanInTheLoopMode.d.ts.map +0 -1
- package/dist/src/modes/HumanInTheLoopMode.js +0 -234
- package/dist/src/modes/HumanInTheLoopMode.js.map +0 -1
- package/dist/src/modes/index.d.ts +0 -8
- package/dist/src/modes/index.d.ts.map +0 -1
- package/dist/src/modes/index.js +0 -11
- package/dist/src/modes/index.js.map +0 -1
- package/dist/src/protocols/A2ANegotiation.d.ts +0 -122
- package/dist/src/protocols/A2ANegotiation.d.ts.map +0 -1
- package/dist/src/protocols/A2ANegotiation.js +0 -230
- package/dist/src/protocols/A2ANegotiation.js.map +0 -1
- package/dist/src/services/index.d.ts +0 -8
- package/dist/src/services/index.d.ts.map +0 -1
- package/dist/src/services/index.js +0 -13
- package/dist/src/services/index.js.map +0 -1
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Human-in-the-Loop Mode
|
|
4
|
-
*
|
|
5
|
-
* This module implements human approval workflows for autonomous agents.
|
|
6
|
-
* When enabled, agents will pause and request human approval for:
|
|
7
|
-
* - High-value payments
|
|
8
|
-
* - Sensitive operations
|
|
9
|
-
* - Custom-defined approval thresholds
|
|
10
|
-
*
|
|
11
|
-
* Used for the hackathon bonus points requirement
|
|
12
|
-
*/
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
-
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
|
-
});
|
|
29
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
30
|
-
var ownKeys = function(o) {
|
|
31
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
32
|
-
var ar = [];
|
|
33
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
34
|
-
return ar;
|
|
35
|
-
};
|
|
36
|
-
return ownKeys(o);
|
|
37
|
-
};
|
|
38
|
-
return function (mod) {
|
|
39
|
-
if (mod && mod.__esModule) return mod;
|
|
40
|
-
var result = {};
|
|
41
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
42
|
-
__setModuleDefault(result, mod);
|
|
43
|
-
return result;
|
|
44
|
-
};
|
|
45
|
-
})();
|
|
46
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
47
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
|
-
};
|
|
49
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.HumanInTheLoopMode = void 0;
|
|
51
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
52
|
-
const readline = __importStar(require("readline"));
|
|
53
|
-
/**
|
|
54
|
-
* Human-in-the-Loop Mode Implementation
|
|
55
|
-
*/
|
|
56
|
-
class HumanInTheLoopMode {
|
|
57
|
-
config;
|
|
58
|
-
pendingRequests = new Map();
|
|
59
|
-
rl;
|
|
60
|
-
callbacks = new Map();
|
|
61
|
-
constructor(config) {
|
|
62
|
-
this.config = {
|
|
63
|
-
enabled: false,
|
|
64
|
-
requireApprovalFor: [],
|
|
65
|
-
approvalThresholds: {
|
|
66
|
-
payment: 100, // Default $100
|
|
67
|
-
transaction: 10
|
|
68
|
-
},
|
|
69
|
-
timeout: 300000, // 5 minutes default
|
|
70
|
-
autoApproveTimeout: false,
|
|
71
|
-
...config
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Check if action requires human approval
|
|
76
|
-
*/
|
|
77
|
-
requiresApproval(action, details) {
|
|
78
|
-
if (!this.config.enabled) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
// Check if action is in requireApprovalFor list
|
|
82
|
-
if (this.config.requireApprovalFor && this.config.requireApprovalFor.includes(action)) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
// Check payment threshold
|
|
86
|
-
if (action === "payment" && this.config.approvalThresholds?.payment) {
|
|
87
|
-
const amount = details.amount || 0;
|
|
88
|
-
if (amount >= this.config.approvalThresholds.payment) {
|
|
89
|
-
console.log(chalk_1.default.yellow(`⚠️ Payment amount ${amount} exceeds threshold ${this.config.approvalThresholds.payment}`));
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// Check transaction threshold
|
|
94
|
-
if (action === "transaction" && this.config.approvalThresholds?.transaction) {
|
|
95
|
-
const count = details.count || 0;
|
|
96
|
-
if (count >= this.config.approvalThresholds.transaction) {
|
|
97
|
-
console.log(chalk_1.default.yellow(`⚠️ Transaction count ${count} exceeds threshold ${this.config.approvalThresholds.transaction}`));
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Request human approval
|
|
105
|
-
*/
|
|
106
|
-
async requestApproval(request) {
|
|
107
|
-
const requestId = `approval-${Date.now()}-${Math.random().toString(36).substring(7)}`;
|
|
108
|
-
const fullRequest = {
|
|
109
|
-
...request,
|
|
110
|
-
requestId,
|
|
111
|
-
createdAt: Date.now(),
|
|
112
|
-
status: "pending"
|
|
113
|
-
};
|
|
114
|
-
this.pendingRequests.set(requestId, fullRequest);
|
|
115
|
-
console.log(chalk_1.default.yellow(`\n🤔 HUMAN APPROVAL REQUIRED`));
|
|
116
|
-
console.log(chalk_1.default.bold(`─────────────────────────────────────────────────────`));
|
|
117
|
-
console.log(chalk_1.default.blue(`Request ID: ${requestId}`));
|
|
118
|
-
console.log(chalk_1.default.blue(`Action: ${request.action}`));
|
|
119
|
-
console.log(chalk_1.default.blue(`Description: ${request.description}`));
|
|
120
|
-
console.log(chalk_1.default.gray(`Details: ${JSON.stringify(request.details, null, 2)}`));
|
|
121
|
-
console.log(chalk_1.default.bold(`─────────────────────────────────────────────────────\n`));
|
|
122
|
-
return new Promise((resolve) => {
|
|
123
|
-
this.callbacks.set(requestId, resolve);
|
|
124
|
-
// Set timeout if configured
|
|
125
|
-
if (this.config.timeout) {
|
|
126
|
-
setTimeout(() => {
|
|
127
|
-
if (this.pendingRequests.has(requestId)) {
|
|
128
|
-
const result = this.config.autoApproveTimeout ?
|
|
129
|
-
this.createApprovalResult(requestId, true, "Auto-approved due to timeout") :
|
|
130
|
-
this.createApprovalResult(requestId, false, "Request timed out");
|
|
131
|
-
resolve(result);
|
|
132
|
-
this.callbacks.delete(requestId);
|
|
133
|
-
this.pendingRequests.delete(requestId);
|
|
134
|
-
}
|
|
135
|
-
}, this.config.timeout);
|
|
136
|
-
}
|
|
137
|
-
// Request approval via CLI
|
|
138
|
-
this.requestCLIApproval(requestId, request);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Request approval via CLI
|
|
143
|
-
*/
|
|
144
|
-
async requestCLIApproval(requestId, request) {
|
|
145
|
-
console.log(chalk_1.default.bold(`Options:`));
|
|
146
|
-
console.log(chalk_1.default.green(`[y] Yes - Approve and proceed`));
|
|
147
|
-
console.log(chalk_1.default.red(`[n] No - Reject and cancel`));
|
|
148
|
-
console.log(chalk_1.default.bold(`[Enter your choice (y/n):]`));
|
|
149
|
-
// Create readline interface if not exists
|
|
150
|
-
if (!this.rl) {
|
|
151
|
-
this.rl = readline.createInterface({
|
|
152
|
-
input: process.stdin,
|
|
153
|
-
output: process.stdout
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
const answer = await new Promise((resolve) => {
|
|
157
|
-
this.rl.question('', (answer) => {
|
|
158
|
-
resolve(answer.trim().toLowerCase());
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
const approved = answer === 'y' || answer === 'yes';
|
|
162
|
-
const callback = this.callbacks.get(requestId);
|
|
163
|
-
if (callback) {
|
|
164
|
-
const result = this.createApprovalResult(requestId, approved, approved ? 'Human approved' : 'Human rejected');
|
|
165
|
-
callback(result);
|
|
166
|
-
this.callbacks.delete(requestId);
|
|
167
|
-
}
|
|
168
|
-
this.pendingRequests.delete(requestId);
|
|
169
|
-
if (approved) {
|
|
170
|
-
console.log(chalk_1.default.green(`✅ Approval granted, proceeding...\n`));
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
console.log(chalk_1.default.red(`❌ Approval denied, canceling...\n`));
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Create approval result
|
|
178
|
-
*/
|
|
179
|
-
createApprovalResult(requestId, approved, reason) {
|
|
180
|
-
const result = {
|
|
181
|
-
approved,
|
|
182
|
-
requestId,
|
|
183
|
-
timestamp: Date.now(),
|
|
184
|
-
reason
|
|
185
|
-
};
|
|
186
|
-
// Update request status
|
|
187
|
-
const request = this.pendingRequests.get(requestId);
|
|
188
|
-
if (request) {
|
|
189
|
-
request.status = approved ? "approved" : "rejected";
|
|
190
|
-
this.pendingRequests.set(requestId, request);
|
|
191
|
-
}
|
|
192
|
-
return result;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Get pending requests
|
|
196
|
-
*/
|
|
197
|
-
getPendingRequests() {
|
|
198
|
-
return Array.from(this.pendingRequests.values()).filter(r => r.status === "pending");
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Enable HITL mode
|
|
202
|
-
*/
|
|
203
|
-
enable() {
|
|
204
|
-
this.config.enabled = true;
|
|
205
|
-
console.log(chalk_1.default.green(`✅ Human-in-the-Loop mode enabled`));
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Disable HITL mode
|
|
209
|
-
*/
|
|
210
|
-
disable() {
|
|
211
|
-
this.config.enabled = false;
|
|
212
|
-
console.log(chalk_1.default.yellow(`⚠️ Human-in-the-Loop mode disabled`));
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Set approval threshold for payments
|
|
216
|
-
*/
|
|
217
|
-
setPaymentThreshold(threshold) {
|
|
218
|
-
if (!this.config.approvalThresholds) {
|
|
219
|
-
this.config.approvalThresholds = {};
|
|
220
|
-
}
|
|
221
|
-
this.config.approvalThresholds.payment = threshold;
|
|
222
|
-
console.log(chalk_1.default.blue(`💰 Payment approval threshold set to $${threshold}`));
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Cleanup
|
|
226
|
-
*/
|
|
227
|
-
cleanup() {
|
|
228
|
-
if (this.rl) {
|
|
229
|
-
this.rl.close();
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
exports.HumanInTheLoopMode = HumanInTheLoopMode;
|
|
234
|
-
//# sourceMappingURL=HumanInTheLoopMode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HumanInTheLoopMode.js","sourceRoot":"","sources":["../../../src/modes/HumanInTheLoopMode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hedron Agent SDK - Modes Module
|
|
3
|
-
*
|
|
4
|
-
* Export all mode classes and interfaces
|
|
5
|
-
*/
|
|
6
|
-
export { HumanInTheLoopMode } from './HumanInTheLoopMode';
|
|
7
|
-
export type { ApprovalRequest, ApprovalResult, HITLConfig } from './HumanInTheLoopMode';
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA"}
|
package/dist/src/modes/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Hedron Agent SDK - Modes Module
|
|
4
|
-
*
|
|
5
|
-
* Export all mode classes and interfaces
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.HumanInTheLoopMode = void 0;
|
|
9
|
-
var HumanInTheLoopMode_1 = require("./HumanInTheLoopMode");
|
|
10
|
-
Object.defineProperty(exports, "HumanInTheLoopMode", { enumerable: true, get: function () { return HumanInTheLoopMode_1.HumanInTheLoopMode; } });
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modes/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA"}
|
|
@@ -1,122 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,230 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"A2ANegotiation.js","sourceRoot":"","sources":["../../../src/protocols/A2ANegotiation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Hedron Agent SDK - Services Module
|
|
4
|
-
*
|
|
5
|
-
* Export all service classes and utilities
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.createRoyaltyTokenForNFTs = exports.TokenService = void 0;
|
|
9
|
-
var TokenService_1 = require("./TokenService");
|
|
10
|
-
Object.defineProperty(exports, "TokenService", { enumerable: true, get: function () { return TokenService_1.TokenService; } });
|
|
11
|
-
var TokenService_2 = require("./TokenService");
|
|
12
|
-
Object.defineProperty(exports, "createRoyaltyTokenForNFTs", { enumerable: true, get: function () { return TokenService_2.createRoyaltyTokenForNFTs; } });
|
|
13
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+CAA0D;AAAjD,yHAAA,yBAAyB,OAAA"}
|