Files
sift/dist/sift.toml.example
T
kyle d7873403ff p3: search API, pinned sources, cache, CLI
POST /v1/search and /v2/search fan in SearXNG, Brave LLM Context, and
Tavily from config-fixed endpoints. Public sources refuse private A
records; SearXNG is a loopback-only client, not the fetch guard.

Cache keys include caller class. Restricted callers search like the
fleet; logs omit query, hosts, URLs, and upstream errors. Degraded
results are not stored. Tavily sends search_depth=basic and drops
answer. Missing keys surface in /healthz.

Default-on sources stay off until the bake-off. Query harvest is not
in this commit.
2026-09-23 12:17:51 -07:00

60 lines
1.6 KiB
TOML

# sift configuration. P0 uses -listen and -deny-prefix; remaining keys are P1+.
# This file is an example: the service does not assume Nix store paths.
listen = "127.0.0.1:8890"
# Extra CIDRs blocked by the SSRF guard (pre-check + Control). Home WAN /32s
# belong here so a fetch of the public IP cannot hairpin into the LAN.
# Set on-box; do not commit residential addresses to git.
# deny_prefixes = ["203.0.113.0/24"]
# [upstreams]
# searxng = "http://127.0.0.1:8888"
# dixie = "http://dixie.scylla-hammerhead.ts.net:11434/v1"
# honcho = "http://rift.scylla-hammerhead.ts.net:8000"
# user_agent = "sift/dev"
# [self_ip]
# sources = ["ddns:example.sn.mynetname.net", "trace:https://1.1.1.1/cdn-cgi/trace"]
# interval = "10m"
# keep_previous = "24h"
# path = "/var/lib/sift/self_ip.json"
# [digest]
# model = "ornith-1.5-9b-uncensored"
# thinking = false
# cache = "/var/lib/sift/cache.db"
#
# [dixie]
# chat = "http://dixie.scylla-hammerhead.ts.net:11434/v1/chat/completions"
# embed = "http://straylight.scylla-hammerhead.ts.net:11437/v1/embeddings"
# max_inflight = 2
# queue_depth = 8
# queue_wait = "20s"
#
# [context]
# honcho = "http://rift.scylla-hammerhead.ts.net:8000"
# workspaces = ["hermes-fleet"]
# permit_restricted = [] # caller names allowed to query guardian-star
#
# [search]
# k = 8
# timeout = "8s"
# rerank = true
# digest = false
# cache_ttl = "1h"
#
# [search.searxng]
# enabled = false
# url = "http://127.0.0.1:8888"
#
# [search.brave_llm]
# enabled = false
# url = "https://api.search.brave.com/res/v1/llm/context"
#
# [search.tavily]
# enabled = false
# url = "https://api.tavily.com/search"
# daily_credit_cap = 500