This commit is contained in:
2026-06-05 20:33:20 +02:00
parent 25b985c7a2
commit 19349bd377
5 changed files with 233 additions and 153 deletions
+32 -12
View File
@@ -1,9 +1,17 @@
# SERMO-BBS
A telnet server that drops every caller into a simulated PC. It POSTs, boots,
loads **SERMO-DOS**, and leaves you at a `C:\>` prompt. Built-in DOS commands
behave like the real thing; anything else you type is treated as a question and
answered by SERMO's conversational core.
A telnet server that drops every caller into a simulated **Margittai machine**
from the [Neumatronic universe](https://wiki.teletypegames.org/en/projects/neumatronic-universe/universe/alternative-history).
It runs a dual-architecture power-on, loads **SERMO***„a Szó"*, the Word —
and leaves you at a green-phosphor `> ` prompt.
SERMO is the canonical OS of the dual machine: a *single* prompt with *two*
destinations. A literal, exact command goes to the **digital** side (the first,
von Neumann architecture) and is served by built-in commands; anything typed in
**natural language** is treated as a question and routed over the **ADI-76**
bus to the **Lapis-ACP** (the second, analog-cognitive architecture) — SERMO's
conversational core. Black screen, green letters, one blinking line: exactly as
the canon describes it.
Built on the [rubbs](https://git.teletype.hu/tools/rubbs) gem, using its
configurable `BBS::FakeOS` character-mode OS simulator.
@@ -39,17 +47,22 @@ telnet localhost 2323 # or 2324 with docker compose
## Layout
```
sermo.rb entry point — config, flow, BBS.start
lib/sermo/dos.rb the MS-DOS profile (BBS::FakeOS.define): boot sequence,
DOS commands, and the on_unknown → conversation hook
lib/sermo/oracle.rb the conversational core (canned replies for now)
sermo.rb entry point — config, flow, BBS.start
lib/sermo/sermo_os.rb the SERMO profile (BBS::FakeOS.define): dual-architecture
boot, the digital-side command table, and the on_unknown →
ACP hook (natural language over the ADI-76 bus)
lib/sermo/oracle.rb the Lapis-ACP conversational core (canned replies for now)
```
## Talking to SERMO / wiring an LLM
At the `C:\>` prompt, `VER`, `DATE`, `TIME`, `ECHO`, `MEM`, `DIR`, `CLS`,
`HELP` and `EXIT` are real commands. Type anything else and it goes to
`Sermo::Oracle.answer`, which currently returns canned, in-character replies.
At the `> ` prompt the **digital side** answers literal commands: `VER`,
`DATUM`, `IDO`, `MOND`, `MEM`, `KAT`, `ADI`, `VOX`, `CLS` and `KILEP` (English
aliases like `DATE`, `TIME`, `ECHO`, `DIR`, `EXIT` still work; `SUGO`/`HELP`/`?`
lists them). Type anything else and it crosses the ADI-76 bus to the
**Lapis-ACP** via `Sermo::Oracle.answer`, which currently returns canned,
in-character replies (its voice follows the canon — *ExistentialAI* and
*Nokia-punk*: a doubting, intimate machine, because there is no other interface).
To make SERMO actually think, replace the body of `Sermo::Oracle.answer`
(`lib/sermo/oracle.rb`) with a call to your model and return its text — that
@@ -59,6 +72,13 @@ method is the only integration point.
A simulated OS is pure configuration: a `BBS::FakeOS.define { … }` block with a
`prompt`, `colors`, a `boot` sequence, a `command` table and an `on_unknown`
fallback. To add another character-mode OS (CP/M, an AmigaDOS CLI, …), drop a
fallback. To add another character-mode OS from the universe (an earlier
Sermo line, a **DOS/NT** operator terminal, a **ProDOS X** session…), drop a
new file in `lib/sermo/` and point the flow at it in `sermo.rb`. No changes to
the rubbs engine are needed.
## Lore references
- [Alternative History](https://wiki.teletypegames.org/en/projects/neumatronic-universe/universe/alternative-history) — Neumann's dual architecture; Sermo („a Szó"), Vox, the ADI-76 bus, the roots of terminal/BBS culture.
- [Reference Tables](https://wiki.teletypegames.org/en/projects/neumatronic-universe/universe/reference) — system software (Sermo, Solus), Lapis/Sonus hardware, ADI-76.
- [ExistentialAI](https://wiki.teletypegames.org/en/projects/neumatronic-universe/universe/existential-ai) & [Nokia-punk](https://wiki.teletypegames.org/en/projects/neumatronic-universe/universe/tone-bible/nokia-punk) — the ACP's voice and the screen's mood.