LiCs is a C-based IRC bot with an embedded Lisp/Scheme scripting environment.
The standalone runtime now has a qualified language-neutral contract for IRC commands/events and deterministic timers. See docs/BOT_RUNTIME_CONTRACT.md.
- IRC command/event dispatch: qualified
- Timer registry and named handlers: qualified
- Scheme timer bindings: qualified
- AFTER / EVERY / CANCEL semantics: qualified
- CI regression coverage: enabled
- Small, portable C IRC core
- Embedded Lisp/Scheme runtime
- Event-driven scripting for IRC commands and messages
- PBMP integration boundary defined from the start
- Hooks for BotWeb and BotAI
- Standalone-first operation
- Standalone qualification with PBMP, BotWeb, BotAI and BotLogic disabled
- Deterministic tests for parser, dispatch and script bindings
IRC network
|
v
C IRC core
|
+-- parser/state
+-- command/event dispatcher
+-- PBMP adapter
+-- BotWeb/BotAI hooks
|
`-- Lisp/Scheme VM
+-- commands
+-- events
+-- timers
`-- modules
The first scripting API should expose a deliberately small set of primitives:
irc-sayirc-noticeirc-joinirc-partirc-nick- event registration
- command registration
- timers
- basic bot state access
- C first: the bot core remains understandable and portable.
- The Lisp environment must be useful, not decorative.
- Scripts must not be able to crash the IRC core.
- PBMP integration is optional at runtime, but first-class in the architecture.
- BotWeb, BotAI and BotLogic remain optional components.
- No malware or offensive payloads are stored in the repository.
Standalone qualification requires the complete bot, including its Lisp/Scheme runtime, to build and pass its test suite with PBMP, BotWeb, BotAI and BotLogic disabled. The language/runtime is a required part of LiCs, not an optional integration. PBMP, BotWeb, BotAI and BotLogic must remain optional build/runtime dependencies.
Software: MIT.