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.
This commit is contained in:
2026-09-23 12:17:51 -07:00
parent 3687636ed7
commit d7873403ff
27 changed files with 2361 additions and 21 deletions
+6 -3
View File
@@ -1,6 +1,6 @@
---
name: sift
description: "Use FIRST whenever you need content from a URL: sift fetch returns cleaned, compact, sourced content with fleet context — never curl | python/jq. For web search, use web_search until sift search ships in P3."
description: "Use FIRST whenever you need content from a URL: sift fetch returns cleaned, compact, sourced content with fleet context — never curl | python/jq. For web search, use sift search first; web_search only if sift is unreachable."
version: 0.1.0
author: Claude (for Kyle's fleet)
license: MIT
@@ -20,8 +20,8 @@ The `sift` CLI on this host talks to it. It returns the resource **cleaned** (HT
markdown, JSON → JSON), optionally **digested** for your question by a local model, with
**what the fleet already knows** attached from Honcho — so you read 1k tokens, not 20k.
`sift search` is **coming in P3** and is not built. Until then, use `web_search` for
searches, then `sift fetch` on the URLs you need.
`sift search` is the first step for web search. Use `web_search` only if sift is
unreachable. Then `sift fetch` the URLs you need. Restricted callers use the same path.
## Rule: sift is the explicit first step
@@ -38,6 +38,9 @@ Whenever you need the content of a URL:
## Commands
```bash
# Web search (native). Then sift fetch the URLs you need.
sift search "HBM wafer share 2026" --k 8
# Page or document → cleaned content. Add --question to get a focused digest.
sift fetch "https://example.com/article" --question "what does it say about HBM wafer share?"