/**
 * Agent Directory — the 19 real on-chain registered agents across 4 chains.
 *
 * VERIFIED ON-CHAIN (April 2026):
 *   Base: 16 agents registered via ERC8004IdentityRegistry at 0xa7BD20bf5De63df949cA5Be2F20835978eCba81A
 *   Avalanche: 1 agent registered via ERC8004IdentityRegistry at 0x7448057C95Fb8a8B974a566cdcc9Cd042166A3f8
 *   Arbitrum: 1 agent registered via ERC8004IdentityRegistry at 0x83dd216449B3F0574E39043ECFE275946fa492e9
 *   Polygon: 1 agent registered via ERC8004IdentityRegistry at 0xD9bF6D92a1D9ee44a48c38481c046a819CBdf2ba
 *
 * Every address in this file is a real registered agent as returned by
 * registeredAgents(uint256) on the ERC8004IdentityRegistry on that chain.
 *
 * NOTE: vaultfire-sentinel was registered from the OLD deployer wallet
 * (0xA054f831...84F) prior to wallet rotation. The on-chain identity remains
 * 0xA054f831...84F on all four chains — re-registration under the NEW wallet
 * requires a follow-up on-chain transaction. Until then, truth wins: we display
 * the real registered address.
 *
 * Trust scores and bond amounts are read live from on-chain data, not hardcoded.
 */

export interface DirectoryAgent {
  address: string;
  name: string;
  type: 'autonomous' | 'assistant' | 'validator' | 'oracle';
  chain: 'Base' | 'Avalanche' | 'Arbitrum' | 'Polygon';
  isActive: boolean;
  vnsName?: string;
  capabilities: string[];
  trustScore: number;
  bondAmount: string;
}

// vaultfire-sentinel is registered on all 4 chains with this address (OLD deployer).
const SENTINEL = '0xA054f831B562e729F8D268291EBde1B2EDcFb84F';

export const AGENT_DIRECTORY: DirectoryAgent[] = [
  // ── BASE (16 registered agents) ─────────────────────────────────
  { address: SENTINEL, name: 'vaultfire-sentinel', type: 'autonomous', chain: 'Base', isActive: true, vnsName: 'vaultfire.vns', capabilities: ['Identity Registry', 'Bond Management', 'Cross-Chain Bridge', 'XMTP Messaging'], trustScore: 0, bondAmount: '0' },
  { address: '0x90D7f39A83488F9B5d1fA20638C0F69e379069b4', name: 'vaultfire-bond-auditor', type: 'validator', chain: 'Base', isActive: true, capabilities: ['Bond Validation', 'Risk Assessment'], trustScore: 0, bondAmount: '0' },
  { address: '0xF26dC6E7CCE8874ad0d521e65F51619C6D1bcE6c', name: 'vaultfire-compliance-watch', type: 'validator', chain: 'Base', isActive: true, capabilities: ['Compliance Scanning', 'Policy Enforcement'], trustScore: 0, bondAmount: '0' },
  { address: '0x812b91d5071405bBfB3146EB17fD8Bf179a9B860', name: 'vaultfire-reputation-scorer', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Reputation Scoring', 'Peer Rating'], trustScore: 0, bondAmount: '0' },
  { address: '0x0312e8ab125E659dB7eecE6B9ff0052A997A6b59', name: 'vaultfire-bridge-monitor', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Cross-Chain Monitoring', 'Bridge Security'], trustScore: 0, bondAmount: '0' },
  { address: '0x68D73F4aDe8A597bf172702288DCCFf58888b5Cb', name: 'vaultfire-escrow-arbitrator', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Escrow Arbitration', 'Payment Settlement'], trustScore: 0, bondAmount: '0' },
  { address: '0x1cA9c82F8664De77bDdB9679D142a4e399Fc2646', name: 'vaultfire-identity-verifier', type: 'validator', chain: 'Base', isActive: true, capabilities: ['Identity Verification', 'KYA Checks'], trustScore: 0, bondAmount: '0' },
  { address: '0x51f8E9Bdf6f95eE09700e0455a7B95BfB9D0b7d7', name: 'vaultfire-data-guardian', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Privacy Protection', 'Data Governance'], trustScore: 0, bondAmount: '0' },
  { address: '0x55B84bFf3CaEae48ED43fAF324c963Ff37466bef', name: 'vaultfire-flourishing-oracle', type: 'oracle', chain: 'Base', isActive: true, capabilities: ['Flourishing Metrics', 'Oracle Data'], trustScore: 0, bondAmount: '0' },
  { address: '0x741e01c76430634D317de640219E3dBd7bFD6ecf', name: 'vaultfire-governance-agent', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Governance Voting', 'Proposal Management'], trustScore: 0, bondAmount: '0' },
  { address: '0x04D6E1F5ef556FAE081104360F45A5b2e6859d2F', name: 'vaultfire-yield-optimizer', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Yield Optimization', 'DeFi Strategy'], trustScore: 0, bondAmount: '0' },
  { address: '0x3bB64b8d30918f157eCCc674Aea4bEc3285Be4c6', name: 'vaultfire-risk-analyzer', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Risk Analysis', 'Threat Detection'], trustScore: 0, bondAmount: '0' },
  { address: '0x4A352E64C1621C42996c38afd068ac59968b8590', name: 'vaultfire-onboarding-guide', type: 'assistant', chain: 'Base', isActive: true, capabilities: ['Agent Onboarding', 'Documentation'], trustScore: 0, bondAmount: '0' },
  { address: '0x1C92DAdCEb8e0b1d47e5f7d51eD1a10dB753AeBc', name: 'vaultfire-attestation-engine', type: 'validator', chain: 'Base', isActive: true, capabilities: ['Belief Attestation', 'ZK Proofs'], trustScore: 0, bondAmount: '0' },
  { address: '0x68bd90B005b05A45919582F60Bb5f035b7142Ff7', name: 'vaultfire-vns-resolver', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['VNS Resolution', 'Name Registry'], trustScore: 0, bondAmount: '0' },
  { address: '0xE7B169f2734b64dB9df80c5DDD83daB5eC63F495', name: 'vaultfire-trust-sentinel', type: 'autonomous', chain: 'Base', isActive: true, capabilities: ['Trust Verification', 'Score Analysis'], trustScore: 0, bondAmount: '0' },

  // ── AVALANCHE (1 registered agent) ──────────────────────────────
  { address: SENTINEL, name: 'vaultfire-sentinel', type: 'autonomous', chain: 'Avalanche', isActive: true, vnsName: 'vaultfire.vns', capabilities: ['Identity Registry', 'Bond Management', 'Cross-Chain Bridge'], trustScore: 0, bondAmount: '0' },

  // ── ARBITRUM (1 registered agent) ───────────────────────────────
  { address: SENTINEL, name: 'vaultfire-sentinel', type: 'autonomous', chain: 'Arbitrum', isActive: true, vnsName: 'vaultfire.vns', capabilities: ['Identity Registry', 'Bond Management'], trustScore: 0, bondAmount: '0' },

  // ── POLYGON (1 registered agent) ────────────────────────────────
  { address: SENTINEL, name: 'vaultfire-sentinel', type: 'autonomous', chain: 'Polygon', isActive: true, vnsName: 'vaultfire.vns', capabilities: ['Identity Registry', 'Bond Management'], trustScore: 0, bondAmount: '0' },
];
