Metadata-Version: 2.4
Name: quest-ai
Version: 0.1.1
Summary: Quest — Socratic AI tutor that never gives the answer, only asks the next better question.
Author: yuvrxj
License-Expression: LicenseRef-Proprietary
Project-URL: Homepage, https://github.com/preoracle/quest
Project-URL: Documentation, https://github.com/preoracle/quest/blob/main/docs/PRODUCT.md
Project-URL: Changelog, https://github.com/preoracle/quest/blob/main/docs/CHANGELOG.md
Keywords: socratic,tutor,education,langgraph,spaced-repetition
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: langchain>=0.3.0
Requires-Dist: langchain-anthropic>=0.3.0
Requires-Dist: langgraph>=0.2.0
Requires-Dist: langgraph-checkpoint-sqlite>=2.0.0
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: pydantic>=2.7.0
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: rich>=13.0.0
Requires-Dist: questionary>=2.0.0
Provides-Extra: api
Requires-Dist: fastapi>=0.115.0; extra == "api"
Requires-Dist: uvicorn>=0.30.0; extra == "api"
Requires-Dist: httpx>=0.27.0; extra == "api"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: httpx>=0.27.0; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"

# Quest

Socratic AI tutor — **no explanations**, only the next better question. Separate evaluator, concept DAGs, mastery tracking, resumable sessions.

**Requires Python 3.11+**

```bash
pip install -U quest-ai
mkdir -p ~/.quest
echo 'ANTHROPIC_API_KEY=sk-ant-...' >> ~/.quest/.env
quest
```

## Quick start

| Command | What it does |
|---------|----------------|
| `quest` | Topic catalog → pick or search → session |
| `quest TOPIC` | Start or resume a topic |
| `quest TOPIC --fresh` | New session, replay full concept DAG |
| `quest topic new "your goal"` | Generate a concept map (LLM) |
| `quest mastery` | Mastery scores |
| `quest reset` | Wipe progress (topic YAMLs stay) |

At the catalog prompt: `3`, `rag_pipeline`, `rag_pipeline --fresh`, `new react hooks`, `help`, `quit`.

Data when installed: `~/.quest/` (`quest.db`, checkpoints, your topics). In a git checkout, data stays beside `cli.py`.

## How scoring works

The **evaluator** scores your **latest answer** to the **latest question** (see `/last` in a session). The **tutor** sees the full back-and-forth **on the current concept** so follow-up questions can build on what you said.

## vs “just use ChatGPT”

Quest is for **learning**: tutor does not teach; a separate model scores you; topics are prerequisite graphs; progress persists with SM-2 scheduling.

## Docs

- [Product snapshot](docs/PRODUCT.md)
- [Changelog](docs/CHANGELOG.md)
- [Brief](docs/BRIEF.md)
- [Roadmap](docs/ROADMAP.md)

## Development

```bash
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
pytest
python cli.py
```

Optional: `QUEST_WIZARD=1 quest` for arrow-key menus instead of the Rich catalog.

## Author

[yuvrxj](https://pypi.org/user/yuvrxj/) — PyPI package `quest-ai`.
