nanobot/nanobot/pairing/__init__.py
Xubin Ren fe0717b385
feat(webui): add guided setup flows
* feat(channels): add guided setup flows

* test(channels): preserve setup config values

* fix(channels): reflect saved setup state

* refactor(channels): simplify setup state metadata

* fix(channels): harden setup lifecycle

* refactor(channels): centralize setup contracts

* fix(channels): route setup actions through webui shim

* fix(channels): adapt settings for compact screens

* fix(models): preserve default preset display

* feat(models): add curated Codex catalog

* fix(webui): stop attached gateway on interrupt

* fix(webui): simplify apps catalog

* docs(webui): clarify apps and runtime features

* feat(settings): add guided capability setup

* fix(webui): harden setup and managed services

* test: keep managed runtime checks portable

* test: scope POSIX runtime coverage

* fix(webui): simplify file settings

* feat(files): bundle document reading

* fix(webui): harden setup request boundaries

* fix(webui): prevent channel setup status squeeze

* fix(settings): group provider compatibility aliases

* refactor(settings): remove redundant setup surfaces

* fix(webui): harden guided setup lifecycle

* fix(webui): preserve channel setup compatibility
2026-07-13 13:11:46 +08:00

38 lines
808 B
Python

"""Pairing module for DM sender approval."""
from nanobot.pairing.store import (
approve_code,
clear_channel,
deny_code,
format_expiry,
format_pairing_reply,
generate_code,
get_approved,
handle_pairing_command,
is_approved,
list_pending,
revoke,
revoke_channel,
)
# Metadata keys used by channels and commands to tag pairing-related messages.
PAIRING_CODE_META_KEY = "_pairing_code"
PAIRING_COMMAND_META_KEY = "_pairing_command"
__all__ = [
"approve_code",
"clear_channel",
"deny_code",
"format_expiry",
"format_pairing_reply",
"generate_code",
"get_approved",
"handle_pairing_command",
"is_approved",
"list_pending",
"revoke",
"revoke_channel",
"PAIRING_CODE_META_KEY",
"PAIRING_COMMAND_META_KEY",
]