• src/sbbs3/chat.cpp js_console.cpp sbbs.h src/sbbs3/scfg/scfgchat.c scf

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Fri May 29 00:55:35 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/683147f9c66adf9e7e17c3f5
    Modified Files:
    src/sbbs3/chat.cpp js_console.cpp sbbs.h src/sbbs3/scfg/scfgchat.c scfgindex.h src/sbbs3/scfgdefs.h scfglib2.c scfgsave.c
    Log Message:
    chat.cpp/scfg: dispatch guru paging to a JS module

    Adds infrastructure for a JS-driven guru chat engine, gated on a new
    per-guru "module" config field:

    src/sbbs3/scfgdefs.h new guru_t.module field (LEN_CODE+1)
    src/sbbs3/scfglib2.c read module= from chat.ini's [guru:CODE]
    src/sbbs3/scfgsave.c write module= back to chat.ini
    src/sbbs3/scfg/scfgchat.c "Module" line in SCFG's guru menu + helpbuf
    src/sbbs3/scfg/scfgindex.h register the option in SCFG's option index
    src/sbbs3/sbbs.h declarations for the dispatch methods
    src/sbbs3/chat.cpp dispatch + simulate_type
    src/sbbs3/js_console.cpp console.simulate_type() JS binding

    When cfg.guru[gurunum]->module is empty (the default for every existing install), the legacy guruchat() loop runs unchanged. When module is
    set, sbbs_t::chat_llm_session(gurunum) takes over 1:1 paging by
    load()ing exec/<module>.js and invoking its chat_session(input, ctx)
    function. Channel-guru turns route to chat_llm_multinode_turn() (one-
    shot per user line, no session state).

    Both engines log to data/logs/guru.log in the legacy format, so sysops
    see all guru conversations together regardless of which engine handled
    them.

    Also adds sbbs_t::simulate_type() with optional fat-finger /
    transposition typo simulation, plus a console.simulate_type() JS
    binding (with UTF-8 -> CP437 inplace conversion for non-UTF8
    terminals) so a JS module can stream tokens out as they arrive in the
    streaming response without typing them out of order.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net