How maxoliverbr/eia-api-ts works
eia-api-ts is a typed HTTP wrapper that makes EIA data easier for agents and TypeScript clients to discover and query. The main workflow is to discover a domain, inspect its routes or facets, then submit a unified query that the service validates and proxies to EIA. Search, the agent guide, ontology endpoints, and optional MCP access provide complementary ways to find and use datasets. The graph reflects documented capabilities and sampled wiring; unsampled route implementations are represented only where the README or source index supports them.
Main entry points: elysia.config.ts App composition · domains/index.ts Domain registry · eia-client.ts EIA HTTP client · ontology/index.ts Ontology model
Components 30
HTTP service
- App composition
elysia.config.ts - Runtime config
src/config/env.ts - Health and metadata
src/routes/meta.ts - Root endpoint
src/routes/root.ts - OpenAPI spec
src/openapi.ts
Discovery and guidance
- Domain registry
src/domains/index.ts - Domain metadata
src/domains - Domain discovery
src/routes/discovery.ts - Facet inspection
src/routes/facets.ts - Dataset search
src/routes/search.ts - Search ranking
src/lib/search.ts - Agent guide
src/routes/guide.ts
Energy data access
- Unified query
src/routes/query.ts - EIA HTTP client
src/lib/eia-client.ts - Response cache
src/lib/cache.ts - Rate limiter
src/lib/rate-limiter.ts - Error normalization
src/lib/errors.ts
Ontology
- Ontology API
src/routes/ontology.ts - Ontology model
src/ontology/index.ts - Energy classes
src/ontology/classes.ts - Typed relations
src/ontology/relations.ts - Domain mappings
src/ontology/mappings.ts - Semantic facets
src/ontology/facet-bindings.ts
MCP access
- MCP endpoint
src/routes/mcp.ts - MCP tools and resources
src/mcp/index.ts - MCP tools
src/mcp/tools.ts - MCP resources
src/mcp/resources.ts - In-process client
src/mcp/client.ts
Other components
- API client
- EIA API
Connections 38
- API client → App composition: requests
- App composition → Root endpoint: mounts
elysia.config.ts - App composition → Health and metadata: mounts
elysia.config.ts - App composition → Domain discovery: mounts
elysia.config.ts - App composition → Facet inspection: mounts
elysia.config.ts - App composition → Unified query: mounts
elysia.config.ts - App composition → Dataset search: mounts
elysia.config.ts - App composition → Agent guide: mounts
elysia.config.ts - App composition → Ontology API: mounts
elysia.config.ts - App composition → MCP endpoint: optionally mounts
elysia.config.ts - App composition → OpenAPI spec: uses
elysia.config.ts - App composition → Runtime config: starts with
src/index.ts - Domain discovery → Domain registry: reads
src/routes/discovery.ts - Domain registry → Domain metadata: aggregates
src/domains/index.ts - Facet inspection → EIA HTTP client: fetches facets
src/routes/facets.ts - Facet inspection → Domain registry: reads
src/routes/facets.ts - Dataset search → Search ranking: searches with
src/routes/search.ts - Dataset search → Domain registry: searches
src/routes/search.ts - Agent guide → Domain registry: uses metadata
src/routes/guide.ts - Unified query → Domain registry: resolves route
src/routes/query.ts - Unified query → EIA HTTP client: proxies query
src/routes/query.ts - EIA HTTP client → EIA API: sends requests
src/lib/eia-client.ts - EIA HTTP client → Response cache: caches responses
src/lib/eia-client.ts - EIA HTTP client → Rate limiter: queues requests
src/lib/eia-client.ts - EIA HTTP client → Error normalization: normalizes errors
src/lib/eia-client.ts - Ontology API → Ontology model: queries and exports
src/routes/ontology.ts - Ontology API → Search ranking: searches ontology
src/routes/ontology.ts - Ontology API → Domain registry: reads domains
src/routes/ontology.ts - Ontology model → Energy classes: uses
src/ontology/index.ts - Ontology model → Typed relations: uses
src/ontology/index.ts - Ontology model → Domain mappings: uses
src/ontology/index.ts - Ontology model → Semantic facets: uses
src/ontology/index.ts - MCP endpoint → MCP tools and resources: mounts
- MCP tools and resources → MCP tools: registers
src/mcp/index.ts - MCP tools and resources → MCP resources: registers
src/mcp/index.ts - MCP tools → In-process client: calls routes through
src/mcp/tools.ts - MCP resources → In-process client: calls routes through
src/mcp/resources.ts - In-process client → App composition: dispatches in-process
src/mcp/client.ts