跳转到内容

Web UI

sivtr web 在统一 archive(archive.db)之上提供本地 web UI 和只读 JSON API。用它浏览终端和 Agent session,或运行按 BM25 相关性排序的全文搜索,而不必打开 TUI。

终端窗口
sivtr web

然后在浏览器打开 http://127.0.0.1:8080

选项 含义
--port <PORT> 要绑定的 TCP 端口(默认 8080
--host <HOST> 仅 loopback 绑定地址(默认 127.0.0.1)。非 loopback 值会被拒绝。
  • Session 浏览器 — 按 provider 过滤 session、打开一个 session、复制它的 refs,供 sivtr show 使用。
  • 搜索 — 在任意位置按 / 聚焦搜索框;可以选择 BM25、semantic 或 hybrid 排序。BM25 按 source 排序;source=all 先拼 agent 列表再拼 terminal 列表。
  • Usage 与活跃度 — dashboard 展示按 catalog 计算的 token 成本、未定价事件、archive 数量和活跃日期。

同样的表面也可以作为只读 JSON API 使用:

Endpoint 用途
GET /api/v1/health Server 健康检查
GET /api/v1/providers 列出已注册 provider
GET /api/v1/sessions?provider=&limit=&offset= 列出 session,支持可选过滤
GET /api/v1/sessions/{provider}/{session_id} 单个完整 session
GET /api/v1/search?q=&source=all|all:agent|all:terminal|<selector>&limit=&semantic=&hybrid= BM25、semantic 或 hybrid 搜索
GET /api/v1/usage?provider=&session_id=&since=&until= Token 用量与成本
GET /api/v1/stats?provider=&since=&until= 活跃度、结果、项目、隐私和 usage 统计

server 只绑定 loopback(127.0.0.1localhost::1)。非 loopback 的 --host 会被拒绝,因此未认证的 UI 不会暴露到网络。HTTP API 是只读的;启动时可能通过 ensure_fresh() 刷新本地 archive。在 loopback 绑定下数据也不会离开本机。server 还会校验浏览器的 Host header,以防范 DNS rebinding。

修改 --port 也会改变接受的 Host,所以请求必须指向 server 实际绑定的同一个 host:port