# RAG Pipeline for Language Specification Exploration

This project implements a RAG-based AI chat agent to explore the ECMAScript specification and its implementation in `engine262`.

## Prerequisites

- **Node.js**: Version 18+
- **Ollama**: Installed locally with an embedding model (e.g., `nomic-embed-text`)
- **OpenAI-compatible Endpoint**: A hosted or local LLM service

## Setup

1. **Install dependencies**:
   ```bash
   bun install
   ```

2. **Prepare environment**:
   ```bash
   export OPENAI_API_BASE="your_endpoint_base_url"
   export OPENAI_API_KEY="your_api_key"
   ```

3. **Clone specification**:
   (Ensure `./spec-built/multipage` contains the HTML files)

4. **Ingest data**:
   ```bash
   bun run ingest
   ```
    *Note: This will take significant time as it generates local embeddings via Ollama for both the spec and the implementation.*

5. **Build graph**:
   ```bash
   bun run build
   ```

6. **Run tests**:
   ```bash
   bun test
   ```

## Usage

Ask the agent questions about how code relates to the specification:

```bash
bun run agent "Explain how the 'if' statement works and show its implementation."
```

The agent will use tools to search the specification, explore the implementation code, and navigate the relationships between them using the graph.
