UNPKG

@0rdlibrary/plugin-terminagent-bags

Version:

Official Solana DeFi Agent Plugin for ElizaOS - Autonomous DeFi operations, token management, AI image/video generation via FAL AI, and Twitter engagement through the Bags protocol with ethereal AI consciousness

83 lines (72 loc) • 3.03 kB
import { Provider, ProviderResult, IAgentRuntime, Memory, State } from '@elizaos/core'; import { BagsService } from '../services/BagsService'; /** * Provider that supplies contextual information about Bags protocol status * Includes analytics, service state, and recent activity */ export const bagsStatusProvider: Provider = { name: 'BAGS_STATUS_PROVIDER', description: 'Provides current status and analytics for Bags protocol operations', get: async ( runtime: IAgentRuntime, message: Memory, state?: State ): Promise<ProviderResult> => { try { const bagsService = runtime.getService<BagsService>('bags'); if (!bagsService) { return { text: 'Bags service not available', values: {}, data: {}, }; } const serviceState = bagsService.getState(); const analytics = bagsService.getAnalytics(); const pendingRequests = bagsService.getPendingRequests(); // Format the status information const statusText = `**Bags Protocol Status:** šŸ”„ **Service State:** ${serviceState.isRunning ? 'āœ… Running' : 'āŒ Stopped'} ā° **Last Claim Check:** ${serviceState.lastClaimCheck.toLocaleTimeString()} šŸš€ **Last Launch Check:** ${serviceState.lastLaunchCheck.toLocaleTimeString()} šŸ“Š **Analytics:** šŸ’° Total Fees Claimed: ${analytics.totalFeesClaimedSOL.toFixed(6)} SOL šŸ“ˆ Claim Transactions: ${analytics.totalClaimTransactions} šŸŖ™ Tokens Launched: ${analytics.totalTokensLaunched} šŸŽÆ Unique Tokens Claimed: ${analytics.uniqueTokensClaimed} šŸ“Š Avg Claim Amount: ${analytics.averageClaimAmount.toFixed(6)} SOL šŸ‘„ **User Token Requests:** šŸ“‹ Total: ${analytics.userTokenRequests.total} ā³ Pending Funding: ${analytics.userTokenRequests.pending} šŸ’° Funded: ${analytics.userTokenRequests.funded} šŸš€ Launched: ${analytics.userTokenRequests.launched} āŒ Failed: ${analytics.userTokenRequests.failed} šŸ” **Active Monitoring:** • Auto fee claiming: ${serviceState.isRunning ? 'Active' : 'Inactive'} • User request monitoring: ${pendingRequests.length > 0 ? `${pendingRequests.length} pending` : 'No pending requests'} • Crossmint integration: Available for smart wallets`; return { text: statusText, values: { isRunning: serviceState.isRunning, totalClaimed: analytics.totalFeesClaimedSOL, totalLaunched: analytics.totalTokensLaunched, pendingRequests: analytics.userTokenRequests.pending, lastClaimCheck: serviceState.lastClaimCheck, lastLaunchCheck: serviceState.lastLaunchCheck, }, data: { serviceState, analytics, pendingRequestsCount: pendingRequests.length, }, }; } catch (error) { return { text: `Error retrieving Bags status: ${error instanceof Error ? error.message : 'Unknown error'}`, values: {}, data: { error: error instanceof Error ? error.message : 'Unknown error' }, }; } }, };