Commit graph

426 commits

Author SHA1 Message Date
Yiorgis Gozadinos
4264cdcc24
vb 2026-01-29 15:35:42 +02:00
Yiorgis Gozadinos
77894b8c35
Clena citation handling now that we handle the total state 2026-01-29 12:12:48 +02:00
Yiorgis Gozadinos
202df368a0
TUI now syncs full session state from AG-UI events 2026-01-29 12:05:46 +02:00
Yiorgis Gozadinos
cbd94f6cc9
Always use state deltas instead of conditional snapshot/delta logic 2026-01-28 17:03:18 +02:00
Yiorgis Gozadinos
57fd08d600
Revert "Synthesis steps now select only relevant citations instead of including all" 2026-01-28 16:00:27 +02:00
Yiorgis Gozadinos
e2158c7dad
Handle snapshot deltas in TUI 2026-01-28 15:23:56 +02:00
Yiorgis Gozadinos
3741274c6c
Update ty and fix 2026-01-28 14:24:16 +02:00
Yiorgis Gozadinos
b5aeefb10f
Fix state delta computation by avoiding mutation of original state 2026-01-28 14:06:29 +02:00
Yiorgis Gozadinos
c27dde2497
Send state deltas updates instead of full state snapshots 2026-01-28 14:06:29 +02:00
Yiorgis Gozadinos
626f5cdd0e
Make list_documents return structured output and give feedback about total count and pages 2026-01-27 17:00:39 +02:00
Yiorgis Gozadinos
cca03dbe61
Give the conversational agent a list documents and a summarize tools 2026-01-27 16:39:48 +02:00
Yiorgis Gozadinos
8a587ec554
Synthesis steps now select only relevant citations instead of including all 2026-01-27 15:56:29 +02:00
Yiorgis Gozadinos
614c34b98f
Add read-only initial context for chat sessions for TUI and web app 2026-01-27 13:59:00 +02:00
Yiorgis Gozadinos
bb634e68a4
vb 2026-01-27 11:17:17 +02:00
Yiorgis Gozadinos
09aa94bfe5
Fix datetime JSON serialization in AG-UI StateSnapshotEvent 2026-01-27 11:05:01 +02:00
Yiorgis Gozadinos
ee3cb5bd87
Allow initial_context to be set for the chat agent 2026-01-27 10:38:18 +02:00
Yiorgis Gozadinos
7c9d70fa62
vb 2026-01-26 16:46:33 +02:00
Yiorgis Gozadinos
0465e1eebd
Update prompt to remove the recall tool 2026-01-26 16:43:11 +02:00
Yiorgis Gozadinos
a7d7a09c22
Integrate recall functionality into ask tool 2026-01-26 16:43:11 +02:00
Yiorgis Gozadinos
276e86a033
Fix citation selection when we call visualize 2026-01-26 16:43:10 +02:00
Yiorgis Gozadinos
7f63a7c4ab
Use recall tool in chat agent 2026-01-26 16:43:10 +02:00
Yiorgis Gozadinos
77647b08bc
Recall tool in chat agent 2026-01-26 16:42:41 +02:00
Yiorgis Gozadinos
8f35033a42
Update search(), ask() to use get_or_assign_index() 2026-01-26 16:42:41 +02:00
Yiorgis Gozadinos
af786596b1
Document filter in the TUI, use command palette instead of shortcuts 2026-01-26 16:42:40 +02:00
Yiorgis Gozadinos
30e9ff3038
Use session document filter in agent, combine with document name filter if necessary 2026-01-26 16:42:40 +02:00
Yiorgis Gozadinos
5b14038dc5
Add document_filter to ChatSessionState for session-level filtering 2026-01-26 16:42:40 +02:00
Yiorgis Gozadinos
0f0c3a076f
minor fixes 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
729a3910d8
Fix visual grounding citation selection in TUI 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
ff92ee8271
Skip gather_context when session context exists 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
5aabae4d06
Remove background_context & simplify 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
9d71ccb213
Move session context to agent, make AGUI work 2026-01-26 16:42:39 +02:00
Yiorgis Gozadinos
93737852a8
Use previous context in summarization 2026-01-26 16:42:38 +02:00
Yiorgis Gozadinos
9ed8773672
Unify Citation class and context formatting between chat and research agents 2026-01-26 16:42:38 +02:00
Yiorgis Gozadinos
74eac57ffa
Remove qa_history ranking in favor of SessionContext, planner can skip searching if context adequate 2026-01-26 16:42:38 +02:00
Yiorgis Gozadinos
3b7b7c1bbc
Cancel any running summarization tasks 2026-01-26 16:42:38 +02:00
Yiorgis Gozadinos
8441516a73
Tests, widget to show context in tui 2026-01-26 16:41:13 +02:00
Yiorgis Gozadinos
aaddf4a5a9
Dynamic session context to be used in the conversational agent 2026-01-26 16:41:12 +02:00
Yiorgis Gozadinos
47d355ed0a
Update dependencies 2026-01-23 11:57:02 +02:00
Yiorgis Gozadinos
35ebdd67e2
vb 2026-01-22 17:48:39 +02:00
Yiorgis Gozadinos
b4c158ffcf
Fix potential 0.25.0 migration crash 2026-01-22 17:29:26 +02:00
Yiorgis Gozadinos
32c64d3d11
vb 2026-01-22 12:59:32 +02:00
Yiorgis Gozadinos
ea7a4a9a8f
apply dotenv usecwd fix to remaining files
Apply the same find_dotenv(usecwd=True) fix from cli.py to:
- evaluations/evaluations/benchmark.py
- app/backend/main.py

