Files
hermes-agent/hermes_cli/setup_hidden_env.py

47 lines
1.8 KiB
Python

"""Which platform env vars the setup surfaces hide.
Hiding them is a *presentation* decision only. The env vars keep working through ``hermes config
set``, ``.env``, and ``config.yaml``; the gateway reads them exactly as before. This module just
says what a new user is asked during setup.
"""
# Suffix match, so plugin adapters nobody enumerated (IRC, SimpleX, LINE, ntfy)
# get the same treatment without a code change here.
#
# *_HOME_CHANNEL* the bot offers /sethome on the first chat
# *_ALLOW_ALL_USERS defaults off; enabling it is a security decision
# *_REPLY_TO_MODE cosmetic threading preference
# *_REPLY_MODE same, Mattermost's spelling
# *_REQUIRE_MENTION behavior toggle with a sane default
# *_AUTO_THREAD same
# *_FREE_RESPONSE_* per-channel tuning, done once the bot is in a server
# *_ALLOWED_CHANNELS same
# *_PROXY only for networks that block the platform
#
# Allowlists (*_ALLOWED_USERS) deliberately stay visible: that IS the decision
# a new user has to make, and the gateway denies everyone until it's set.
SETUP_HIDDEN_ENV_SUFFIXES = (
"_HOME_CHANNEL",
"_HOME_CHANNEL_NAME",
"_HOME_CHANNEL_THREAD_ID",
"_HOME_ADDRESS",
"_ALLOW_ALL_USERS",
"_REPLY_TO_MODE",
"_REPLY_MODE",
"_REQUIRE_MENTION",
"_AUTO_THREAD",
"_FREE_RESPONSE_CHANNELS",
"_FREE_RESPONSE_ROOMS",
"_ALLOWED_CHANNELS",
"_PROXY",
)
def is_setup_hidden_env(name: str) -> bool:
"""True when a var is self-configuring and shouldn't appear in setup forms.
Callers must still keep any var a platform lists as *required* — hiding a required credential
would make that platform unconfigurable from the UI.
"""
return name.endswith(SETUP_HIDDEN_ENV_SUFFIXES)