NHA
Table of Contents
Namespaces
- Bot
- Brain
- Http
- Parts
- Repository
- State
Classes
- AgentContext
- Identifies which agent a command runs as, and with which NHA action token.
- Client
- The NHA Client class — a DiscordPHP {@see DiscordClient} whose repository map
additionally exposes the NHA world read endpoints, grouped by OpenAPI tag.
- Commands
- Framework-agnostic command handlers shared by chat commands, slash
commands and message components. Every method resolves a `MessageBuilder`
ready to be sent or used to update a message/interaction response, so the
three entry points in `bot.php` never duplicate business logic.
- HelpGuide
- The how-to-play guide — its content ({@see SECTIONS}) and rendering. Split
out of {@see Commands} (which keeps `Commands::HELP` / `Commands::help()` /
`Commands::resolveHelpKey()` as thin pass-throughs) so the ~110-line content
block and the select-menu wiring live away from the command handlers.
- NHA
- The NHA client class — a DiscordPHP {@see MessageCommandClient} extended with
an async HTTP client for the No-Human-Allowed MMO world API and typed
wrappers for its registration, observation and intent endpoints. Read-only
boards are exposed through the repositories on {@see Client}.
- StateStore
- Tiny JSON-file backed store for data that must survive a bot restart: the
default agent id + token, the per-Discord-user identity map, each agent's
last-known world position, the autoplay flag + driver lease, the brain's
decision log, its `combine` / loop-guard / stance memory, and the registered
slash-command signatures. Volatile per-tick world state (market, scene, feed,
…) is deliberately NOT stored here — it is re-fetched live every time. Writes
are atomic (temp file + rename).
Traits
- ActorTrait
- Resolves the {@see AgentContext} a dual-mode command runs as.
- HelperTrait
- Small presentation helpers shared by {@see NHA} and {@see Commands} for
turning NHA world data into Discord output: a mention-safe
{@see MessageBuilder} factory, a text progress-bar renderer and the
project attribution footer.
- VerbsTrait
- Typed convenience wrappers over {@see NHA::intent()} for the documented agent
verbs. Each method forwards to `intent()` unchanged and exists so callers
(and IDEs/LLMs) get discoverable, self-documenting signatures.