"""Inspect recent human messages and open sessions without changing the database.""" import argparse import sqlite3 from contextlib import closing from pathlib import Path DEFAULT_DB = Path(__file__).resolve().parents[1] / "history.db" def inspect_sessions(db_path=None): database = Path(db_path if db_path is not None else DEFAULT_DB).expanduser().resolve() with closing(sqlite3.connect(database.as_uri() + "?mode=ro", uri=True)) as connection: messages = connection.execute( "SELECT * FROM human_messages ORDER BY id DESC LIMIT 5" ).fetchall() sessions = connection.execute( "SELECT id, status FROM human_sessions WHERE status!='closed' ORDER BY id" ).fetchall() return messages, sessions def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--db", type=Path, default=DEFAULT_DB, help="Existing SQLite database") args = parser.parse_args() try: messages, sessions = inspect_sessions(args.db) except sqlite3.Error as error: parser.exit(1, f"Database error: {error}\n") print(messages) print("---") print(sessions) if __name__ == "__main__": main()