Co-Authored-By: Tianyi Cui <contact@tianyicui.com>
2026-01-22 12:41:35 +02:00
Tianyi Cui
910ebbab22
fix: load .env from current working directory, not source file directory
The previous load_dotenv() searched for .env starting from the calling
file's directory (haiku/rag/cli.py), which fails when users run haiku-rag
from a different directory containing their .env file.

Changes:
- Move load_dotenv() before config imports (config reads env vars at import time)
- Use find_dotenv(usecwd=True) to search from current working directory
2026-01-22 12:36:55 +02:00
Tres Seaver
e9746a1785
fix: mark 'hashlib.md5' as 'usedforsecurity=False'
Closes #255.
2026-01-21 12:14:56 -05:00
Yiorgis Gozadinos
b96e5a3be1
Additional prompts needing adapting. Missing cassettes. 2026-01-21 15:17:56 +02:00
Yiorgis Gozadinos
7f51c63ad7
Search results now show rank position instead of raw scores. Consolidate cassettes 2026-01-21 14:54:15 +02:00
Yiorgis Gozadinos
a1abfd9666
Jina uses AutoModel not AutoModelForSequenceClassification 2026-01-21 11:26:23 +02:00
Yiorgis Gozadinos
ce95dc47a5
Do not run coverage on download-models & code that requires integration tests 2026-01-21 11:09:35 +02:00
Yiorgis Gozadinos
36a675e1bb
Add jina, mxbai and sentence-transformers to download-models when used 2026-01-21 10:53:45 +02:00
Yiorgis Gozadinos
7ff014684a
Support for jina reranker, both local and API 2026-01-21 10:39:21 +02:00
Yiorgis Gozadinos
b8cf8f5198
Remove reranker cache 2026-01-20 17:26:24 +02:00
Yiorgis Gozadinos
e7ce9694b5
vb 2026-01-20 15:47:37 +02:00
Yiorgis Gozadinos
be82473624
Merge pull request #249 from ggozad/feat/ocr-engine
Add `ocr_engine` field to `ConversionOptions`
2026-01-20 13:56:23 +02:00
Yiorgis Gozadinos
7bbac66640
Fix crash when logfire is installed but user is not authenticated. Closes #247 2026-01-20 13:43:44 +02:00
Yiorgis Gozadinos
62d35d2907
Add ocr_engine field to ConversionOptions 2026-01-20 13:41:43 +02:00
Yiorgis Gozadinos
1022d5dafd
Update dependencies 2026-01-19 16:23:26 +02:00
Yiorgis Gozadinos
f05159859c
Additional fixes to remove type ignores 2026-01-19 16:00:18 +02:00
Yiorgis Gozadinos
5e55c0df54
replace pyright with ty type checker 2026-01-19 15:50:14 +02:00
Yiorgis Gozadinos
2c264f4afc
vb 2026-01-19 14:54:18 +02:00
Yiorgis Gozadinos
5464d24483
require explicit migrate command for database migrations 2026-01-19 13:22:09 +02:00
Yiorgis Gozadinos
5f2f180960
vb 2026-01-16 15:27:55 +02:00
Yiorgis Gozadinos
bdfc6b87e7
Rename initial_context to background_context 2026-01-16 15:03:42 +02:00
Yiorgis Gozadinos
2054450142
ChatDeps implements StateHandler protocol for proper AG-UI state management 2026-01-16 15:03:41 +02:00
Yiorgis Gozadinos
18362f01c2
Pass context for CLI/app 2026-01-16 15:03:06 +02:00
Yiorgis Gozadinos
d82e1f95c1
Optimize context prompts 2026-01-16 15:03:05 +02:00
Yiorgis Gozadinos
dff489f75f
Add initial_context support to chat agent 2026-01-16 15:03:05 +02:00
Yiorgis Gozadinos
e73486b7a8
Set retries to 3 for agents that did not have it. 2026-01-16 15:03:05 +02:00
Yiorgis Gozadinos
12e5e9ebfb
vb 2026-01-15 16:24:03 +02:00
Yiorgis Gozadinos
7639c2915e
Add AGUI_STATE_KEY for namespaced AG-UI state emission 2026-01-15 15:46:37 +02:00
Yiorgis Gozadinos
157773ef15
vb 2026-01-15 11:47:49 +02:00
Yiorgis Gozadinos
bb60ad127a
Add pragma nocover to optional dependency imports 2026-01-15 10:32:35 +02:00
Yiorgis Gozadinos
fae274a04d
Remove defensive checks in info() 2026-01-15 10:30:45 +02:00
Yiorgis Gozadinos
345807e699
Remove defensive app() try/except, let errors propagate if they occur 2026-01-15 10:17:26 +02:00
Yiorgis Gozadinos
affffc1013
Extract get_package_versions() for info & modals 2026-01-14 18:24:41 +02:00
Yiorgis Gozadinos
fe73267e66
Remove unecessary try/except from info() 2026-01-14 18:17:43 +02:00
Yiorgis Gozadinos
fc1ea82cb1
Display on info pydantic-ai and docling-document schema version 2026-01-14 18:14:53 +02:00
Yiorgis Gozadinos
8bdfbe526c
Fix embed-only rebuild with changed vector dimensions
When a database was created with one embedding model and rebuild
--embed-only was run with a different model, it failed with a
vector dimension validation error.

