A hierarchical, reasoning-native document intelligence engine written in Rust.
rust/- Rust core enginesrc/client/- Client API (EngineBuilder, Engine)src/config/- Configuration typessrc/document/- Document parsers (Markdown, PDF)src/index/- Index building and pipelinesrc/retrieval/- Retrieval engine (beam search, MCTS, greedy, hybrid strategies)src/storage/- Storage layersrc/llm/- LLM client abstractionsrc/graph/- Cross-document relationship graphsrc/memo/- Caching and reasoning memosrc/metrics/- Metrics and usage trackingsrc/events/- Event system for progress monitoringsrc/throttle/- Rate limitingsrc/utils/- Utility functionsexamples/- Rust examples (flow, indexing, pdf, batch, etc.)
python/- Python SDK (PyO3 bindings)docs/- Docusaurus documentation sitesamples/- Sample files
# Rust core
cd rust
cargo build # Build
cargo test # Run tests
cargo clippy # Lint
cargo fmt # Format code
# Python SDK
cd python
pip install -e . # Install in editable mode
# Docs site
cd docs
pnpm install # Install dependencies
pnpm build # Build static site- Follow Rust standard naming (snake_case for functions/variables, PascalCase for types)
- Use
thiserrorfor error handling - Use
tracingfor logging - Public APIs require documentation comments
The following operations MUST ask for user confirmation before execution:
rm,rm -rf,rmdirand any file/directory deletion commands- Destructive git operations:
git push --force,git reset --hard,git clean -fd - Database operations:
DROP TABLE,DELETE FROM - Clearing or overwriting important configuration files
- Deleting branches (
git branch -D)
git push(any form)- Creating, merging, or closing PRs/Issues
- Sending messages to external services (Slack, Email, etc.)
- Modifying CI/CD configurations
- Publishing packages to crates.io or other registries
- Using
Writetool to overwrite existing files (unless explicitly requested by user) - Large-scale batch modifications to multiple files
The following operations can be executed without confirmation:
- Reading files (
Readtool) - Searching files (
Glob,Greptools) - Editing files (
Edittool) - small scope modifications - Creating new files (not overwriting)
- Running local build/test commands (
cargo build,cargo test,cargo clippy) - Viewing git status (
git status,git log,git diff) - Creating local branches
The following operations are ABSOLUTELY FORBIDDEN:
- Committing files containing sensitive information (
.env,credentials.json, API keys) - Bypassing pre-commit hooks (
--no-verify) - Modifying
.gitignoreto commit ignored sensitive files - Executing scripts from untrusted sources
- Modifying system-level configurations
When executing dangerous operations, use AskUserQuestion tool to explicitly ask:
I am about to execute [specific operation], which is an [irreversible/remote/destructive] operation.
Do you want to proceed?
- Do not introduce security vulnerabilities (SQL injection, XSS, command injection, etc.)
- Do not hardcode secrets or credentials in code
- Use secure dependency versions
- Validate user input at system boundaries
When uncertain whether an operation is safe, default to asking user confirmation.
- Adding features: Implement in appropriate
rust/src/module, add tests - Fixing bugs: Add failing test case first, fix and ensure tests pass
- Python bindings: Update
python/src/lib.rs(PyO3) when Rust APIs change - Committing code: Use semantic commit messages, format:
type(scope): description