Commit graph

400 commits

Author SHA1 Message Date
Yiorgis Gozadinos
82fd10e0ee
Migrate LanceDB to native async API
Convert all LanceDB operations from sync calls wrapped in async
functions to the native async API (connect_async, AsyncConnection,
AsyncTable, AsyncQuery). Database I/O no longer blocks the event loop.

- Store and HaikuRAG use async context managers (async with). Store
  initialization is deferred to __aenter__; direct construction
  without async with is no longer supported.
- Index creation uses config objects (FTS, BTree, IvfPq) instead of
  string-based index_type parameter.
- Upgrade callbacks are async.
- HaikuRAG tracks background vacuum tasks and awaits them in __aexit__
  and before destructive rebuild operations to avoid races with
  concurrent table mutations.
- temp_db_path fixture uses pytest's tmp_path for reliable async
  cleanup.
2026-04-24 14:42:52 +03:00
Yiorgis Gozadinos
cb9360ef7b
fix chat TUI citation rendering after state flattening 2026-04-24 13:48:57 +03:00
Yiorgis Gozadinos
4f058bf484
vb 2026-04-22 17:00:03 +03:00
Yiorgis Gozadinos
ae2b8461be
flatten skill state citations from list[list[str]] to list[str] 2026-04-22 16:50:13 +03:00
Yiorgis Gozadinos
bb9e7b28ca
vb 2026-04-22 16:18:44 +03:00
Yiorgis Gozadinos
9067b89d2f
fix convert() misreading text content that starts with a URL 2026-04-22 14:47:23 +03:00
Yiorgis Gozadinos
f0016ebcd2
scope citations, searches, and executions to the current invocation 2026-04-22 13:53:39 +03:00
Yiorgis Gozadinos
4a9dd9b49a
persist sandbox variables across execute_code calls within one invocation 2026-04-22 13:30:38 +03:00
Yiorgis Gozadinos
4e9c02afc2
open one HaikuRAG client per skill invocation via lifespan 2026-04-22 13:13:42 +03:00
Yiorgis Gozadinos
8a23108fbd
vb 2026-04-20 16:36:32 +03:00
Yiorgis Gozadinos
eb4e1721ce
remove dead code, add tool descriptions in frontend, update changelog 2026-04-20 15:38:17 +03:00
Yiorgis Gozadinos
fa87cf79c5
Docs & cl 2026-04-20 10:14:19 +03:00
Yiorgis Gozadinos
2a0e89bbe7
add --skill flag to chat TUI for rag and analysis skills 2026-04-17 18:35:16 +03:00
Yiorgis Gozadinos
a45820dbf7
add document virtual filesystem to analysis sandbox
Replace get_document() and get_docling_document() with a VFS at
/documents/{id}/ with metadata.json (eager), content.txt (lazy),
and items.jsonl (lazy). Keep search(), list_documents() (now returns
all), and llm() as external functions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 18:35:16 +03:00
Yiorgis Gozadinos
4118533db1
fold context expansion into sandbox search and remove get_context 2026-04-17 18:35:16 +03:00
Yiorgis Gozadinos
44fd0c9906
add get_context() to analysis sandbox and improve prompt 2026-04-17 18:32:45 +03:00
Yiorgis Gozadinos
d2b3ba1b59
rename RLM agent to analysis throughout the codebase 2026-04-17 18:32:01 +03:00
Yiorgis Gozadinos
499a843a43
remove unused create_analysis_toolset and AnalysisResult 2026-04-17 18:32:01 +03:00
Yiorgis Gozadinos
1049586469
vb 2026-04-17 16:24:25 +03:00
Yiorgis Gozadinos
a0a9a3410b
info: report partial stats and pending migrations on pre-migration DBs 2026-04-17 14:00:03 +03:00
Yiorgis Gozadinos
9beaf0d4ed
fix changelog 2026-04-16 12:57:22 +03:00
Yiorgis Gozadinos
75c84805b4
Improve judge prompt, QA prompt, and raise max_searches to 5 2026-04-16 12:12:23 +03:00
Yiorgis Gozadinos
b6113bf8ab
replace fixed-radius expansion with section-bounded algorithm
Context expansion is now automatic and structure-aware. For structured
documents, expands within the section containing the match. For sections
that exceed the budget or are too small, expands item-by-item outward
skipping noise labels. Unstructured documents use budget-based outward
expansion. Results sorted by relevance score.
2026-04-16 12:11:53 +03:00
Yiorgis Gozadinos
364b1bc509
add document_items table for fast context expansion 2026-04-16 12:11:53 +03:00
Yiorgis Gozadinos
dcde86a5f1
vb 2026-04-09 15:33:19 +03:00
Yiorgis Gozadinos
a51b922be3
fix skill analyze tool ignores state.document_filter 2026-04-09 15:29:20 +03:00
Yiorgis Gozadinos
99af4fe11d
fix skill list_documents tool ignores state.document_filter 2026-04-09 15:29:20 +03:00
Yiorgis Gozadinos
a118ee7aaa
Cleanup 2026-04-08 14:19:33 +03:00
Yiorgis Gozadinos
5e7a4ebae5
Update docs 2026-04-08 14:19:32 +03:00
Yiorgis Gozadinos
d7d0090a92
cl 2026-04-08 14:08:00 +03:00
Yiorgis Gozadinos
62a436dd9d
vb 2026-04-08 14:04:32 +03:00
Yiorgis Gozadinos
b614ef19e1
switch compression from gzip to zstd, use stdlib for python >= 3.14 2026-04-08 14:04:32 +03:00
Yiorgis Gozadinos
3d30840e9d
vb 2026-04-07 16:36:27 +03:00
Yiorgis Gozadinos
8a24606784
Strip page images from DoclingDocument before validation, unless we use visualize_chunk() 2026-04-07 12:54:23 +03:00
Yiorgis Gozadinos
32258d4e2a
Add batching to embeddings for huge documents 2026-04-07 12:06:28 +03:00
Yiorgis Gozadinos
68c3fa0f79
Add order to SearchResult, add ChunkRepository.get_chunks_in_range(), to use them in _expand_with_chunks to fetch only nearby chunks 2026-04-07 12:04:05 +03:00
Yiorgis Gozadinos
e4dc60c4f1
Update core dependencies 2026-04-03 10:14:27 +03:00
Yiorgis Gozadinos
5c4164d224
vb 2026-04-01 13:32:56 +03:00
Yiorgis Gozadinos
eb5db78026
clarify domain_preamble purpose 2026-04-01 13:13:52 +03:00
Yiorgis Gozadinos
15d94bfe7f
replace UUIDs with readable identifiers in citation text 2026-04-01 11:44:17 +03:00
Yiorgis Gozadinos
127535bc56
vb 2026-03-28 10:05:50 +02:00
Yiorgis Gozadinos
13a71e34a7
vb 2026-03-27 16:39:22 +02:00
Yiorgis Gozadinos
f46b8195ed
vb 2026-03-26 14:15:09 +02:00
Yiorgis Gozadinos
a07a64a31f
enable repeat_table_header for self-contained table chunks and docling-serve parity 2026-03-26 14:02:12 +02:00
Yiorgis Gozadinos
1c9035ebb5
Add optional db_path and config params to generated skill create_skill() 2026-03-26 13:41:58 +02:00
Yiorgis Gozadinos
9d986421a0
add visualize_chunk to generated skills and built-in RAG skill 2026-03-26 11:41:22 +02:00
Yiorgis Gozadinos
f5014f39bf
vb 2026-03-24 17:46:51 +02:00
Yiorgis Gozadinos
7d50edea86
Fix validate_metadata layering and type annotations in _tools.py 2026-03-24 17:09:14 +02:00
Yiorgis Gozadinos
7309d13317
Docs 2026-03-24 16:06:46 +02:00
Yiorgis Gozadinos
8a5188aa01
vb 2026-03-24 14:23:29 +02:00
Yiorgis Gozadinos
aa9fdf051d
Remove support for structured output 2026-03-24 14:11:43 +02:00
Yiorgis Gozadinos
ce320ca772
Update docling, docling-core and move to version 1.10.0 of DoclingDocument. 2026-03-23 17:34:06 +02:00
Yiorgis Gozadinos
fd327996b8
Configurable judge and reflect models for evaluations 2026-03-18 17:14:11 +02:00
Yiorgis Gozadinos
9243f56e1c
vb 2026-03-16 14:30:08 +02:00
Yiorgis Gozadinos
d4e34ab79f
Support for plantuml diagrams 2026-03-13 17:18:19 +02:00
Yiorgis Gozadinos
f961f00f2c
vb 2026-03-13 13:24:31 +02:00
Yiorgis Gozadinos
a0025e9203
Fix ty 2026-03-13 12:51:35 +02:00
Yiorgis Gozadinos
e8e02f341d
Update docs 2026-03-12 17:55:17 +02:00
Yiorgis Gozadinos
7696b3f98f
vb 2026-03-12 14:46:13 +02:00
Yiorgis Gozadinos
1bee8723ae
Merge pull request #307 from ggozad/feat/evals-gepa
Add GEPA prompt optimization for QA evaluations
2026-03-12 14:36:43 +02:00
Yiorgis Gozadinos
6ac5f277d8
Rename iterations to num_candidates 2026-03-12 13:00:51 +02:00
Yiorgis Gozadinos
8bac8b4104
Properly choose training/eval set 2026-03-12 12:05:50 +02:00
Yiorgis Gozadinos
10abfbe3d8
docs 2026-03-12 12:05:49 +02:00
Yiorgis Gozadinos
90fe624fa7
improve QA citation reliability via prompt and ID normalization 2026-03-12 11:50:46 +02:00
Yiorgis Gozadinos
b8c377da1e
Prevent read-only mode from creating tables in empty directories 2026-03-12 11:42:04 +02:00
Yiorgis Gozadinos
8d6617d63f
vb 2026-03-11 17:08:22 +02:00
Yiorgis Gozadinos
45e94ec67a
Set search limit to 10 2026-03-11 12:26:41 +02:00
Yiorgis Gozadinos
e2749ad2a6
Cap QA agent search iterations to reduce response time 2026-03-11 12:13:43 +02:00
Yiorgis Gozadinos
f366aea905
vb 2026-03-06 11:12:54 +02:00
Yiorgis Gozadinos
5a0430857f
Enable thinking by default for QA agent 2026-03-05 15:48:08 +02:00
Yiorgis Gozadinos
40ff54eac0
Set params for evaluations judge 2026-03-05 13:59:20 +02:00
Yiorgis Gozadinos
3cc2d5e19e
Set appropriate temperature and max_tokens defaults 2026-03-05 13:23:50 +02:00
Yiorgis Gozadinos
58959b9249
enable parallel test run 2026-03-05 12:23:22 +02:00
Yiorgis Gozadinos
c7b03eb9ab
Strengthen weak assertions in context enhancement and converter tests
- Add doc_item_refs and headings assertions to test_expand_context_docling_merges_metadata
- Add page count and markdown content assertions to test_convert_pdf_with_ocr_engine

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 11:44:51 +02:00
Yiorgis Gozadinos
878423ea2e
vb 2026-03-04 15:02:34 +02:00
Yiorgis Gozadinos
28e90e5a87
Auto-detect structured output mode from model profile. Remove the structured_output config field from ModelConfig. 2026-03-04 14:51:09 +02:00
Yiorgis Gozadinos
fdd7c21757
Add configurable structured output mode (tool vs native) 2026-03-04 13:35:32 +02:00
Yiorgis Gozadinos
3f02abbc70
Expose skill state metadata as module-level API 2026-03-04 11:38:00 +02:00
Yiorgis Gozadinos
8a859fbe3c
vb 2026-03-03 17:25:53 +02:00
Yiorgis Gozadinos
2566bf1a61
Adapt to haiku.skills streaming sub-agent ag-ui events 2026-03-03 11:16:44 +02:00
Yiorgis Gozadinos
1a3ea64aa6
Remove filter parameter from search and list_documents tools 2026-03-03 11:01:58 +02:00
Yiorgis Gozadinos
99ca3605e7
vb 2026-02-28 14:11:25 +02:00
Yiorgis Gozadinos
52ef983e75
Fix default chat model, default to config.qa.model 2026-02-28 14:00:40 +02:00
Yiorgis Gozadinos
2eea9b3bc9
Add changelog entry for haiku.skills 0.5.1 compatibility fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:42:42 +02:00
Yiorgis Gozadinos
50116bb49a
vb 2026-02-26 11:21:46 +02:00
Yiorgis Gozadinos
d3a1031ec4
Update docs 2026-02-26 09:09:42 +02:00
Yiorgis Gozadinos
2acb0292e4
vb 2026-02-24 13:30:01 +02:00
Yiorgis Gozadinos
6759a2e0a5
Give regex to monty as externals 2026-02-24 13:12:56 +02:00
Yiorgis Gozadinos
d134276819
Update docs 2026-02-24 12:26:04 +02:00
Yiorgis Gozadinos
459fdfca71
Add get_docling_document external function to sandbox 2026-02-24 11:51:43 +02:00
Yiorgis Gozadinos
c61ded1271
Replace Docker sandbox with pydantic-monty 2026-02-24 09:55:40 +02:00
Yiorgis Gozadinos
2cafb5c8cc
vb 2026-02-20 19:41:17 +02:00
Yiorgis Gozadinos
b23f99af06
Fix history too 2026-02-20 19:15:28 +02:00
Yiorgis Gozadinos
388e94ae80
info() should always be read-only 2026-02-20 19:13:45 +02:00
Yiorgis Gozadinos
e186e13cd2
vb 2026-02-20 19:01:16 +02:00
Yiorgis Gozadinos
69083c8cb4
Fix stale docs 2026-02-20 16:59:58 +02:00
Yiorgis Gozadinos
37f28ea8de
Clean up stale references and dead code 2026-02-20 16:37:15 +02:00
Yiorgis Gozadinos
0c270ba42f
vb 2026-02-19 14:28:13 +02:00
Yiorgis Gozadinos
08a4252c33
download-models, show actionable error message when Ollama is not running 2026-02-19 14:06:53 +02:00
Yiorgis Gozadinos
df5c8bcfaf
Add cachetools dependency 2026-02-19 13:04:07 +02:00
Yiorgis Gozadinos
d15c31b550
Fix changelog and bump version script 2026-02-19 12:32:11 +02:00
Yiorgis Gozadinos
c62fe5fce8
vb 2026-02-17 13:56:43 +02:00
Yiorgis Gozadinos
f4735667df
emit StateDeltaEvent with client-aware baseline 2026-02-17 12:24:09 +02:00
Yiorgis Gozadinos
53f6cd3579
vb 2026-02-16 13:12:06 +02:00
Yiorgis Gozadinos
8c76897af2
Update tui and app to use the toolkit 2026-02-16 12:54:44 +02:00
Yiorgis Gozadinos
05ebd781d4
Move client and tool_context from toolset factories to RunContext.deps 2026-02-12 15:50:46 +02:00
Yiorgis Gozadinos
467bcff94d
Add frontend session management with localStorage persistence, deduplicate shared code 2026-02-12 15:16:47 +02:00
Yiorgis Gozadinos
abfee49d13
cl 2026-02-11 17:56:01 +02:00
Yiorgis Gozadinos
a7b79c433d
TUI now generates a UUID session_id on mount and on chat clear 2026-02-10 14:21:22 +02:00
Yiorgis Gozadinos
aaa9b6a32f
vb 2026-02-10 13:29:30 +02:00
Yiorgis Gozadinos
8c2a101a8a
Fix out-of-memory in list_documents by adding column projection 2026-02-06 14:11:36 +01:00
Yiorgis Gozadinos
17c2136b4e
vb 2026-02-06 12:48:16 +01:00
Yiorgis Gozadinos
b426827fc2
Docker-based sandbox. Reused within a single rlm() call for latency 2026-02-06 12:07:19 +01:00
Yiorgis Gozadinos
56cf6ebfb6
Docs 2026-02-06 12:07:18 +01:00
Yiorgis Gozadinos
b22ac33dde
Pass OCR options from conversion_options to docling-serve chunker 2026-02-03 11:34:46 +02:00
Yiorgis Gozadinos
35bed89717
Fix flaky huggingface in tests by caching the tokenizer 2026-01-31 12:07:42 +02:00
Yiorgis Gozadinos
1e22937482
vb 2026-01-31 11:12:38 +02:00
Yiorgis Gozadinos
ac76ecee86
Remove dead code from iterative research planning refactor 2026-01-31 10:51:34 +02:00
Yiorgis Gozadinos
42f2d0fd0e
docs 2026-01-31 10:13:22 +02:00
Yiorgis Gozadinos
4264cdcc24
vb 2026-01-29 15:35:42 +02:00
Yiorgis Gozadinos
2a99cb09bf
Evaluate using ask --deep 2026-01-29 14:22:18 +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
57fd08d600
Revert "Synthesis steps now select only relevant citations instead of including all" 2026-01-28 16:00:27 +02:00
Yiorgis Gozadinos
e325962fcc
Add logging to the backend 2026-01-28 14:08:24 +02:00
Yiorgis Gozadinos
5bfd6db984
Test count_documents 2026-01-27 17:17:05 +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
061b8450a6
docs 2026-01-26 16:43:11 +02:00
Yiorgis Gozadinos
7f63a7c4ab
Use recall tool in chat agent 2026-01-26 16:43:10 +02:00
Yiorgis Gozadinos
fa2072a720
Docs 2026-01-26 16:42:40 +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
9b166969e2
Introduce huggingface dataset for sharing evaluation dbs 2026-01-26 15:53:37 +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
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
36a675e1bb
Add jina, mxbai and sentence-transformers to download-models when used 2026-01-21 10:53:45 +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