- Store reads stored vector_dim when opening existing databases
- _rebuild_embed_only recreates chunks table to handle dimension changes
- Add test for rebuild with changed vector dimensions
2026-01-14 17:42:28 +02:00
Yiorgis Gozadinos
11f7f02262
Add option to namespace state key as a "feature" for ag-ui apps that maintain their own state 2026-01-14 14:21:08 +02:00
Yiorgis Gozadinos
929c29250e
Additional tests for page & picture images for local and docling-serve 2026-01-14 12:48:13 +02:00
Yiorgis Gozadinos
447e94c5db
Config options for generating page images 2026-01-14 11:55:08 +02:00
Yiorgis Gozadinos
2930679dc1
vb 2026-01-13 19:47:27 +02:00
Yiorgis Gozadinos
98b3d114b3
Update to docling-document 1.9.0 2026-01-13 19:20:27 +02:00
Yiorgis Gozadinos
275b09c8c5
vb 2026-01-13 18:34:45 +02:00
Yiorgis Gozadinos
c9cbf04cc8
Reverted docling from 2.67.0 to 2.65.0 to use docling-document 1.8.0 2026-01-13 18:22:58 +02:00
Yiorgis Gozadinos
eb5d0b0622
Use tui as an optional group. vb 2026-01-13 12:30:19 +02:00
Yiorgis Gozadinos
6b3ff5ef1e
CLI app 2026-01-13 11:31:21 +02:00
Yiorgis Gozadinos
3e66d6b21d
Make qa list a FIFO with 50 max, keep a cache of embeddings 2026-01-12 17:02:23 +02:00
Yiorgis Gozadinos
51836a1c55
Add tests for chat agent & friends 2026-01-12 16:00:07 +02:00
Yiorgis Gozadinos
f4ddb0f5c6
Allow chat agent to specify the search limit 2026-01-12 15:52:40 +02:00
Yiorgis Gozadinos
2da2c6d13a
Search tool in chat agent needs no search context 2026-01-12 15:13:43 +02:00
Yiorgis Gozadinos
5adab04e50
Update prompts 2026-01-12 15:10:04 +02:00
Yiorgis Gozadinos
d43821659c
Filter low-confidence answers 2026-01-12 15:01:32 +02:00
Yiorgis Gozadinos
e4a7d86348
Rank q/a history with respect to cosine similarity to new queries. Adapt the chat agent to only pass relevant q/as 2026-01-12 14:15:36 +02:00
Yiorgis Gozadinos
7cc561d1db
Refactor to make agents a top-level module. Bring in the conversational agent from the app 2026-01-12 12:37:08 +02:00
Yiorgis Gozadinos
bb61e8fab6
Remove custom AG-UI infrastructure in favor of pydantic-ai native support 2026-01-12 12:37:07 +02:00
Yiorgis Gozadinos
26bc02ef14
Build a "conversational" research graph 2026-01-12 12:36:31 +02:00
Yiorgis Gozadinos
061095e855
Remove obsolete migrations 2026-01-12 12:07:49 +02:00
Yiorgis Gozadinos
29c682d8eb
Add migration 2026-01-11 11:40:57 +02:00
Yiorgis Gozadinos
9c4fd08c47
Update client serialization for compressed docling documents 2026-01-11 09:23:56 +02:00
Yiorgis Gozadinos
be715dd456
Revert docling core back to 1.8.0 for compatibility with docling-serve 2026-01-11 09:23:19 +02:00
Yiorgis Gozadinos
afc5b02285
Update schema to store docling_document as compressed bytes
- Change DocumentRecord.docling_document_json (str) to docling_document (bytes)
- Use large_binary Arrow type (64-bit offsets) to avoid 2GB column limit
- Decompress in Document.get_docling_document() using gzip
- Update DocumentRepository field mappings
2026-01-10 15:17:27 +02:00
Yiorgis Gozadinos
face6f95bc
compression utils 2026-01-10 15:11:58 +02:00
Yiorgis Gozadinos
09acc845c0
Update docling, docling-core, lancedb deps 2026-01-10 15:06:56 +02:00
Yiorgis Gozadinos
ff1f19bb08
vb 2026-01-08 18:50:39 +02:00
Yiorgis Gozadinos
3603b00513
Fix base64 images leaking into expanded search results
PictureItem.export_to_markdown() defaults to ImageRefMode.EMBEDDED,
which embeds base64 image data. When _extract_item_text() called this
method during context expansion, base64 data would leak into results.

