# exograph v0.9.1 - Table of Contents

Local CodeQL-style code search for Elixir, backed by DuckDB/QuackDB and ExAST.

## Pages

- [Changelog](changelog.md)
- [Exograph](readme.md)
- [Getting Started](getting-started.md)
- [Querying](querying.md)
- [Exograph DSL](dsl.md)
- [Code Facts](code-facts.md)
- [Call Graph](call-graph.md)
- [DuckDB and QuackDB](duckdb.md)
- [Package Indexing](package-indexing.md)
- [Sharded DuckDB semantics](sharded-duckdb.md)
- [Mix Tasks](mix-tasks.md)
- [Web UI](web-ui.md)
- [JSON API](api.md)
- [Comparisons](comparisons.md)
- [Architecture](architecture.md)

## Modules

- [Exograph](Exograph.md): Local CodeQL-style code search for Elixir, backed by DuckDB/QuackDB and ExAST.
- [Exograph.CallEdge](Exograph.CallEdge.md): Reach-derived call graph edge.
- [Exograph.CallEdgeHit](Exograph.CallEdgeHit.md): Call graph edge search hit.
- [Exograph.Comment](Exograph.Comment.md): Source comment extracted from a file.
- [Exograph.CommentHit](Exograph.CommentHit.md): Comment search hit.
- [Exograph.DSL](Exograph.DSL.md): Ecto-shaped query DSL for Exograph.
- [Exograph.DSL.Query](Exograph.DSL.Query.md): Query IR produced by `Exograph.DSL`.

- [Exograph.Definition](Exograph.Definition.md): Syntactic definition extracted from source.
- [Exograph.DefinitionHit](Exograph.DefinitionHit.md): Definition search hit.
- [Exograph.DuckDB](Exograph.DuckDB.md): DuckDB schema helpers for QuackDB-backed Exograph storage.

- [Exograph.DuckDB.TextSearch](Exograph.DuckDB.TextSearch.md): File-level text search implemented with Ecto queries over DuckDB storage tables.

- [Exograph.Extractor.ExAST](Exograph.Extractor.ExAST.md): Extracts ExAST-backed structural fragments from Elixir source files.

- [Exograph.Extractor.Reach](Exograph.Extractor.Reach.md): Extracts Reach semantic facts from source files.
- [Exograph.File](Exograph.File.md): Source file stored once per package version.

- [Exograph.Fragment](Exograph.Fragment.md): Searchable code unit.
- [Exograph.GraphNode](Exograph.GraphNode.md): Reach-derived semantic graph node.
- [Exograph.Hit](Exograph.Hit.md): Candidate or verified search hit.
- [Exograph.Index](Exograph.Index.md): Runtime handle for an Exograph index.
- [Exograph.Package](Exograph.Package.md): Source package identity for multi-package indexes.

- [Exograph.PackageVersion](Exograph.PackageVersion.md): Concrete package release/version identity for multi-version indexes.

- [Exograph.Reach.SourceSmellAudit](Exograph.Reach.SourceSmellAudit.md): Audits Reach source-pattern smell checks against an Exograph index.
- [Exograph.Reach.SourceSmellAudit.Finding](Exograph.Reach.SourceSmellAudit.Finding.md): A Reach smell finding discovered in an Exograph fragment.
- [Exograph.Reach.SourceSmellAudit.Pattern](Exograph.Reach.SourceSmellAudit.Pattern.md): A planned Reach source-pattern smell used by the Exograph audit scanner.
- [Exograph.Reach.SourceSmellAudit.Result](Exograph.Reach.SourceSmellAudit.Result.md): Summary and findings returned by a Reach source smell audit scan.
- [Exograph.Reference](Exograph.Reference.md): Syntactic reference extracted from source.
- [Exograph.ReferenceHit](Exograph.ReferenceHit.md): Reference search hit.
- [Exograph.ShardTelemetry](Exograph.ShardTelemetry.md): Emits telemetry for work performed by a single shard in sharded searches.
- [Exograph.ShardedIndex](Exograph.ShardedIndex.md): Runtime handle for an index split across multiple independent Exograph indexes.
- [Exograph.Storage.CallEdgeRecord](Exograph.Storage.CallEdgeRecord.md): Ecto schema for persisted call graph edges.

- [Exograph.Storage.CommentRecord](Exograph.Storage.CommentRecord.md): Ecto schema for comments extracted from indexed files.

