Files
hermes-agent/tools
teknium1 11d68e4652 feat(tools): read_file renders SQLite schemas and flags merge conflicts; web_extract refuses binary payloads
Three small gaps from the OMP comparison (#77367) that the existing tools
almost covered:

- read_file on .db/.sqlite/.sqlite3 was refused as binary. It now extracts a
  schema overview (CREATE per table, row count, first 5 rows, indexes/views)
  through the same document-extraction path as .docx/.xlsx, opened read-only
  and immutable so a live database is never locked. A .db whose magic bytes are
  not SQLite is refused with that reason. The Hermes read denylist now runs
  before extraction so protected stores cannot be reached through an extractor.
- read_file reports conflict_blocks: N (plus a hint) when the served range has
  balanced <<<<<<< / >>>>>>> marker lines, so the model resolves the conflict
  instead of editing around it. A lone marker in prose is not counted.
- web_extract returned 824K chars of raw SQLite bytes as page "content" for a
  .sqlite URL (live: Chinook_Sqlite.sqlite via the configured backend). Bodies
  starting with an unambiguous file signature (SQLite, ZIP, gzip, xz, 7z, ELF,
  Mach-O, PNG/JPEG/GIF/TIFF, FLAC/Ogg) become a typed error pointing at
  terminal + read_file. Backends drop NUL bytes, so signatures are compared
  NUL-stripped; two-letter signatures (BM, MZ, ID3) are excluded on purpose.
2026-09-19 03:07:47 -07:00
..