Phase 4: KI-UI-Steuerung — AI agent UI control via WebSocket

- New ai_ui_control plugin: WS endpoint /ws/ai-ui-control, REST API (POST /command, GET /command/{id}/status, GET /online-users)
- UI-Command-Protocol: 6 command types (navigate, filter, open_contact, modal, tab, settings) with Pydantic schemas
- WebSocket manager: per-user connections, command delivery, feedback storage, stale cleanup
- Frontend useAIUIControl hook: WS client with auto-reconnect, command dispatch, feedback sending
- aiUIControlStore: Zustand store for command state, active modal/tab, pending filter/settings
- AIUIControlIndicator: visual KI indication (Bot icon, toast, pulse animation)
- ContactDetail integration: syncs activeTab and personModalOpen from AI control store
- AppShell integration: useAIUIControl hook + AIUIControlIndicator
- i18n keys for DE/EN
- 18 Vitest tests: command protocol, store actions, feedback, visual indication
- TSC: 0 new errors (only 2 pre-existing Dms.tsx errors)
This commit is contained in:
Agent Zero
2026-07-23 20:13:39 +02:00
parent 5dc6f29ac1
commit 903d649a0f
15 changed files with 1582 additions and 5 deletions
+14 -1
View File
@@ -77,7 +77,8 @@
"status": "Status",
"role": "Rolle",
"active": "Aktiv",
"inactive": "Inaktiv"
"inactive": "Inaktiv",
"dismiss": "Schließen"
},
"dashboard": {
"title": "Dashboard",
@@ -891,5 +892,17 @@
"empty": "Keine Änderungshistorie vorhanden",
"changes": "Änderungen",
"fieldsChanged": "Felder geändert"
},
"ai": {
"uiControl": {
"active": "KI steuert die UI",
"executing": "KI führt Aktion aus",
"navigate": "Navigation",
"filter": "Filter setzen",
"openContact": "Kontakt öffnen",
"modal": "Dialog öffnen",
"tab": "Tab wechseln",
"settings": "Einstellungen ändern"
}
}
}