haiku.rag/haiku_rag_slim/pyproject.toml
Yiorgis Gozadinos bae359e3bf
Align the MCP guidance with the analysis instructions and move to Monty 0.0.23
The execute_code description gains the toc.json node shape, the patterns
the evals put into the analysis instructions (one list_documents call to
map a title to an id, files carry no source, toc before search for a known
document, doc_item_refs are items self_refs, chunk ids join files and are
not citations) and the sandbox's read-only, no-network, time-limit and
output facts, which the analysis instructions now state too. The skill
gains pictures as images, image search when offered, and citing chunk
metadata locators. docs/mcp.md lists the interpreter's limits under Code.

pydantic-monty>=0.0.23 brings collections, itertools, functools,
dataclasses, function decorators and str.format into the sandbox; every
layer names the same modules, and a test imports them. Monty now caps host
callbacks per checkout at 1000 by default; the sandbox raises it out of
reach, since the time budgets govern.
2026-09-07 12:02:33 +03:00

110 lines
3.1 KiB
TOML

[project]
name = "haiku.rag-slim"
description = "Local-first agentic RAG with citations - hybrid search, reranking and multimodal retrieval over your own documents, no database server required - Minimal dependencies"
version = "0.82.1"
authors = [{ name = "Yiorgis Gozadinos", email = "ggozadinos@gmail.com" }]
license = { text = "MIT" }
readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.12"
keywords = [
"RAG",
"agentic-rag",
"lancedb",
"vector-database",
"hybrid-search",
"reranking",
"multimodal-rag",
"embeddings",
"citations",
"document-ingestion",
"mcp",
"mcp-server",
"pydantic-ai",
"docling",
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: Developers",
"Operating System :: Microsoft :: Windows :: Windows 10",
"Operating System :: Microsoft :: Windows :: Windows 11",
"Operating System :: MacOS",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Typing :: Typed",
]
dependencies = [
"docling-core>=2.82.0,<3.0.0",
"httpx>=0.28.1",
"jinja2>=3.1.0",
"fastmcp>=4.0.2,<5.0.0",
"lancedb==0.37.1",
"pathspec>=1.0.4",
"pydantic>=2.12.5",
"pydantic-ai-slim[openai,logfire,ag-ui]>=2.18.0,<3.0.0",
"pydantic-monty>=0.0.23",
"pypdfium2>=5.0",
"python-dotenv>=1.2.2",
"pyyaml>=6.0.3",
"rich>=14.3.3",
"textual-image>=0.8.5",
"typer>=0.21.0,<0.22.0",
"watchfiles>=1.1.1",
"zstandard>=0.23.0; python_version<'3.14'",
]
[project.urls]
Homepage = "https://ggozad.github.io/haiku.rag/"
Documentation = "https://ggozad.github.io/haiku.rag/"
Repository = "https://github.com/ggozad/haiku.rag"
Issues = "https://github.com/ggozad/haiku.rag/issues"
Changelog = "https://ggozad.github.io/haiku.rag/changelog/"
[project.optional-dependencies]
# Document processing
docling = ["docling>=2.102.2,<3.0.0", "opencv-python-headless>=4.6.0.66,<5.0.0.0"]
# S3 / object-storage monitoring
s3 = ["obstore>=0.9,<0.10"]
# Embedding providers
voyageai = ["pydantic-ai-slim[voyageai]"]
# Rerankers
cohere = ["cohere>=5.21.1"]
zeroentropy = ["zeroentropy>=0.1.0a11"]
jina = ["transformers>=4.40.0", "torch>=2.0.0"]
cross-encoder = ["sentence-transformers>=3.0.0"]
# Production ingester (queue, workers, API)
ingester = [
"fastapi>=0.125",
"uvicorn[standard]>=0.32",
"sqlalchemy[asyncio]>=2.0",
"aiosqlite>=0.20",
"asyncpg>=0.29",
"haiku.rag-slim[s3]",
]
# TUI (chat and inspect commands)
tui = [
"textual>=8.2.4",
"tree-sitter>=0.25.2",
"tree-sitter-json>=0.24.8",
]
# Model providers (delegated to pydantic-ai-slim)
anthropic = ["pydantic-ai-slim[anthropic]"]
groq = ["pydantic-ai-slim[groq]"]
google = ["pydantic-ai-slim[google]"]
mistral = ["pydantic-ai-slim[mistral]"]
bedrock = ["pydantic-ai-slim[bedrock]"]
vertexai = ["pydantic-ai-slim[google]"]
[project.scripts]
haiku-rag = "haiku.rag.cli:cli"
haiku-ingester = "haiku.rag.ingester.cli:cli"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["haiku"]