Skip to content

feat: agent backend — indexer, API endpoints (#102)#30

Merged
lai3d merged 1 commit into
mainfrom
feat/agent-backend
Mar 11, 2026
Merged

feat: agent backend — indexer, API endpoints (#102)#30
lai3d merged 1 commit into
mainfrom
feat/agent-backend

Conversation

@lai3d

@lai3d lai3d commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Agent event indexer (src/indexer/agent.ts): Processes AgentRegistry contract events (AgentRegistered, AgentRevoked, AgentFunded, SessionKeyIssued, SessionKeyRevoked) and syncs to PostgreSQL tables
  • Indexer pipeline integration: Agent processor runs in parallel with token/contract processors (graceful failure — won't block block indexing)
  • 5 new DB-backed API endpoints:
    • GET /agents/stats — aggregate stats (total, active, deposits, spent)
    • GET /agents/dashboard — operator view with alerts, spending trend, filterable by owner
    • GET /agents/:agentId/transactions — paginated transaction history
    • GET /agents/:agentId/session-keys — session keys with computed status (valid/expired/revoked)
    • GET /agents/:agentId/spending — spending analytics with daily breakdown

Requires migration 008_agents.sql from qfc-explorer (already pushed to feat/agent-explorer-pages).

Test plan

  • Run migration 008_agents.sql on test database
  • Start indexer, verify agent events are indexed from AgentRegistry contract
  • Verify GET /agents/stats returns correct aggregates
  • Verify GET /agents/dashboard returns agents, alerts, spending trend
  • Verify GET /agents/:id/transactions returns paginated results
  • Verify GET /agents/:id/session-keys computes correct status
  • Verify GET /agents/:id/spending returns daily breakdown

🤖 Generated with Claude Code

- Add agent event processor (indexer/agent.ts) to sync AgentRegistry
  contract events (register, revoke, fund, session key issue/revoke)
- Integrate agent processor into indexer pipeline (parallel with token/contract)
- Add 5 new DB-backed API endpoints: stats, dashboard, transactions,
  session-keys, spending analytics
- Endpoints use cached() + getReadPool() for read-replica support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@lai3d lai3d merged commit 1835f0f into main Mar 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant