aether-agent-sdk 1.0.6 → 2.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.
- package/README.md +9 -18
- package/dist/src/agents/SettlementAgent.d.ts +1 -3
- package/dist/src/agents/SettlementAgent.d.ts.map +1 -1
- package/dist/src/agents/SettlementAgent.js +1 -28
- package/dist/src/agents/SettlementAgent.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/marketplace/MarketplaceConsumer.d.ts +148 -0
- package/dist/src/marketplace/MarketplaceConsumer.d.ts.map +1 -0
- package/dist/src/marketplace/MarketplaceConsumer.js +379 -0
- package/dist/src/marketplace/MarketplaceConsumer.js.map +1 -0
- package/dist/src/marketplace/MarketplaceProvider.d.ts +124 -0
- package/dist/src/marketplace/MarketplaceProvider.d.ts.map +1 -0
- package/dist/src/marketplace/MarketplaceProvider.js +267 -0
- package/dist/src/marketplace/MarketplaceProvider.js.map +1 -0
- package/dist/src/marketplace/index.d.ts +9 -0
- package/dist/src/marketplace/index.d.ts.map +1 -0
- package/dist/src/marketplace/index.js +29 -0
- package/dist/src/marketplace/index.js.map +1 -0
- package/dist/src/marketplace/types.d.ts +168 -0
- package/dist/src/marketplace/types.d.ts.map +1 -0
- package/dist/src/marketplace/types.js +7 -0
- package/dist/src/marketplace/types.js.map +1 -0
- package/package.json +1 -3
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Aether Marketplace Consumer
|
|
4
|
+
* SDK for agents that consume services from the marketplace
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ConversationWrapper = exports.MarketplaceConsumer = void 0;
|
|
11
|
+
const axios_1 = __importDefault(require("axios"));
|
|
12
|
+
const SettlementAgent_1 = require("../agents/SettlementAgent");
|
|
13
|
+
// Marketplace wallet that receives all payments (will be split 90/10 by backend)
|
|
14
|
+
const MARKETPLACE_WALLET = process.env.MARKETPLACE_WALLET || 'MARKETPLACE_WALLET_NOT_CONFIGURED';
|
|
15
|
+
/**
|
|
16
|
+
* MarketplaceConsumer
|
|
17
|
+
*
|
|
18
|
+
* Use this class when your agent USES services from the marketplace.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const consumer = new MarketplaceConsumer({
|
|
23
|
+
* apiUrl: 'https://marketplace.aether.com/api',
|
|
24
|
+
* wallet: myKeypair
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Search for translation agents
|
|
28
|
+
* const agents = await consumer.search({
|
|
29
|
+
* category: 'Translation',
|
|
30
|
+
* maxPrice: 0.50
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // Start conversation
|
|
34
|
+
* const conversation = await consumer.startConversation(agents[0].id, {
|
|
35
|
+
* message: "I need to translate 500 words"
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* // Listen for responses
|
|
39
|
+
* conversation.on('message', async (msg) => {
|
|
40
|
+
* if (msg.hasOrder) {
|
|
41
|
+
* await conversation.acceptOrder(msg.order.id, { paymentMethod: 'athr' });
|
|
42
|
+
* }
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // Listen for delivery
|
|
46
|
+
* conversation.on('delivery', async (delivery) => {
|
|
47
|
+
* console.log('Received:', delivery.result);
|
|
48
|
+
* await conversation.review({ rating: 5 });
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
class MarketplaceConsumer {
|
|
53
|
+
apiUrl;
|
|
54
|
+
wallet;
|
|
55
|
+
settlementAgent;
|
|
56
|
+
constructor(config) {
|
|
57
|
+
this.apiUrl = config.apiUrl;
|
|
58
|
+
this.wallet = config.wallet;
|
|
59
|
+
this.settlementAgent = new SettlementAgent_1.SettlementAgent();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Initialize settlement agent
|
|
63
|
+
*/
|
|
64
|
+
async init() {
|
|
65
|
+
await this.settlementAgent.init();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Search for agents
|
|
69
|
+
*/
|
|
70
|
+
async search(filters = {}) {
|
|
71
|
+
try {
|
|
72
|
+
const response = await axios_1.default.get(`${this.apiUrl}/agents/search`, {
|
|
73
|
+
params: filters,
|
|
74
|
+
});
|
|
75
|
+
return response.data.agents || [];
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error('❌ Search failed:', error.message);
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get agent details
|
|
84
|
+
*/
|
|
85
|
+
async getAgent(agentId) {
|
|
86
|
+
try {
|
|
87
|
+
const response = await axios_1.default.get(`${this.apiUrl}/agents/${agentId}`);
|
|
88
|
+
return response.data;
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error('❌ Failed to get agent:', error.message);
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Start conversation with agent
|
|
97
|
+
*/
|
|
98
|
+
async startConversation(agentId, options) {
|
|
99
|
+
try {
|
|
100
|
+
const response = await axios_1.default.post(`${this.apiUrl}/conversations`, {
|
|
101
|
+
agentId,
|
|
102
|
+
clientWallet: this.wallet.publicKey.toBase58(),
|
|
103
|
+
clientType: 'agent', // Could be 'person' for web UI
|
|
104
|
+
initialMessage: options.message,
|
|
105
|
+
attachments: options.attachments,
|
|
106
|
+
});
|
|
107
|
+
const conversation = response.data.conversation;
|
|
108
|
+
console.log('💬 Conversation started:', conversation.id);
|
|
109
|
+
return new ConversationWrapper(conversation, this.apiUrl, this.wallet, this.settlementAgent);
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error('❌ Failed to start conversation:', error.message);
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Get existing conversation
|
|
118
|
+
*/
|
|
119
|
+
async getConversation(conversationId) {
|
|
120
|
+
try {
|
|
121
|
+
const response = await axios_1.default.get(`${this.apiUrl}/conversations/${conversationId}`);
|
|
122
|
+
const conversation = response.data;
|
|
123
|
+
return new ConversationWrapper(conversation, this.apiUrl, this.wallet, this.settlementAgent);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
console.error('❌ Failed to get conversation:', error.message);
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Get all conversations for this wallet
|
|
132
|
+
*/
|
|
133
|
+
async getConversations() {
|
|
134
|
+
try {
|
|
135
|
+
const response = await axios_1.default.get(`${this.apiUrl}/conversations`, {
|
|
136
|
+
params: { wallet: this.wallet.publicKey.toBase58() },
|
|
137
|
+
});
|
|
138
|
+
return response.data.conversations || [];
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.error('❌ Failed to get conversations:', error.message);
|
|
142
|
+
throw error;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get order details
|
|
147
|
+
*/
|
|
148
|
+
async getOrder(orderId) {
|
|
149
|
+
try {
|
|
150
|
+
const response = await axios_1.default.get(`${this.apiUrl}/orders/${orderId}`);
|
|
151
|
+
return response.data;
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
console.error('❌ Failed to get order:', error.message);
|
|
155
|
+
throw error;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get all orders for this wallet
|
|
160
|
+
*/
|
|
161
|
+
async getOrders(status) {
|
|
162
|
+
try {
|
|
163
|
+
const response = await axios_1.default.get(`${this.apiUrl}/orders`, {
|
|
164
|
+
params: {
|
|
165
|
+
wallet: this.wallet.publicKey.toBase58(),
|
|
166
|
+
status,
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
return response.data.orders || [];
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
console.error('❌ Failed to get orders:', error.message);
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.MarketplaceConsumer = MarketplaceConsumer;
|
|
178
|
+
/**
|
|
179
|
+
* ConversationWrapper
|
|
180
|
+
* Wraps a conversation with helper methods
|
|
181
|
+
*/
|
|
182
|
+
class ConversationWrapper {
|
|
183
|
+
conversation;
|
|
184
|
+
apiUrl;
|
|
185
|
+
wallet;
|
|
186
|
+
settlementAgent;
|
|
187
|
+
messageHandlers = [];
|
|
188
|
+
deliveryHandlers = [];
|
|
189
|
+
pollingInterval;
|
|
190
|
+
constructor(conversation, apiUrl, wallet, settlementAgent) {
|
|
191
|
+
this.conversation = conversation;
|
|
192
|
+
this.apiUrl = apiUrl;
|
|
193
|
+
this.wallet = wallet;
|
|
194
|
+
this.settlementAgent = settlementAgent;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Get conversation ID
|
|
198
|
+
*/
|
|
199
|
+
get id() {
|
|
200
|
+
return this.conversation.id;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Send message
|
|
204
|
+
*/
|
|
205
|
+
async send(message, attachments) {
|
|
206
|
+
try {
|
|
207
|
+
await axios_1.default.post(`${this.apiUrl}/conversations/${this.conversation.id}/messages`, {
|
|
208
|
+
from: this.wallet.publicKey.toBase58(),
|
|
209
|
+
message,
|
|
210
|
+
attachments,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
console.error('❌ Failed to send message:', error.message);
|
|
215
|
+
throw error;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get messages
|
|
220
|
+
*/
|
|
221
|
+
async getMessages(limit = 50) {
|
|
222
|
+
try {
|
|
223
|
+
const response = await axios_1.default.get(`${this.apiUrl}/conversations/${this.conversation.id}/messages`, { params: { limit } });
|
|
224
|
+
return response.data.messages || [];
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
console.error('❌ Failed to get messages:', error.message);
|
|
228
|
+
throw error;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Accept order and pay
|
|
233
|
+
*/
|
|
234
|
+
async acceptOrder(orderId, options) {
|
|
235
|
+
try {
|
|
236
|
+
// Get order details
|
|
237
|
+
const orderResponse = await axios_1.default.get(`${this.apiUrl}/orders/${orderId}`);
|
|
238
|
+
const order = orderResponse.data;
|
|
239
|
+
console.log(`💳 Accepting order ${orderId}`);
|
|
240
|
+
console.log(`📊 Price: ${order.price} USDC`);
|
|
241
|
+
// Create signed payment with x402 to MARKETPLACE wallet (not directly to agent)
|
|
242
|
+
// Backend will split 90% to agent, 10% commission
|
|
243
|
+
const amount = options.paymentMethod === 'athr' ? order.price * 0.75 : order.price;
|
|
244
|
+
console.log(`💰 Creating x402 payment to marketplace (${amount} ${options.paymentMethod.toUpperCase()})`);
|
|
245
|
+
console.log(`📍 Marketplace wallet: ${MARKETPLACE_WALLET}`);
|
|
246
|
+
console.log(`📌 Backend will split: 90% to agent, 10% commission`);
|
|
247
|
+
const paymentHeader = await this.settlementAgent.createSignedPayment(MARKETPLACE_WALLET, // Pay marketplace, not agent directly
|
|
248
|
+
amount);
|
|
249
|
+
// Submit payment to marketplace
|
|
250
|
+
const response = await axios_1.default.post(`${this.apiUrl}/orders/${orderId}/accept`, {
|
|
251
|
+
clientWallet: this.wallet.publicKey.toBase58(),
|
|
252
|
+
paymentMethod: options.paymentMethod.toUpperCase(),
|
|
253
|
+
paymentHeader,
|
|
254
|
+
});
|
|
255
|
+
console.log('✅ Order accepted and paid:', orderId);
|
|
256
|
+
console.log('📝 Payment TX:', response.data.transactionSignature);
|
|
257
|
+
console.log(`💸 Agent receives: ${response.data.agentAmount} USDC`);
|
|
258
|
+
console.log(`💰 Commission: ${response.data.commissionAmount} USDC`);
|
|
259
|
+
return response.data;
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
console.error('❌ Failed to accept order:', error.message);
|
|
263
|
+
throw error;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Decline order proposal
|
|
268
|
+
*/
|
|
269
|
+
async declineOrder(orderId, reason) {
|
|
270
|
+
try {
|
|
271
|
+
await axios_1.default.post(`${this.apiUrl}/orders/${orderId}/decline`, {
|
|
272
|
+
clientWallet: this.wallet.publicKey.toBase58(),
|
|
273
|
+
reason,
|
|
274
|
+
});
|
|
275
|
+
console.log('❌ Order declined:', orderId);
|
|
276
|
+
// Optionally send message to agent
|
|
277
|
+
if (reason) {
|
|
278
|
+
await this.send(`I'm declining the order: ${reason}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
console.error('❌ Failed to decline order:', error.message);
|
|
283
|
+
throw error;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Counter-offer with different price/terms
|
|
288
|
+
*/
|
|
289
|
+
async counterOffer(orderId, offer) {
|
|
290
|
+
try {
|
|
291
|
+
await axios_1.default.post(`${this.apiUrl}/orders/${orderId}/counter-offer`, {
|
|
292
|
+
clientWallet: this.wallet.publicKey.toBase58(),
|
|
293
|
+
...offer,
|
|
294
|
+
});
|
|
295
|
+
console.log('💬 Counter-offer sent:', orderId);
|
|
296
|
+
// Send message to agent
|
|
297
|
+
await this.send(offer.message);
|
|
298
|
+
}
|
|
299
|
+
catch (error) {
|
|
300
|
+
console.error('❌ Failed to send counter-offer:', error.message);
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Review order
|
|
306
|
+
*/
|
|
307
|
+
async review(orderId, review) {
|
|
308
|
+
try {
|
|
309
|
+
await axios_1.default.post(`${this.apiUrl}/orders/${orderId}/review`, {
|
|
310
|
+
clientWallet: this.wallet.publicKey.toBase58(),
|
|
311
|
+
...review,
|
|
312
|
+
});
|
|
313
|
+
console.log('⭐ Review submitted:', orderId);
|
|
314
|
+
}
|
|
315
|
+
catch (error) {
|
|
316
|
+
console.error('❌ Failed to submit review:', error.message);
|
|
317
|
+
throw error;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
on(event, handler) {
|
|
321
|
+
if (event === 'message') {
|
|
322
|
+
this.messageHandlers.push(handler);
|
|
323
|
+
// Start polling if not already started
|
|
324
|
+
if (!this.pollingInterval) {
|
|
325
|
+
this.startPolling();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
else if (event === 'delivery') {
|
|
329
|
+
this.deliveryHandlers.push(handler);
|
|
330
|
+
if (!this.pollingInterval) {
|
|
331
|
+
this.startPolling();
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Stop listening
|
|
337
|
+
*/
|
|
338
|
+
stop() {
|
|
339
|
+
if (this.pollingInterval) {
|
|
340
|
+
clearInterval(this.pollingInterval);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Start polling for new messages and deliveries
|
|
345
|
+
*/
|
|
346
|
+
startPolling(intervalMs = 3000) {
|
|
347
|
+
this.pollingInterval = setInterval(async () => {
|
|
348
|
+
try {
|
|
349
|
+
// Poll for new messages
|
|
350
|
+
const response = await axios_1.default.get(`${this.apiUrl}/conversations/${this.conversation.id}/messages/new`, {
|
|
351
|
+
params: { wallet: this.wallet.publicKey.toBase58() },
|
|
352
|
+
});
|
|
353
|
+
const newMessages = response.data.messages || [];
|
|
354
|
+
for (const msg of newMessages) {
|
|
355
|
+
// Trigger message handlers
|
|
356
|
+
for (const handler of this.messageHandlers) {
|
|
357
|
+
handler(msg);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// Poll for deliveries
|
|
361
|
+
const deliveryResponse = await axios_1.default.get(`${this.apiUrl}/conversations/${this.conversation.id}/deliveries/new`, {
|
|
362
|
+
params: { wallet: this.wallet.publicKey.toBase58() },
|
|
363
|
+
});
|
|
364
|
+
const newDeliveries = deliveryResponse.data.deliveries || [];
|
|
365
|
+
for (const delivery of newDeliveries) {
|
|
366
|
+
// Trigger delivery handlers
|
|
367
|
+
for (const handler of this.deliveryHandlers) {
|
|
368
|
+
handler(delivery);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
// Silent fail for polling
|
|
374
|
+
}
|
|
375
|
+
}, intervalMs);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
exports.ConversationWrapper = ConversationWrapper;
|
|
379
|
+
//# sourceMappingURL=MarketplaceConsumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceConsumer.js","sourceRoot":"","sources":["../../../src/marketplace/MarketplaceConsumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aether Marketplace Provider
|
|
3
|
+
* SDK for agents that offer services on the marketplace
|
|
4
|
+
*/
|
|
5
|
+
import { AgentProfile, AgentService, OrderProposal, Delivery, MessageHandler, OrderPaidHandler, MarketplaceConfig } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* MarketplaceProvider
|
|
8
|
+
*
|
|
9
|
+
* Use this class when your agent OFFERS services on the marketplace.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const provider = new MarketplaceProvider({
|
|
14
|
+
* apiUrl: 'https://marketplace.aether.com/api',
|
|
15
|
+
* wallet: myKeypair,
|
|
16
|
+
* profile: {
|
|
17
|
+
* name: "Translation Pro",
|
|
18
|
+
* tagline: "Fast AI translation",
|
|
19
|
+
* categories: ['Translation'],
|
|
20
|
+
* basePrice: 0.10
|
|
21
|
+
* },
|
|
22
|
+
* services: [
|
|
23
|
+
* {
|
|
24
|
+
* title: "Translate up to 1000 words",
|
|
25
|
+
* price: 0.25,
|
|
26
|
+
* deliveryTime: 5
|
|
27
|
+
* }
|
|
28
|
+
* ]
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* await provider.register({
|
|
32
|
+
* endpoint: 'https://my-agent.com',
|
|
33
|
+
* stakeAmount: 1000
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* provider.onMessage(async (conversation, message) => {
|
|
37
|
+
* // Handle incoming messages
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* provider.onOrderPaid(async (order) => {
|
|
41
|
+
* // Do the work and deliver
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* provider.start();
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare class MarketplaceProvider {
|
|
48
|
+
private apiUrl;
|
|
49
|
+
private wallet;
|
|
50
|
+
private profile;
|
|
51
|
+
private services;
|
|
52
|
+
private messageHandler?;
|
|
53
|
+
private orderPaidHandler?;
|
|
54
|
+
private pollingInterval?;
|
|
55
|
+
constructor(config: Omit<MarketplaceConfig, 'role'> & {
|
|
56
|
+
profile: AgentProfile;
|
|
57
|
+
services: AgentService[];
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* Register agent on marketplace
|
|
61
|
+
*/
|
|
62
|
+
register(options: {
|
|
63
|
+
endpoint: string;
|
|
64
|
+
stakeAmount: number;
|
|
65
|
+
}): Promise<{
|
|
66
|
+
agentId: string;
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Update agent profile
|
|
70
|
+
*/
|
|
71
|
+
updateProfile(updates: Partial<AgentProfile>): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Add or update service
|
|
74
|
+
*/
|
|
75
|
+
updateServices(services: AgentService[]): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Set message handler
|
|
78
|
+
*/
|
|
79
|
+
onMessage(handler: MessageHandler): void;
|
|
80
|
+
/**
|
|
81
|
+
* Set order paid handler
|
|
82
|
+
*/
|
|
83
|
+
onOrderPaid(handler: OrderPaidHandler): void;
|
|
84
|
+
/**
|
|
85
|
+
* Reply to a conversation
|
|
86
|
+
*/
|
|
87
|
+
reply(conversationId: string, message: string, attachments?: any[]): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Create order proposal
|
|
90
|
+
*/
|
|
91
|
+
createOrder(conversationId: string, proposal: Omit<OrderProposal, 'conversationId'>): Promise<{
|
|
92
|
+
orderId: string;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Deliver order
|
|
96
|
+
*/
|
|
97
|
+
deliver(orderId: string, delivery: Omit<Delivery, 'orderId' | 'deliveredAt'>): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Get agent stats
|
|
100
|
+
*/
|
|
101
|
+
getStats(): Promise<{
|
|
102
|
+
totalOrders: number;
|
|
103
|
+
rating: number;
|
|
104
|
+
responseTime: number;
|
|
105
|
+
completionRate: number;
|
|
106
|
+
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Start listening for messages and orders
|
|
109
|
+
*/
|
|
110
|
+
start(pollIntervalMs?: number): void;
|
|
111
|
+
/**
|
|
112
|
+
* Stop listening
|
|
113
|
+
*/
|
|
114
|
+
stop(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Poll for new messages
|
|
117
|
+
*/
|
|
118
|
+
private pollMessages;
|
|
119
|
+
/**
|
|
120
|
+
* Poll for paid orders
|
|
121
|
+
*/
|
|
122
|
+
private pollOrders;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=MarketplaceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceProvider.d.ts","sourceRoot":"","sources":["../../../src/marketplace/MarketplaceProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,YAAY,EACZ,YAAY,EAIZ,aAAa,EACb,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,eAAe,CAAC,CAAiB;gBAE7B,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;KAAE;IAOzG;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBhC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7D;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI5C;;OAEG;IACG,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxF;;OAEG;IACG,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAgBxH;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAclG;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAaF;;OAEG;IACH,KAAK,CAAC,cAAc,GAAE,MAAa,GAAG,IAAI;IAiB1C;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ;;OAEG;YACW,YAAY;IAqB1B;;OAEG;YACW,UAAU;CAiBzB"}
|