"""Self-improvement plugin — controlled improvement loop. Builds on existing systems: - ai_proactive: ContextLog, ProactiveSuggestion (signals) - automation: AgentRun, AgentVersion (versioning + runs) - app.core.approval: ApprovalRequest (human approval) - app.ai.oversight: DecisionRecord (audit trail) - app.ai.llm_client: llm_complete (evaluation) - AuditLog, WorkflowInstance (usage data) """ from __future__ import annotations import logging from app.plugins.base import BasePlugin from app.plugins.manifest import PluginManifest, PluginRouteDef logger = logging.getLogger(__name__) class SelfImprovementPlugin(BasePlugin): manifest = PluginManifest( name="self_improvement", version="1.0.0", display_name="Self-Improvement", description="Controlled self-improvement loop: signals, patterns, proposals, evaluation, approval, activation, rollback, impact measurement.", dependencies=["permissions", "automation", "ai_proactive"], routes=[ PluginRouteDef( path="/api/v1/improvement", module="app.plugins.builtins.self_improvement.routes", router_attr="router", ), ], permissions=["improvement:read", "improvement:write", "improvement:admin"], ) async def on_activate(self, db, service_container, event_bus) -> None: """Register self-improvement hooks on activation.""" await super().on_activate(db, service_container, event_bus) logger.info("Self-improvement plugin activated") async def on_deactivate(self, db, service_container, event_bus) -> None: """Clean up on deactivation.""" await super().on_deactivate(db, service_container, event_bus) logger.info("Self-improvement plugin deactivated")