https://gitlab.synchro.net/main/sbbs/-/commit/2e23b7ebea8150c6e1f31ae1
Added Files:
exec/chat_llm_routes.js
Modified Files:
ctrl/chat_llm.ini exec/chat_llm.js
Log Message:
chat_llm: extract all intent routing into pluggable router modules
classify_intent now ships NO routing of its own -- it is a priority-ordered dispatcher over routers registered by modules named in chat_llm.ini's `intent_routers` key (loaded once by ensure_intent_routers()). register_intent_router(fn, priority) orders them, so a site module can slot between stock ones.
The stock routing (bbs_directory, this_bbs, external_archives, relay_message
+ ARCHIVE_TOPICS) moves verbatim into the new stock module exec/chat_llm_routes.js (two routers: BBS-directory at priority 10, this_bbs/relay/archives at 30). The generic text helpers (_strip_bbs_suffix, _looks_like_proper_noun / _network / _os) stay in the engine as shared utilities both stock and site routers call. Site-specific routing (Synchronet's GitLab git_* tools) lives in a separate local module loaded alongside (priority 20, preserving its original mid-order position).
ctrl/chat_llm.ini: intent_routers = chat_llm_routes (stock now gets its
routing via the module; a clean install with the key empty has none).
Behavior-preserving: the classify_intent regression suite stays green -- engine-alone routes nothing, stock+site routes identically to before.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)