- [Exograph.Storage.Config](Exograph.Storage.Config.md): Normalizes storage options into store structs.
- [Exograph.Storage.DefinitionRecord](Exograph.Storage.DefinitionRecord.md): Ecto schema for persisted symbol definitions.

- [Exograph.Storage.FactQuery](Exograph.Storage.FactQuery.md): Shared Ecto queries for definition and reference fact searches.

- [Exograph.Storage.FileRecord](Exograph.Storage.FileRecord.md): Ecto schema for indexed source files.

- [Exograph.Storage.FragmentRecord](Exograph.Storage.FragmentRecord.md): Ecto schema for persisted structural code fragments.

- [Exograph.Storage.FragmentStore](Exograph.Storage.FragmentStore.md): Durable fragment store backed by Ecto repositories.

- [Exograph.Storage.FragmentTermRecord](Exograph.Storage.FragmentTermRecord.md): Ecto schema for fragment-to-term inverted-index rows.

- [Exograph.Storage.GraphNodeRecord](Exograph.Storage.GraphNodeRecord.md): Ecto schema for call-graph nodes extracted from source code.

- [Exograph.Storage.Hydration](Exograph.Storage.Hydration.md): Converts storage records and joined file/version columns back into domain structs.

- [Exograph.Storage.InvertedIndex](Exograph.Storage.InvertedIndex.md): Ecto candidate retrieval for DuckDB/QuackDB indexes.
- [Exograph.Storage.Migrations.CreateSchema](Exograph.Storage.Migrations.CreateSchema.md): Ecto migration that creates the DuckDB-backed Exograph storage schema.

- [Exograph.Storage.PackageRecord](Exograph.Storage.PackageRecord.md): Ecto schema for indexed packages.

- [Exograph.Storage.PackageVersionRecord](Exograph.Storage.PackageVersionRecord.md): Ecto schema for indexed package versions.

- [Exograph.Storage.ReferenceRecord](Exograph.Storage.ReferenceRecord.md): Ecto schema for persisted symbol references.

- [Exograph.Storage.SQL](Exograph.Storage.SQL.md): Identifier quoting helpers used at QuackDB helper boundaries.

- [Exograph.Storage.Schema](Exograph.Storage.Schema.md): Declares Exograph storage tables, Ecto record modules, and index metadata.
- [Exograph.Storage.Schema.Declaration](Exograph.Storage.Schema.Declaration.md): Compile-time helpers for declaring storage table and index metadata.

- [Exograph.Storage.SchemaMigration](Exograph.Storage.SchemaMigration.md): Schema record used to mark Exograph DuckDB migrations applied.

- [Exograph.Storage.Scope](Exograph.Storage.Scope.md): Ecto predicates for applying package and package-version scopes to storage queries.

- [Exograph.Storage.TermRecord](Exograph.Storage.TermRecord.md): Ecto schema for normalized structural search terms.

- [Exograph.Storage.TreeNodeRecord](Exograph.Storage.TreeNodeRecord.md): Ecto schema for AST tree nodes attached to a fragment.

- [Exograph.Storage.TreeStore](Exograph.Storage.TreeStore.md): Durable AST tree node store backed by Ecto repositories.

- [Exograph.TextHit](Exograph.TextHit.md): Source text search hit.
- [Exograph.Web.Health](Exograph.Web.Health.md): Builds the public health payload for Exograph's web API.
- [Exograph.Web.QueryTelemetry](Exograph.Web.QueryTelemetry.md): Emits telemetry and slow-query logs for public web search requests.

## Mix Tasks

- [mix exograph.index](Mix.Tasks.Exograph.Index.md): Indexes Elixir source files with Exograph's DuckDB/QuackDB storage.
- [mix exograph.index.hex](Mix.Tasks.Exograph.Index.Hex.md): Downloads and indexes Hex.pm packages into a DuckDB/QuackDB-backed Exograph index by default.
- [mix exograph.reach.audit](Mix.Tasks.Exograph.Reach.Audit.md): Audits Reach source-pattern smell modules against an Exograph DuckDB index.
- [mix exograph.search](Mix.Tasks.Exograph.Search.md): Searches Elixir source files with Exograph's DuckDB/QuackDB storage.
- [mix exograph.web](Mix.Tasks.Exograph.Web.md): Starts a standalone web interface for exploring an Exograph index.

