* Get statistics about the federated index.
()
| 482 | * Get statistics about the federated index. |
| 483 | */ |
| 484 | async getStats(): Promise<{ |
| 485 | registered_agents: number; |
| 486 | registered_publishers: number; |
| 487 | discovered_agents: number; |
| 488 | discovered_publishers: number; |
| 489 | discovered_properties: number; |
| 490 | authorizations: number; |
| 491 | authorizations_by_source: { adagents_json: number; agent_claim: number }; |
| 492 | properties_by_type: Record<string, number>; |
| 493 | }> { |
| 494 | // Count registered |
| 495 | const profiles = await this.memberDb.listProfiles({ is_public: true }); |
| 496 | let registeredAgents = 0; |
| 497 | let registeredPublishers = 0; |
| 498 | |
| 499 | for (const profile of profiles) { |
| 500 | registeredAgents += (profile.agents || []).filter(a => a.visibility === 'public').length; |
| 501 | registeredPublishers += (profile.publishers || []).filter(p => p.is_public).length; |
| 502 | } |
| 503 | |
| 504 | // Get discovered stats |
| 505 | const dbStats = await this.db.getStats(); |
| 506 | |
| 507 | return { |
| 508 | registered_agents: registeredAgents, |
| 509 | registered_publishers: registeredPublishers, |
| 510 | ...dbStats, |
| 511 | }; |
| 512 | } |
| 513 | |
| 514 | /** |
| 515 | * Clear all discovered data (for testing or reset). |
nothing calls this directly
no test coverage detected