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.
Files changed (64) hide show
  1. package/.cache/replit/env/latest +59 -0
  2. package/.cache/replit/env/latest.json +1 -0
  3. package/.cache/replit/modules/nodejs-20.res +1 -0
  4. package/.cache/replit/modules/replit-rtld-loader.res +1 -0
  5. package/.cache/replit/modules/replit.res +1 -0
  6. package/.cache/replit/modules.stamp +0 -0
  7. package/.cache/replit/nix/dotreplitenv.json +1 -0
  8. package/.cache/replit/toolchain.json +1 -0
  9. package/.env.example +25 -0
  10. package/LICENSE +22 -0
  11. package/README.md +421 -0
  12. package/dist/cli/scaffold.d.ts +8 -0
  13. package/dist/cli/scaffold.d.ts.map +1 -0
  14. package/dist/cli/scaffold.js +369 -0
  15. package/dist/cli/scaffold.js.map +1 -0
  16. package/dist/config/index.d.ts +7 -0
  17. package/dist/config/index.d.ts.map +1 -0
  18. package/dist/config/index.js +42 -0
  19. package/dist/config/index.js.map +1 -0
  20. package/dist/core/agent.d.ts +38 -0
  21. package/dist/core/agent.d.ts.map +1 -0
  22. package/dist/core/agent.js +255 -0
  23. package/dist/core/agent.js.map +1 -0
  24. package/dist/examples/agent-server.d.ts +2 -0
  25. package/dist/examples/agent-server.d.ts.map +1 -0
  26. package/dist/examples/agent-server.js +212 -0
  27. package/dist/examples/agent-server.js.map +1 -0
  28. package/dist/examples/trading-agent.d.ts +2 -0
  29. package/dist/examples/trading-agent.d.ts.map +1 -0
  30. package/dist/examples/trading-agent.js +95 -0
  31. package/dist/examples/trading-agent.js.map +1 -0
  32. package/dist/examples/tx-echo-agent.d.ts +2 -0
  33. package/dist/examples/tx-echo-agent.d.ts.map +1 -0
  34. package/dist/examples/tx-echo-agent.js +67 -0
  35. package/dist/examples/tx-echo-agent.js.map +1 -0
  36. package/dist/index.d.ts +13 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +42 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/logger/index.d.ts +8 -0
  41. package/dist/logger/index.d.ts.map +1 -0
  42. package/dist/logger/index.js +49 -0
  43. package/dist/logger/index.js.map +1 -0
  44. package/dist/modules/executor.d.ts +21 -0
  45. package/dist/modules/executor.d.ts.map +1 -0
  46. package/dist/modules/executor.js +205 -0
  47. package/dist/modules/executor.js.map +1 -0
  48. package/dist/modules/knowledge.d.ts +19 -0
  49. package/dist/modules/knowledge.d.ts.map +1 -0
  50. package/dist/modules/knowledge.js +208 -0
  51. package/dist/modules/knowledge.js.map +1 -0
  52. package/dist/modules/observer.d.ts +26 -0
  53. package/dist/modules/observer.d.ts.map +1 -0
  54. package/dist/modules/observer.js +184 -0
  55. package/dist/modules/observer.js.map +1 -0
  56. package/dist/modules/planner.d.ts +15 -0
  57. package/dist/modules/planner.d.ts.map +1 -0
  58. package/dist/modules/planner.js +179 -0
  59. package/dist/modules/planner.js.map +1 -0
  60. package/dist/types/index.d.ts +67 -0
  61. package/dist/types/index.d.ts.map +1 -0
  62. package/dist/types/index.js +3 -0
  63. package/dist/types/index.js.map +1 -0
  64. 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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=agent-server.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trading-agent.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tx-echo-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx-echo-agent.d.ts","sourceRoot":"","sources":["../../src/examples/tx-echo-agent.ts"],"names":[],"mappings":""}