New maubot plugin that points at any Quartz-rendered docs site and answers chat queries by full-text searching its emitted /static/contentIndex.json. Default config targets docs.ariege.io (castle-docs). Commands: !ask <query> search corpus; top-N hits with snippet + link !doc <slug-or-title> open a specific page (fuzzy title match) !wiki / !wiki refresh status / force re-index Architecture: - Periodic fetch (default 10 min) of /static/contentIndex.json - In-memory inverted-ish scoring: title hit 5pt, content hit 1pt + freq - No LLM — pure deterministic keyword search; RAG is future Phase 2b - No DB — index is upstream-derived cache, repopulates on bot restart Deployment posture: docs.ariege.io is served from cfaun alongside maubot, so the bot hits it over the host's internal network — works during WAN outages. base-config.yaml exposes docs_url + index_path for adopters pointing at their own site. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
21 lines
766 B
YAML
21 lines
766 B
YAML
# Wiki lookup config. Point at any Quartz-emitted site:
|
|
# `docs_url` + `index_path` together resolve to the contentIndex.json
|
|
# the bot uses for search. Page links are constructed from docs_url + slug.
|
|
|
|
docs_url: https://docs.ariege.io
|
|
index_path: /static/contentIndex.json
|
|
|
|
# How often to re-fetch the content index, in minutes. Lower = fresher
|
|
# but more network chatter. Site refreshes typically happen on git push,
|
|
# so a few minutes lag is normal.
|
|
refresh_minutes: 10
|
|
|
|
# Max results returned per `!ask` query.
|
|
max_results: 3
|
|
|
|
# Snippet window around the first match in `!ask` output, in characters.
|
|
snippet_chars: 160
|
|
|
|
# Human-readable label for the docs site, used in bot output.
|
|
# E.g. "Castle Docs", "Co-op Wiki", "Operations Manual".
|
|
site_name: Castle Docs
|