haiku.rag/haiku_rag_slim/haiku/rag
Yiorgis Gozadinos 61a756da7f
Support Pydantic AI agent specs via from_spec
`Agent.from_spec` raised `TypeError` on `RAGCapability` and `AnalysisCapability`,
whose constructors take a state class, packaged instruction text and a tool-name
set, and silently omitted both from the generated spec schema. The two
zero-configuration capabilities constructed but with `id=None`, so pydantic-ai's
duplicate-id rejection no longer held and a spec could register two citation
policies, defeating the single-decision-maker invariant.

Override `from_spec` on all four, delegating to `create_capability()` so ids and
instructions come from one place. The spec surface is `db_path`, `config`,
`defer_loading`, `request_limit` and `vision`; a live `HaikuRAG` client stays out
of it, and a `config` mapping is validated through `AppConfig`.
2026-08-21 13:04:09 +03:00
..
capabilities Support Pydantic AI agent specs via from_spec 2026-08-21 13:04:09 +03:00
chat Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
chunkers Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
client Coerce a string db_path to Path at the Store and capability boundaries 2026-08-21 12:49:45 +03:00
config Make the documented configuration match the code 2026-08-19 15:52:50 +03:00
converters Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
embeddings Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
ingester Split the store module by responsibility 2026-08-20 12:13:51 +03:00
inspector Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
providers Wire providers.docling_serve.timeout through to the client 2026-08-19 13:30:45 +03:00
reranking Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
sandbox Point the limit comments at the right limits 2026-07-28 19:11:37 +03:00
sources Resolve file:// URIs to paths through url2pathname 2026-08-21 10:22:26 +03:00
store Coerce a string db_path to Path at the Store and capability boundaries 2026-08-21 12:49:45 +03:00
tools Move the wire rewrite into the compaction capability 2026-08-13 13:00:02 +03:00
__init__.py Restructure into uv workspace to support minimal and full installations 2025-11-04 17:59:12 +02:00
app.py Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
circuit_breaker.py Move CircuitBreaker to a shared module 2026-07-08 11:03:30 +03:00
cli.py Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
context.py Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
doctor.py Make run_db_checks an orchestration list 2026-08-20 14:22:29 +03:00
logging.py Delete comments that restate the line below them 2026-08-20 15:22:33 +03:00
mcp.py Make get_config the only configuration lookup 2026-08-19 14:43:40 +03:00
s3.py swap aioboto3 for obstore in the S3 client path 2026-05-11 11:29:42 +03:00
telemetry.py Route eval scripts through the shared telemetry configure 2026-07-10 11:38:33 +03:00
uri.py Resolve file:// URIs to paths through url2pathname 2026-08-21 10:22:26 +03:00
utils.py Reject unknown and out-of-range configuration values 2026-08-19 15:32:51 +03:00