Now explicitly handles PictureItem with ImageRefMode.PLACEHOLDER to
prevent base64 while still including VLM descriptions and captions.
2026-01-08 18:42:58 +02:00
Yiorgis Gozadinos
92f0fd956f
vb 2026-01-08 10:25:25 +02:00
Yiorgis Gozadinos
1616891c40
Fix non-reasoning OpenAI models that do not support reasoning config 2026-01-07 18:47:31 +02:00
Yiorgis Gozadinos
ef187767ed
vb 2026-01-07 11:20:48 +02:00
Yiorgis Gozadinos
2f413e937b
Add VLM model to download_models() 2026-01-07 11:09:24 +02:00
Yiorgis Gozadinos
f861664656
Extract shared DoclingServeClient for async workflow & use it for VLM support, chunking, converting 2026-01-07 11:09:23 +02:00
Yiorgis Gozadinos
769e0d4746
Update picture description prompt, move its config under prompts 2026-01-07 11:09:23 +02:00
Yiorgis Gozadinos
3c4116397d
Add VLM picture description support for image handling 2026-01-07 11:09:22 +02:00
Yiorgis Gozadinos
af340ac410
vb 2026-01-05 12:15:41 +02:00
Yiorgis Gozadinos
271af6cb3c
Update core dependencies 2026-01-05 11:52:38 +02:00
Yiorgis Gozadinos
5b34b9ed0e
Track potentially more than one running step in agui emitter 2026-01-05 10:41:35 +02:00
Yiorgis Gozadinos
679d0bfafd
Merge pull request #212 from ggozad/feat/contextualize-fts
Add additional context (headers/sections etc) to the FTS index
2025-12-29 18:42:19 +02:00
Yiorgis Gozadinos
a4d33c9e71
Delete test_agui_server.py, it was accidentally commited 2025-12-29 14:58:04 +02:00
Yiorgis Gozadinos
c9cb005d07
Use FTS on contextualized text 2025-12-29 14:50:07 +02:00
Yiorgis Gozadinos
1e9a10a235
Record cassettes for embedder, ignore huggingface while recording 2025-12-29 13:23:53 +02:00
Yiorgis Gozadinos
1f654917b8
vb 2025-12-26 13:56:29 +02:00
Yiorgis Gozadinos
08fb99c6f8
Add prompt customization and domain preable 2025-12-26 13:34:51 +02:00
Yiorgis Gozadinos
958fe43f2a
Remove vllm and lmstudio custom configs, they can now use the openai base 2025-12-26 12:02:55 +02:00
Yiorgis Gozadinos
86e31b8d29
VoyageAI embeddings, should end up as a PR for pydantic-ai 2025-12-26 11:50:47 +02:00
Yiorgis Gozadinos
3852e961b9
Update tests and client for explicit embed_query/embed_documents API 2025-12-26 11:26:56 +02:00
Yiorgis Gozadinos
132b8a36bc
Differentiate between embedding a query and a document 2025-12-24 12:43:11 +02:00
Yiorgis Gozadinos
5a30c197af
Delete obsolete embedders, rewrite get_embedder 2025-12-24 12:37:17 +02:00
Yiorgis Gozadinos
3141c91023
Add base_url to ModelConfig and EmbeddingModelConfig. Deprecate vllm and lm_studio configs, now through open ai 2025-12-24 12:33:44 +02:00
Yiorgis Gozadinos
271c50e225
pydantic-ai update 2025-12-24 12:25:22 +02:00
Yiorgis Gozadinos
5c7f033d2c
vb 2025-12-19 12:35:35 +02:00
Yiorgis Gozadinos
4164895514
Update critical dependencies 2025-12-19 12:21:57 +02:00
Yiorgis Gozadinos
2678c1aaad
history command, shows available lancedb versions per table 2025-12-19 12:03:18 +02:00
Yiorgis Gozadinos
77f9a2a1b9
before parameter in client, app, inspector, cli 2025-12-19 12:03:18 +02:00
Yiorgis Gozadinos
1e5eebfbf0
Checkout version logic and datetime utils 2025-12-19 12:03:16 +02:00
Yiorgis Gozadinos
8c0adb47e1
Merge branch 'main' into feat/read-only-db 2025-12-19 12:01:36 +02:00
Yiorgis Gozadinos
30f6bac388
Merge pull request #205 from ggozad/fix/docker-paths
Clarify how folder mounts work in docker docs
2025-12-19 11:59:00 +02:00
Yiorgis Gozadinos
090be293d2
Clarify folder mounts in docker docs, check monitor paths exist in FileWatcher 2025-12-19 11:58:08 +02:00
Yiorgis Gozadinos
1ff8fc1b56
Merge pull request #201 from ggozad/fix/allow-custom-config
Fix get_model() uses where default Config is forced
2025-12-19 11:57:30 +02:00
Yiorgis Gozadinos
fb1d3c97b3
Add additional programming language specifiers 2025-12-19 11:09:57 +02:00
Yiorgis Gozadinos
98727ad080
Add global --read-only mode in CLI 2025-12-18 16:43:49 +02:00
Yiorgis Gozadinos
1a8f72f99a
Add is_read_only property to Store. Guard all write operations in repositories 2025-12-18 15:55:24 +02:00
Yiorgis Gozadinos
e8e67d336c
Fix get_model() uses where default Config is forced 2025-12-18 15:10:31 +02:00
Yiorgis Gozadinos
1dbbaf6dd8
vb 2025-12-18 12:21:16 +02:00
Yiorgis Gozadinos
a1f5d944ba
Replace custom event classes with ag_ui.core types 2025-12-18 12:07:37 +02:00
Yiorgis Gozadinos
bf5711f7ab
Give hints in interactive cli 2025-12-18 11:48:35 +02:00
Yiorgis Gozadinos
08349e5c0e
QOL fixes for interactive cli research 2025-12-18 11:48:35 +02:00
Yiorgis Gozadinos
34092e4cdc
Wrap client side tool call in a message 2025-12-18 11:48:34 +02:00
Yiorgis Gozadinos
9818cac4eb
Fix agui tool call args being a json string 2025-12-18 11:48:34 +02:00
Yiorgis Gozadinos
218126de8d
Interactive research agent through AGUI client-side tool calls in CLI 2025-12-18 11:48:34 +02:00
Yiorgis Gozadinos
921893cff5
Remove deep ask from ag-ui server 2025-12-18 11:41:57 +02:00
Yiorgis Gozadinos
45de9bf0d5
Flatten graph structure, simplify 2025-12-18 11:41:57 +02:00