flow-evm-agentkit 0.1.0
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/.cache/replit/env/latest +59 -0
- package/.cache/replit/env/latest.json +1 -0
- package/.cache/replit/modules/nodejs-20.res +1 -0
- package/.cache/replit/modules/replit-rtld-loader.res +1 -0
- package/.cache/replit/modules/replit.res +1 -0
- package/.cache/replit/modules.stamp +0 -0
- package/.cache/replit/nix/dotreplitenv.json +1 -0
- package/.cache/replit/toolchain.json +1 -0
- package/.env.example +25 -0
- package/LICENSE +22 -0
- package/README.md +421 -0
- package/dist/cli/scaffold.d.ts +8 -0
- package/dist/cli/scaffold.d.ts.map +1 -0
- package/dist/cli/scaffold.js +369 -0
- package/dist/cli/scaffold.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +42 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/agent.d.ts +38 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +255 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/examples/agent-server.d.ts +2 -0
- package/dist/examples/agent-server.d.ts.map +1 -0
- package/dist/examples/agent-server.js +212 -0
- package/dist/examples/agent-server.js.map +1 -0
- package/dist/examples/trading-agent.d.ts +2 -0
- package/dist/examples/trading-agent.d.ts.map +1 -0
- package/dist/examples/trading-agent.js +95 -0
- package/dist/examples/trading-agent.js.map +1 -0
- package/dist/examples/tx-echo-agent.d.ts +2 -0
- package/dist/examples/tx-echo-agent.d.ts.map +1 -0
- package/dist/examples/tx-echo-agent.js +67 -0
- package/dist/examples/tx-echo-agent.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/index.d.ts +8 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +49 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/modules/executor.d.ts +21 -0
- package/dist/modules/executor.d.ts.map +1 -0
- package/dist/modules/executor.js +205 -0
- package/dist/modules/executor.js.map +1 -0
- package/dist/modules/knowledge.d.ts +19 -0
- package/dist/modules/knowledge.d.ts.map +1 -0
- package/dist/modules/knowledge.js +208 -0
- package/dist/modules/knowledge.js.map +1 -0
- package/dist/modules/observer.d.ts +26 -0
- package/dist/modules/observer.d.ts.map +1 -0
- package/dist/modules/observer.js +184 -0
- package/dist/modules/observer.js.map +1 -0
- package/dist/modules/planner.d.ts +15 -0
- package/dist/modules/planner.d.ts.map +1 -0
- package/dist/modules/planner.js +179 -0
- package/dist/modules/planner.js.map +1 -0
- package/dist/types/index.d.ts +67 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +67 -0
@@ -0,0 +1,255 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Agent = void 0;
|
4
|
+
const events_1 = require("events");
|
5
|
+
const observer_1 = require("../modules/observer");
|
6
|
+
const executor_1 = require("../modules/executor");
|
7
|
+
const planner_1 = require("../modules/planner");
|
8
|
+
const knowledge_1 = require("../modules/knowledge");
|
9
|
+
const logger_1 = require("../logger");
|
10
|
+
const uuid_1 = require("uuid");
|
11
|
+
class Agent extends events_1.EventEmitter {
|
12
|
+
config;
|
13
|
+
logger;
|
14
|
+
observer;
|
15
|
+
executor;
|
16
|
+
planner;
|
17
|
+
knowledge;
|
18
|
+
isRunning = false;
|
19
|
+
goals = new Map();
|
20
|
+
tasks = new Map();
|
21
|
+
taskHistory = [];
|
22
|
+
constructor(config) {
|
23
|
+
super();
|
24
|
+
this.config = config;
|
25
|
+
this.logger = logger_1.Logger.get();
|
26
|
+
// Initialize modules
|
27
|
+
this.observer = new observer_1.Observer(config);
|
28
|
+
this.executor = new executor_1.Executor(config);
|
29
|
+
this.planner = new planner_1.Planner(config);
|
30
|
+
this.knowledge = new knowledge_1.Knowledge(config);
|
31
|
+
this.setupEventHandlers();
|
32
|
+
}
|
33
|
+
setupEventHandlers() {
|
34
|
+
// Listen to observer events
|
35
|
+
this.observer.on('event', async (event) => {
|
36
|
+
await this.handleObservedEvent(event);
|
37
|
+
});
|
38
|
+
this.observer.on('started', () => {
|
39
|
+
this.logger.info('Observer started');
|
40
|
+
});
|
41
|
+
this.observer.on('stopped', () => {
|
42
|
+
this.logger.info('Observer stopped');
|
43
|
+
});
|
44
|
+
}
|
45
|
+
async start() {
|
46
|
+
this.logger.info(`Starting agent: ${this.config.name}`);
|
47
|
+
try {
|
48
|
+
// Initialize knowledge module
|
49
|
+
await this.knowledge.initialize();
|
50
|
+
// Start observer
|
51
|
+
await this.observer.start();
|
52
|
+
this.isRunning = true;
|
53
|
+
this.emit('started');
|
54
|
+
// Store agent startup in memory
|
55
|
+
await this.knowledge.storeMemory(`Agent ${this.config.name} started`, { type: 'system', action: 'startup' });
|
56
|
+
// Start main agent loop
|
57
|
+
this.startMainLoop();
|
58
|
+
}
|
59
|
+
catch (error) {
|
60
|
+
this.logger.error('Failed to start agent:', error);
|
61
|
+
throw error;
|
62
|
+
}
|
63
|
+
}
|
64
|
+
async stop() {
|
65
|
+
this.logger.info('Stopping agent...');
|
66
|
+
this.isRunning = false;
|
67
|
+
await this.observer.stop();
|
68
|
+
await this.knowledge.close();
|
69
|
+
this.emit('stopped');
|
70
|
+
}
|
71
|
+
addGoal(description) {
|
72
|
+
const goal = {
|
73
|
+
id: (0, uuid_1.v4)(),
|
74
|
+
description,
|
75
|
+
completed: false,
|
76
|
+
createdAt: new Date()
|
77
|
+
};
|
78
|
+
this.goals.set(goal.id, goal);
|
79
|
+
this.logger.info(`Added goal: ${description}`);
|
80
|
+
// Store in memory
|
81
|
+
this.knowledge.storeMemory(`New goal added: ${description}`, { type: 'goal', goalId: goal.id });
|
82
|
+
return goal.id;
|
83
|
+
}
|
84
|
+
removeGoal(goalId) {
|
85
|
+
const goal = this.goals.get(goalId);
|
86
|
+
if (goal) {
|
87
|
+
this.goals.delete(goalId);
|
88
|
+
this.logger.info(`Removed goal: ${goal.description}`);
|
89
|
+
return true;
|
90
|
+
}
|
91
|
+
return false;
|
92
|
+
}
|
93
|
+
markGoalCompleted(goalId) {
|
94
|
+
const goal = this.goals.get(goalId);
|
95
|
+
if (goal) {
|
96
|
+
goal.completed = true;
|
97
|
+
goal.completedAt = new Date();
|
98
|
+
this.logger.info(`Completed goal: ${goal.description}`);
|
99
|
+
// Store in memory
|
100
|
+
this.knowledge.storeMemory(`Goal completed: ${goal.description}`, { type: 'goal', goalId, status: 'completed' });
|
101
|
+
return true;
|
102
|
+
}
|
103
|
+
return false;
|
104
|
+
}
|
105
|
+
getGoals() {
|
106
|
+
return Array.from(this.goals.values());
|
107
|
+
}
|
108
|
+
async startMainLoop() {
|
109
|
+
while (this.isRunning) {
|
110
|
+
try {
|
111
|
+
await this.planAndExecute();
|
112
|
+
await this.sleep(5000); // Wait 5 seconds between planning cycles
|
113
|
+
}
|
114
|
+
catch (error) {
|
115
|
+
this.logger.error('Error in main loop:', error);
|
116
|
+
await this.sleep(10000); // Wait longer if there's an error
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
async planAndExecute() {
|
121
|
+
const goals = Array.from(this.goals.values());
|
122
|
+
const availableActions = this.getAvailableActions();
|
123
|
+
const currentContext = await this.getCurrentContext();
|
124
|
+
const plannerInput = {
|
125
|
+
goals,
|
126
|
+
taskHistory: this.taskHistory.slice(-10), // Last 10 tasks
|
127
|
+
currentContext,
|
128
|
+
availableActions
|
129
|
+
};
|
130
|
+
// Get plan from planner
|
131
|
+
const plan = await this.planner.plan(plannerInput);
|
132
|
+
if (plan.nextAction === 'observe') {
|
133
|
+
// Just continue observing
|
134
|
+
return;
|
135
|
+
}
|
136
|
+
// Create and execute task
|
137
|
+
const task = {
|
138
|
+
id: (0, uuid_1.v4)(),
|
139
|
+
type: 'execute',
|
140
|
+
description: `Execute action: ${plan.nextAction}`,
|
141
|
+
status: 'pending',
|
142
|
+
createdAt: new Date()
|
143
|
+
};
|
144
|
+
this.tasks.set(task.id, task);
|
145
|
+
try {
|
146
|
+
task.status = 'running';
|
147
|
+
const result = await this.executeAction(plan.nextAction, plan.parameters);
|
148
|
+
task.status = 'completed';
|
149
|
+
task.result = result;
|
150
|
+
task.completedAt = new Date();
|
151
|
+
this.logger.info(`Task completed: ${task.description}`);
|
152
|
+
// Store task result in memory
|
153
|
+
await this.knowledge.storeMemory(`Task completed: ${plan.nextAction} - ${plan.reasoning}`, {
|
154
|
+
type: 'task',
|
155
|
+
taskId: task.id,
|
156
|
+
action: plan.nextAction,
|
157
|
+
result: result,
|
158
|
+
confidence: plan.confidence
|
159
|
+
});
|
160
|
+
}
|
161
|
+
catch (error) {
|
162
|
+
task.status = 'failed';
|
163
|
+
task.error = error instanceof Error ? error.message : 'Unknown error';
|
164
|
+
task.completedAt = new Date();
|
165
|
+
this.logger.error(`Task failed: ${task.description}`, error);
|
166
|
+
}
|
167
|
+
// Add to history and clean up
|
168
|
+
this.taskHistory.push(task);
|
169
|
+
this.tasks.delete(task.id);
|
170
|
+
// Keep only last 100 tasks in history
|
171
|
+
if (this.taskHistory.length > 100) {
|
172
|
+
this.taskHistory = this.taskHistory.slice(-100);
|
173
|
+
}
|
174
|
+
// Evaluate goal completion
|
175
|
+
await this.evaluateGoalCompletion();
|
176
|
+
}
|
177
|
+
async executeAction(action, parameters) {
|
178
|
+
this.logger.info(`Executing action: ${action}`, parameters);
|
179
|
+
switch (action) {
|
180
|
+
case 'transfer_flow':
|
181
|
+
return await this.executor.transferFlow(parameters.to, parameters.amount);
|
182
|
+
case 'check_balance':
|
183
|
+
return await this.executor.getBalance(parameters.address);
|
184
|
+
case 'deploy_contract':
|
185
|
+
return await this.executor.deployContract(parameters.bytecode, parameters.args);
|
186
|
+
case 'call_contract':
|
187
|
+
return await this.executor.callContract(parameters.address, parameters.abi, parameters.function, parameters.args, parameters.value);
|
188
|
+
case 'transfer_token':
|
189
|
+
return await this.executor.transferToken(parameters.tokenAddress, parameters.to, parameters.amount);
|
190
|
+
default:
|
191
|
+
throw new Error(`Unknown action: ${action}`);
|
192
|
+
}
|
193
|
+
}
|
194
|
+
getAvailableActions() {
|
195
|
+
return [
|
196
|
+
'observe',
|
197
|
+
'transfer_flow',
|
198
|
+
'check_balance',
|
199
|
+
'deploy_contract',
|
200
|
+
'call_contract',
|
201
|
+
'transfer_token'
|
202
|
+
];
|
203
|
+
}
|
204
|
+
async getCurrentContext() {
|
205
|
+
const address = await this.executor.getAddress();
|
206
|
+
const balance = await this.executor.getBalance();
|
207
|
+
const recentMemories = await this.knowledge.getRecentMemories(5);
|
208
|
+
return {
|
209
|
+
address,
|
210
|
+
balance: balance.toString(),
|
211
|
+
recentMemories: recentMemories.map(m => m.content),
|
212
|
+
activeGoals: this.getGoals().filter(g => !g.completed).length,
|
213
|
+
completedGoals: this.getGoals().filter(g => g.completed).length
|
214
|
+
};
|
215
|
+
}
|
216
|
+
async evaluateGoalCompletion() {
|
217
|
+
for (const goal of this.goals.values()) {
|
218
|
+
if (!goal.completed) {
|
219
|
+
const isCompleted = await this.planner.evaluateGoalCompletion(goal, this.taskHistory);
|
220
|
+
if (isCompleted) {
|
221
|
+
this.markGoalCompleted(goal.id);
|
222
|
+
}
|
223
|
+
}
|
224
|
+
}
|
225
|
+
}
|
226
|
+
async handleObservedEvent(event) {
|
227
|
+
this.logger.debug(`Observed event: ${event.type}`, event.data);
|
228
|
+
// Store event in memory
|
229
|
+
await this.knowledge.storeMemory(`Observed ${event.type} event`, {
|
230
|
+
type: 'observation',
|
231
|
+
eventType: event.type,
|
232
|
+
eventData: event.data
|
233
|
+
});
|
234
|
+
this.emit('event', event);
|
235
|
+
}
|
236
|
+
sleep(ms) {
|
237
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
238
|
+
}
|
239
|
+
// Public methods for external interaction
|
240
|
+
async query(question) {
|
241
|
+
const memories = await this.knowledge.searchMemories(question, 5);
|
242
|
+
const context = await this.getCurrentContext();
|
243
|
+
return `Based on recent activity and current state: ${JSON.stringify(context)}. Recent memories: ${memories.map(m => m.content).join(', ')}`;
|
244
|
+
}
|
245
|
+
getStatus() {
|
246
|
+
return {
|
247
|
+
running: this.isRunning,
|
248
|
+
goals: this.getGoals(),
|
249
|
+
recentTasks: this.taskHistory.slice(-5),
|
250
|
+
address: this.executor.getAddress()
|
251
|
+
};
|
252
|
+
}
|
253
|
+
}
|
254
|
+
exports.Agent = Agent;
|
255
|
+
//# sourceMappingURL=agent.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"agent-server.d.ts","sourceRoot":"","sources":["../../src/examples/agent-server.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,212 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const express_1 = __importDefault(require("express"));
|
7
|
+
const cors_1 = __importDefault(require("cors"));
|
8
|
+
const index_1 = require("../index");
|
9
|
+
const app = (0, express_1.default)();
|
10
|
+
const PORT = parseInt(process.env.PORT) || 5000; // Ensure PORT is a number
|
11
|
+
app.listen(PORT, '0.0.0.0', () => {
|
12
|
+
console.log(`Server is running on port ${PORT}`);
|
13
|
+
});
|
14
|
+
app.use((0, cors_1.default)());
|
15
|
+
app.use(express_1.default.json());
|
16
|
+
let agent;
|
17
|
+
let logger;
|
18
|
+
async function initializeAgent() {
|
19
|
+
try {
|
20
|
+
const config = index_1.Config.load();
|
21
|
+
logger = index_1.Logger.initialize(config);
|
22
|
+
agent = new index_1.Agent(config);
|
23
|
+
// Add default goals
|
24
|
+
agent.addGoal('Monitor Flow EVM blockchain');
|
25
|
+
agent.addGoal('Respond to user queries about blockchain data');
|
26
|
+
agent.addGoal('Execute transactions when requested');
|
27
|
+
await agent.start();
|
28
|
+
logger.info('Agent initialized successfully');
|
29
|
+
return true;
|
30
|
+
}
|
31
|
+
catch (error) {
|
32
|
+
logger?.error('Failed to initialize agent:', error);
|
33
|
+
return false;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
// Health check endpoint
|
37
|
+
app.get('/', (req, res) => {
|
38
|
+
res.json({
|
39
|
+
message: 'Flow EVM AgentKit Server is running!',
|
40
|
+
status: agent ? agent.getStatus() : 'Not initialized',
|
41
|
+
timestamp: new Date().toISOString()
|
42
|
+
});
|
43
|
+
});
|
44
|
+
// Agent status endpoint
|
45
|
+
app.get('/status', (req, res) => {
|
46
|
+
if (!agent) {
|
47
|
+
return res.status(503).json({ error: 'Agent not initialized' });
|
48
|
+
}
|
49
|
+
res.json({
|
50
|
+
status: agent.getStatus(),
|
51
|
+
timestamp: new Date().toISOString()
|
52
|
+
});
|
53
|
+
});
|
54
|
+
// Query endpoint
|
55
|
+
app.post('/query', async (req, res) => {
|
56
|
+
try {
|
57
|
+
if (!agent) {
|
58
|
+
return res.status(503).json({ error: 'Agent not initialized' });
|
59
|
+
}
|
60
|
+
const { question } = req.body;
|
61
|
+
if (!question) {
|
62
|
+
return res.status(400).json({ error: 'Question is required' });
|
63
|
+
}
|
64
|
+
const response = await agent.query(question);
|
65
|
+
res.json({
|
66
|
+
question,
|
67
|
+
response,
|
68
|
+
timestamp: new Date().toISOString()
|
69
|
+
});
|
70
|
+
}
|
71
|
+
catch (error) {
|
72
|
+
logger?.error('Query error:', error);
|
73
|
+
res.status(500).json({
|
74
|
+
error: 'Query failed',
|
75
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
76
|
+
});
|
77
|
+
}
|
78
|
+
});
|
79
|
+
// Add goal endpoint
|
80
|
+
app.post('/goals', async (req, res) => {
|
81
|
+
try {
|
82
|
+
if (!agent) {
|
83
|
+
return res.status(503).json({ error: 'Agent not initialized' });
|
84
|
+
}
|
85
|
+
const { description } = req.body;
|
86
|
+
if (!description) {
|
87
|
+
return res.status(400).json({ error: 'Goal description is required' });
|
88
|
+
}
|
89
|
+
const goalId = agent.addGoal(description);
|
90
|
+
res.json({
|
91
|
+
success: true,
|
92
|
+
goalId,
|
93
|
+
description,
|
94
|
+
timestamp: new Date().toISOString()
|
95
|
+
});
|
96
|
+
}
|
97
|
+
catch (error) {
|
98
|
+
logger?.error('Add goal error:', error);
|
99
|
+
res.status(500).json({
|
100
|
+
error: 'Failed to add goal',
|
101
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
102
|
+
});
|
103
|
+
}
|
104
|
+
});
|
105
|
+
// Get goals endpoint
|
106
|
+
app.get('/goals', (req, res) => {
|
107
|
+
if (!agent) {
|
108
|
+
return res.status(503).json({ error: 'Agent not initialized' });
|
109
|
+
}
|
110
|
+
res.json({
|
111
|
+
goals: agent.getGoals(),
|
112
|
+
timestamp: new Date().toISOString()
|
113
|
+
});
|
114
|
+
});
|
115
|
+
// Balance check endpoint
|
116
|
+
app.get('/balance', async (req, res) => {
|
117
|
+
try {
|
118
|
+
if (!agent) {
|
119
|
+
return res.status(503).json({ error: 'Agent not initialized' });
|
120
|
+
}
|
121
|
+
const balanceResponse = await agent.query('What is my current FLOW balance?');
|
122
|
+
res.json({
|
123
|
+
balance: balanceResponse,
|
124
|
+
timestamp: new Date().toISOString()
|
125
|
+
});
|
126
|
+
}
|
127
|
+
catch (error) {
|
128
|
+
logger?.error('Balance check error:', error);
|
129
|
+
res.status(500).json({
|
130
|
+
error: 'Failed to check balance',
|
131
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
132
|
+
});
|
133
|
+
}
|
134
|
+
});
|
135
|
+
// Transfer endpoint
|
136
|
+
app.post('/transfer', async (req, res) => {
|
137
|
+
try {
|
138
|
+
if (!agent) {
|
139
|
+
return res.status(503).json({ error: 'Agent not initialized' });
|
140
|
+
}
|
141
|
+
const { to, amount } = req.body;
|
142
|
+
if (!to || !amount) {
|
143
|
+
return res.status(400).json({ error: 'Recipient address and amount are required' });
|
144
|
+
}
|
145
|
+
// Add transfer goal
|
146
|
+
const goalId = agent.addGoal(`Transfer ${amount} FLOW to ${to}`);
|
147
|
+
res.json({
|
148
|
+
success: true,
|
149
|
+
message: 'Transfer goal added',
|
150
|
+
goalId,
|
151
|
+
to,
|
152
|
+
amount,
|
153
|
+
timestamp: new Date().toISOString()
|
154
|
+
});
|
155
|
+
}
|
156
|
+
catch (error) {
|
157
|
+
logger?.error('Transfer error:', error);
|
158
|
+
res.status(500).json({
|
159
|
+
error: 'Transfer failed',
|
160
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
161
|
+
});
|
162
|
+
}
|
163
|
+
});
|
164
|
+
// Error handling middleware
|
165
|
+
app.use((error, req, res, next) => {
|
166
|
+
logger?.error('Unhandled error:', error);
|
167
|
+
res.status(500).json({
|
168
|
+
error: 'Internal server error',
|
169
|
+
message: error.message
|
170
|
+
});
|
171
|
+
});
|
172
|
+
// 404 handler
|
173
|
+
app.use('*', (req, res) => {
|
174
|
+
res.status(404).json({
|
175
|
+
error: 'Endpoint not found',
|
176
|
+
path: req.originalUrl
|
177
|
+
});
|
178
|
+
});
|
179
|
+
async function startServer() {
|
180
|
+
console.log('š Starting Flow EVM AgentKit Server...');
|
181
|
+
// Initialize agent
|
182
|
+
const agentReady = await initializeAgent();
|
183
|
+
if (!agentReady) {
|
184
|
+
console.error('ā Failed to initialize agent');
|
185
|
+
process.exit(1);
|
186
|
+
}
|
187
|
+
// Start server
|
188
|
+
app.listen(PORT, '0.0.0.0', () => {
|
189
|
+
console.log(`ā
Server running on port ${PORT}`);
|
190
|
+
console.log(`š Access your agent at: http://localhost:${PORT}`);
|
191
|
+
console.log('š Available endpoints:');
|
192
|
+
console.log(' GET / - Health check');
|
193
|
+
console.log(' GET /status - Agent status');
|
194
|
+
console.log(' POST /query - Ask agent questions');
|
195
|
+
console.log(' GET /goals - List goals');
|
196
|
+
console.log(' POST /goals - Add new goal');
|
197
|
+
console.log(' GET /balance - Check FLOW balance');
|
198
|
+
console.log(' POST /transfer - Transfer FLOW tokens');
|
199
|
+
});
|
200
|
+
// Graceful shutdown
|
201
|
+
process.on('SIGINT', async () => {
|
202
|
+
console.log('\nš Shutting down server...');
|
203
|
+
if (agent) {
|
204
|
+
await agent.stop();
|
205
|
+
}
|
206
|
+
process.exit(0);
|
207
|
+
});
|
208
|
+
}
|
209
|
+
if (require.main === module) {
|
210
|
+
startServer().catch(console.error);
|
211
|
+
}
|
212
|
+
//# sourceMappingURL=agent-server.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"agent-server.js","sourceRoot":"","sources":["../../src/examples/agent-server.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"trading-agent.d.ts","sourceRoot":"","sources":["../../src/examples/trading-agent.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const index_1 = require("../index");
|
4
|
+
async function main() {
|
5
|
+
console.log('š¤ Starting Flow EVM Trading Agent...');
|
6
|
+
try {
|
7
|
+
const config = index_1.Config.load();
|
8
|
+
const logger = index_1.Logger.initialize(config);
|
9
|
+
const agent = new index_1.Agent(config);
|
10
|
+
// Add comprehensive trading goals
|
11
|
+
agent.addGoal('Monitor Flow EVM for trading opportunities');
|
12
|
+
agent.addGoal('Maintain minimum balance of 10 FLOW tokens');
|
13
|
+
agent.addGoal('Execute trades when profitable conditions are met');
|
14
|
+
agent.addGoal('Monitor gas prices and optimize transaction costs');
|
15
|
+
// Set up comprehensive event handling
|
16
|
+
agent.on('event', async (event) => {
|
17
|
+
switch (event.type) {
|
18
|
+
case 'transaction':
|
19
|
+
const tx = event.data.transaction;
|
20
|
+
// Analyze large transactions for trading signals
|
21
|
+
const valueInFlow = tx.value ? Number(tx.value) / 1e18 : 0;
|
22
|
+
if (valueInFlow > 100) {
|
23
|
+
logger.info('Large transaction detected:', {
|
24
|
+
hash: tx.hash,
|
25
|
+
value: `${valueInFlow.toFixed(2)} FLOW`,
|
26
|
+
from: tx.from,
|
27
|
+
to: tx.to
|
28
|
+
});
|
29
|
+
// Agent can analyze this for trading opportunities
|
30
|
+
await agent.query(`Analyze this large transaction: ${tx.hash} worth ${valueInFlow} FLOW`);
|
31
|
+
}
|
32
|
+
break;
|
33
|
+
case 'log':
|
34
|
+
const log = event.data.log;
|
35
|
+
logger.debug('Contract event observed:', {
|
36
|
+
address: log.address,
|
37
|
+
topics: log.topics.slice(0, 2)
|
38
|
+
});
|
39
|
+
break;
|
40
|
+
case 'block':
|
41
|
+
const block = event.data.block;
|
42
|
+
if (Number(block.number) % 100 === 0) {
|
43
|
+
logger.info(`Block ${block.number} processed - checking market conditions`);
|
44
|
+
// Periodic market analysis
|
45
|
+
const marketAnalysis = await agent.query('Analyze current market conditions and suggest actions');
|
46
|
+
logger.info('Market analysis:', marketAnalysis);
|
47
|
+
}
|
48
|
+
break;
|
49
|
+
}
|
50
|
+
});
|
51
|
+
agent.on('started', async () => {
|
52
|
+
console.log('ā
Trading Agent started successfully!');
|
53
|
+
console.log(`š¤ Agent address: ${agent.getStatus().address}`);
|
54
|
+
console.log('š Monitoring Flow EVM for trading opportunities...');
|
55
|
+
// Initial market analysis
|
56
|
+
const initialBalance = await agent.query('What is my current FLOW balance?');
|
57
|
+
console.log('š° Current balance:', initialBalance);
|
58
|
+
const marketOverview = await agent.query('Analyze current market conditions on Flow EVM');
|
59
|
+
console.log('š Market overview:', marketOverview);
|
60
|
+
});
|
61
|
+
// Set up periodic market analysis
|
62
|
+
setInterval(async () => {
|
63
|
+
try {
|
64
|
+
const status = agent.getStatus();
|
65
|
+
if (status.running) {
|
66
|
+
logger.info('Performing periodic analysis...');
|
67
|
+
// Check if we should rebalance portfolio
|
68
|
+
const rebalanceAdvice = await agent.query('Should I rebalance my portfolio based on current conditions?');
|
69
|
+
logger.info('Rebalance recommendation:', rebalanceAdvice);
|
70
|
+
// Check for new opportunities
|
71
|
+
const opportunities = await agent.query('Are there any new trading opportunities?');
|
72
|
+
logger.info('Trading opportunities:', opportunities);
|
73
|
+
}
|
74
|
+
}
|
75
|
+
catch (error) {
|
76
|
+
logger.error('Error in periodic analysis:', error);
|
77
|
+
}
|
78
|
+
}, 300000); // Every 5 minutes
|
79
|
+
// Graceful shutdown
|
80
|
+
process.on('SIGINT', async () => {
|
81
|
+
console.log('\nš Shutting down trading agent...');
|
82
|
+
await agent.stop();
|
83
|
+
process.exit(0);
|
84
|
+
});
|
85
|
+
await agent.start();
|
86
|
+
}
|
87
|
+
catch (error) {
|
88
|
+
console.error('ā Failed to start trading agent:', error);
|
89
|
+
process.exit(1);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
if (require.main === module) {
|
93
|
+
main().catch(console.error);
|
94
|
+
}
|
95
|
+
//# sourceMappingURL=trading-agent.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"trading-agent.js","sourceRoot":"","sources":["../../src/examples/trading-agent.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tx-echo-agent.d.ts","sourceRoot":"","sources":["../../src/examples/tx-echo-agent.ts"],"names":[],"mappings":""}
|