Files
sift/dist/sift.toml.example
kyleandornith-1.5-35b-a3b 484c33f986 serve: [batch] config; open the store, reap jobs killed by a restart, start the runner
Add the [batch] config block (Batch type + File.Batch) and ParseSize (binary
KiB/MiB/GiB byte counts) in internal/config. serve now opens the dcache store
when batch is on, marks the queued/running jobs a restart killed as failed
(never resumed) and observes them, builds the runner from the config with the
runner's defaults filling zeros, and closes the runner on both shutdown paths.
Batch is on by default; disabled = true leaves srv.Batch nil so the endpoints
answer 503.

Co-Authored-By: ornith-1.5-35b-a3b <ornith-1.5-35b-a3b@llama.cpp.invalid>
2026-09-26 23:06:46 -07:00

66 lines
1.9 KiB
TOML

# sift configuration (/etc/sift/config.toml, or $SIFT_CONFIG). Every key is optional;
# commented values are examples. The service does not assume Nix store paths.
# Paid-search keys (BRAVE_API_KEY, TAVILY_API_KEY) go in /var/lib/sift/secret.env, not here.
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"]
# 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
# no_rerank = true
# [batch]
# disabled = false
# targets_per_job = 32
# jobs_per_caller = 1
# jobs_total = 8
# workers = 1 # at most 2: each worker fetches one target at a time
# ttl = "24h" # a job's results live this long after its last read or write
# max_bytes = "64MiB" # stored results; the oldest finished jobs go first