Commit Graph

27 Commits

Author SHA1 Message Date
7340c6a3af Make Context Kit web search the fallback in the agent snippets
Assistants now ship their own web search; the snippets told agents to
prefer search_web over it. Keep the two snippets identical and name no
particular assistant's tool.
2026-10-01 13:16:22 -07:00
7deca612bb Document how a new docs source is loaded and indexed
The configuration guide covered a changed CONTEXT_KIT_DOCS_SOURCES but not
an edited profile, said nothing of start's warning or of restart taking
every shared service down, and left new sources to be embedded inside the
first query. Troubleshooting had no entry for a source that never appears.
2026-10-01 13:08:22 -07:00
fd2de5b3bd Warn when start leaves a running docs service on old sources
docs-mcp reads its source list once at startup, and start never restarts
a running container, so a changed list was written but silently not
loaded. The README said start loaded source changes.
2026-10-01 13:05:07 -07:00
a1d854aef4 Add Hermes Agent docs feed to the default source set
Hermes Agent (Nous Research) publishes a maintained llms-full.txt covering
the whole docs site. It parses as markdown-full into ~1.17k documents.

Note against substituting the smaller /docs/llms.txt: parse_llms_text routes
any /llms.txt URL to _parse_menu, which indexes link stubs (title plus
description plus canonical URL) rather than page content.
2026-09-17 10:34:35 -07:00
ajay@krishnan.ca
dd431fffca Merge pull request 'Pin SearXNG for Google, drop DuckDuckGo' (#3) from fix/searxng-google-http-20260829 into main 2026-08-29 10:48:51 -07:00
059954c633 Pin SearXNG for Google, drop DuckDuckGo
The May image's GSA Google parser returns empty JS shells. Pin a
2026-08-29 digest with the Nokia/WML parser, keep Bing, and omit
DuckDuckGo because it CAPTCHAs this host. Document the explicit
SearXNG recreate because start never replaces containers.
2026-08-29 09:39:00 -07:00
ajay@krishnan.ca
45761c6759 Merge pull request 'Add safe ordinary Gitea CI' (#2) from fix/gitea-ordinary-ci-20260729 into main 2026-07-29 11:57:44 -07:00
be0f8ec561 Add safe ordinary Gitea CI 2026-07-29 11:57:00 -07:00
ajay@krishnan.ca
634092feca Merge pull request 'Propagate web-search cancellation' (#1) from fix/web-search-cancellation-20260725 into main 2026-07-25 21:19:08 -07:00
b4efe82ce2 Propagate web-search cancellation 2026-07-25 21:18:08 -07:00
802fc5339e Return structured content from docs tools
Annotate tool returns as dict[str, Any] so FastMCP publishes an output
schema and structuredContent alongside the JSON text payload.
2026-07-25 09:08:28 -07:00
ac3465c656 Fix ID collisions for repeated section titles
Large llms-full.txt feeds repeat section headings, which made document
identity hashes collide within one source and abort indexing on the
documents primary key. Include each document's ordinal in the identity.
2026-07-25 09:00:59 -07:00
51dceee224 Overhaul docs retrieval and web search quality
Replace the abandoned llms-txt-mcp/Chroma docs backend with an in-repo
MCP service: SQLite WAL + FTS5 + sentence-transformer embeddings,
transactional source replacement, persisted state across restarts,
singleflight refresh with conditional requests, hybrid lexical/semantic
ranking with exact-duplicate collapse, source/host filters, and
explicit-by-default content retrieval. Add docs_rebuild and a
docs-rebuild CLI command.

Add deterministic llms-full.txt snapshot generation for machine-local
menus with hash-validated provenance manifests; lifecycle commands
promote a local menu to its snapshot only when the manifest validates.
Switch public source profiles to content-bearing llms-full.txt feeds.

Improve web search: bounded provider fallback with per-attempt
diagnostics and cancellation, an optional Brave Search API provider,
strict SearXNG engine selection, capped link/media extraction, and a
real engine=browser renderer that routes every request through the
existing SSRF vetting while blocking WebSockets, non-GET traffic, and
private destinations.

Extend release checks with offline unit suites and isolated candidate
container tests for both images.
2026-07-25 08:49:26 -07:00
29bcb123fa Harden shared lifecycle rollback 2026-07-24 15:59:16 -07:00
6177a995d5 Bound shared MCP container lifecycle 2026-07-24 13:03:09 -07:00
8de9658b8c Document local runtime state 2026-06-27 15:11:51 -07:00
2ad80684ad Fix local docs source refresh 2026-06-26 23:58:08 -07:00
c11ecfdd51 Add Repomix release smoke 2026-06-26 23:31:50 -07:00
8da552bea1 Simplify runtime checks and MCP smokes 2026-06-25 09:19:26 -07:00
99881b608b Strengthen release verification gates 2026-06-25 07:05:08 -07:00
3d7dca8773 Fix web-search smoke cleanup 2026-06-25 00:03:48 -07:00
8237f1331c Harden web search and docs defaults 2026-06-24 23:57:44 -07:00
8fcd94d2c5 Harden docs MCP local exposure defaults 2026-06-08 15:52:02 -07:00
6a4d8673d1 Fix docs-mcp cache directory ownership checks 2026-06-08 15:33:44 -07:00
6629a9b284 Run docs-mcp as a long-lived shared HTTP service (#1)
Co-authored-by: Ajay Krishnan <ajay@krishnan.ca>
Co-committed-by: Ajay Krishnan <ajay@krishnan.ca>
2026-05-24 15:48:24 +00:00
f7ab811d93 snippets: prefer context-web-search over built-in Exa websearch
The built-in OpenCode 'websearch' tool routes through Exa AI's hosted
MCP service and surfaces with tool names like parallel_web_search and
web_search_exa. Without explicit guidance the model picks per turn
between Exa and our SearXNG-backed context-web-search.

Tell agents to prefer Context Kit's local search so queries stay on
the user's machine through SearXNG.
2026-05-21 14:09:01 -07:00
c905cf86c8 Initial public release
Three local MCP servers for coding agents, designed for Claude Code
and OpenCode:

- context-web-search: SearXNG-backed web search and URL fetch
- context-docs:       semantic search over curated llms.txt docs
- context-repomix:    pack local or remote repos into AI context

Defaults are local-first: SearXNG binds to 127.0.0.1, no hosted API
keys are required, and Repomix mounts only the current project read-only.
2026-05-21 08:43:38 -07:00