"""Wiki plugin — knowledge articles, categories, versioning (H-WIKI, H-VER)."" from __future__ import annotations import logging from app.plugins.base import BasePlugin from app.plugins.manifest import FrontendMenuItem, FrontendPageRoute, PluginManifest, PluginRouteDef logger = logging.getLogger(__name__) class WikiPlugin(BasePlugin): manifest = PluginManifest( name="wiki", version="1.0.0", display_name="Wiki", description="Knowledge articles with Markdown, categories, tags, versioning, entity links.", dependencies=["permissions"], routes=[ PluginRouteDef(path="/api/v1/wiki", module="app.plugins.builtins.wiki.routes", router_attr="router"), ], permissions=["wiki:read", "wiki:write", "wiki:delete", "wiki:admin"], menu_items=[FrontendMenuItem(label_key="wiki.menu.wiki", label="Wiki", path="/wiki", icon="BookOpen")], page_routes=[FrontendPageRoute(path="/wiki", component="@/pages/Wiki")], ) async def on_activate(self, db, service_container, event_bus) -> None: """Register wiki search provider on activation.""" await super().on_activate(db, service_container, event_bus) try: from app.plugins.builtins.unified_search.provider_registry import get_search_registry from app.plugins.builtins.unified_search.providers.wiki_provider import WikiSearchProvider registry = get_search_registry() registry.register(WikiSearchProvider()) logger.info("Registered WikiSearchProvider") except Exception: logger.exception("Failed to register WikiSearchProvider")