mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-06 17:38:35 +00:00
* refactor(channels): own setup and instance contracts * refactor(channels): isolate management contracts * refactor(channels): normalize activation contracts * fix(channels): enforce management contracts * refactor(channels): finish setup ownership migration * fix(channels): harden management contracts * fix(channels): enforce lazy loading and runtime ownership * fix(feishu): make multi-instance startup idempotent * fix(webui): render channel setup contracts cleanly * fix(feishu): stop websocket clients cleanly * fix(channels): enforce persistence and activation gates * fix(channels): preserve global feature action scope * fix(channels): apply defaults for single plugins * fix(channels): enforce management contract boundaries * refactor(feishu): remove identity helper indirection * fix(channels): preserve management setup contracts * refactor(channels): generalize instance settings UI * refactor(channels): package channel plugins with web UI metadata * refactor(channels): make built-ins self-contained packages * test(channels): colocate tests with channel packages * fix(dingtalk): use official brand icon * feat(channels): colocate webui translations * docs(channels): clarify plugin ownership * test(exec): remove output wait race * refactor(channels): unify plugin descriptors * fix(channels): enforce descriptor-owned contracts * refactor(channels): finish package-owned plugin setup * refactor(channels): use repository-owned packages only * fix(channels): self-describe dependencies and runtime state * fix(channels): warn about legacy entry points
37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
"""Dependency-free Feishu configuration model shared by management and runtime."""
|
|
|
|
from typing import Literal
|
|
|
|
from pydantic import Field
|
|
|
|
from nanobot.config.schema import Base
|
|
|
|
|
|
class FeishuConfig(Base):
|
|
"""Feishu/Lark channel configuration using WebSocket long connection."""
|
|
|
|
instance_id: str = "default"
|
|
name: str = "nanobot"
|
|
identity_key: str = ""
|
|
enabled: bool = False
|
|
app_id: str = ""
|
|
app_secret: str = ""
|
|
encrypt_key: str = ""
|
|
verification_token: str = ""
|
|
allow_from: list[str] = Field(default_factory=list)
|
|
react_emoji: str = "THUMBSUP"
|
|
done_emoji: str | None = None
|
|
tool_hint_prefix: str = "\U0001f527"
|
|
group_policy: Literal["open", "mention"] = "mention"
|
|
reply_to_message: bool = False
|
|
streaming: bool = True
|
|
domain: Literal["feishu", "lark"] = "feishu"
|
|
topic_isolation: bool = True
|
|
|
|
|
|
def feishu_default_config() -> dict[str, object]:
|
|
return FeishuConfig().model_dump(by_alias=True)
|
|
|
|
|
|
__all__ = ["FeishuConfig", "feishu_default_config"]
|