Architecture: Session 133: What is the plugin architecture for the unified...

Documentation for Sessions

🏗️ Architecture: Session 133: What is the plugin architecture for the unified...

Date: 2026-02-21
Time: 19:26:03 UTC
Session: gspace1-133.13
Agent: angular
Confidence: NaN%
Status: ✅ Documented


📋 Decision Context

Question:

Session 133: What is the plugin architecture for the unified chat and how do surfaces compose it?

Task: Not specified


🎯 Decision Made

Chosen:

Plugin-based composition where each surface picks its plugins

Options Considered:

  1. Hardcode features per surface with feature flags
  2. Plugin-based composition where each surface picks its plugins

💭 Reasoning

Created ChatPlugin interface (59 lines) with optional fields: tabs, slashCommands, quickActions, enrichMessage, outputComponents, inputAddons, headerAddons, onActivate, onDeactivate. 5 concrete plugins implemented as factory functions (not classes, not Angular services -- plain config objects): (1) GenerationPlugin (47 lines) -- Registers Image/Video/Widget/Module tabs, 3 quick actions. Tab components live in @libs-ai/ai-panel-core. (2) ContextPlugin (47 lines) -- Route-aware quick actions for dashboard/page-builder/theme-designer/modular-universe contexts. (3) AgentPlugin (93 lines) -- 7 slash commands (/status, /pause, /resume, /assign, /cancel, /agents, /briefing), 2 quick actions. (4) ModelPlugin (54 lines) -- /model slash command, typed addon slots for picker/cost badge components. (5) ActionPlugin (39 lines) -- Drag-drop output viewer, lifecycle hooks for canvas integration. SURFACE COMPOSITIONS: /vitto/chat uses [agentPlugin, modelPlugin] with sidebar. /panel uses [generationPlugin, contextPlugin, actionPlugin, modelPlugin] without sidebar. Agent terminal uses [agentPlugin] in terminalMode. Theme generator uses [themePlugin]. Embedded/sidebar uses [generationPlugin, contextPlugin, actionPlugin] in compact mode.


📁 Files Involved


🔗 Related


Auto-generated by MCP Smart Consolidation