diff --git a/Plugin/unraid/include/ai_rpc.php b/Plugin/unraid/include/ai_rpc.php index 95d8321..e4f8195 100644 --- a/Plugin/unraid/include/ai_rpc.php +++ b/Plugin/unraid/include/ai_rpc.php @@ -64,6 +64,15 @@ // vv_ai_route() action → route for this node // vv_ai_rpc() forward one action to the owner, return its response body // +// CONFIGURATION +// host*.conf +// _SSH_KEY private key this node authenticates to the owner with. Absent or not a +// file means no remote route exists, and vv_ai_route() says so rather than +// attempting a hop that cannot succeed. +// the owner's hostname, looked up by the id vv_ai_owner_host() returns — +// resolved to an address through vv_resolve_tailscale_ip(), never used as +// a hostname directly, because MagicDNS does not resolve across the tailnets. +// // DEPENDS ON // include/config.php vv_ai_owner_host(), vv_ai_is_owner(), vv_resolve_tailscale_ip() // Tools/ai_rpc.php the far side — reached at the WebGUI symlink path diff --git a/Plugin/unraid/include/ai_web.php b/Plugin/unraid/include/ai_web.php index dc722d7..433d3b6 100644 --- a/Plugin/unraid/include/ai_web.php +++ b/Plugin/unraid/include/ai_web.php @@ -43,6 +43,31 @@ // // Redacted before it is logged, like every other question in this subsystem. // +// EXPORTS +// Settings vv_ai_web_enabled(), vv_ai_web_provider(), vv_ai_web_results_max(), +// vv_ai_web_timeout(), vv_ai_web_searx_url(), vv_ai_web_degoog_url(), +// vv_ai_web_api_key(), vv_ai_web_ready() +// — every one reads conf; none of them reaches the network. +// Providers vv_ai_web_degoog(), vv_ai_web_searxng(), vv_ai_web_brave(), vv_ai_web_tavily() +// — one per backend, each returning the same normalised shape. +// Transport vv_ai_web_http(), vv_ai_web_normalise() +// Entry vv_ai_web_search(), vv_ai_web_context() +// — what the rest of the subsystem calls. Everything above is reachable but only +// these two are meant to be: search() picks the provider, context() formats for +// the prompt. +// +// CONFIGURATION +// master.conf +// AI_WEB_SEARCH_ENABLED master switch; anything but "true" disables the whole subsystem +// AI_WEB_SEARCH_PROVIDER which backend vv_ai_web_search() dispatches to +// AI_WEB_SEARCH_RESULTS result cap handed to the provider +// AI_WEB_SEARCH_TIMEOUT per-request timeout, in seconds +// +// host*.conf — per host, because the endpoint and the key are this machine's +// _SEARXNG_URL self-hosted SearXNG base URL +// _DEGOOG_URL self-hosted degoogle/Whoogle base URL +// _WEB_SEARCH_API_KEY Brave or Tavily key, whichever provider is selected +// // DEPENDS ON // include/ai.php vv_ai_redact(), vv_conf_vars() // ═══════════════════════════════════════════════════════════════════════════════════════════════ diff --git a/Plugin/unraid/include/monitor.php b/Plugin/unraid/include/monitor.php index ec042e6..2f1e088 100644 --- a/Plugin/unraid/include/monitor.php +++ b/Plugin/unraid/include/monitor.php @@ -1,8 +1,4 @@ _SSH_KEY private key used to reach the channel's other members. Missing or not a +// file means delivery is skipped and the message is spooled — stored here +// and retried later, never reported as failed. +// each member's hostname, looked up by the id in the channel definition. +// +// The store's own paths are defines, not conf: VV_NC_DIR under DATA_DIR/db, its .spool +// subdirectory, and VV_NC_KEEP — the per-channel message retention, fixed at 300. // ═══════════════════════════════════════════════════════════════════════════════════════════════ require_once __DIR__ . '/config.php';