modules.md 6.3 KB

Module

Revision: r2 Source: CLAUDE.md, Code-Analyse Last updated: 2026-04-10 14:00


Verzeichnisstruktur

trixy7/source/
├── main.py                    # CLI-Einstiegspunkt
├── config/                    # JSON-Konfigurationsdateien
├── trixy_core/                # Kernframework
├── plugins/                   # Benutzer-Plugins
├── models/                    # ML-Modelle (wakeword/, voice_recognition/, intent/)
├── trainer/                   # Trainingsdaten (data/raw/)
├── assets/                    # Audio-Dateien, Profile
├── satellites/                # Registrierte Satellite-JSON
├── certs/                     # SSL-Zertifikate
├── logs/                      # Anwendungslogs
└── make_installer/            # Installer-TUI

trixy_core Module

trixy_core.utils

Zweck: Hilfsfunktionen und Konstanten

Datei Inhalt
debug.py pinfo(), pdebug(), perror(), pwarn() — Farbcodierte Ausgabe
version.py VERSION, PROTOCOL_VERSION Konstanten

trixy_core.service

Zweck: Service-Container und Lebenszyklus-Management

Datei Inhalt
enums.py ServicePriority, ServiceGroup, ServiceState
iservice.py IService abstrakte Basisklasse
service_container.py ServiceContainer mit Abhaengigkeitsaufloesung

trixy_core.events

Zweck: Event-System (Pub/Sub)

Datei Inhalt
enums.py EventPriority
decorators.py @TrixyEvent, @event_handler
eventmanager.py EventManager
event_data/base.py EventData Basisklasse
event_data/basic.py SatelliteConnected, WakewordReceived, etc.

trixy_core.config

Zweck: Konfigurationsmanagement mit Typisierung

Datei Inhalt
config_manager.py ConfigManager mit File-Watching
datasets/server.py ServerConfig Dataclass
datasets/client.py ClientConfig Dataclass
datasets/standalone.py StandaloneConfig Dataclass
datasets/trainer.py TrainerConfig Dataclass

trixy_core.network

Zweck: Netzwerkprotokoll und Verschluesselung

Datei Inhalt
protocol.py TrixyProtocol, ProtocolFlags
encryption.py TrixyEncryption (AES-256-GCM)
client_connection.py Client-seitige Verbindungsverwaltung
config_listener.py ConfigListener (IService, Port 2105)
cmd/base.py CommandMessage Basisklasse
cmd/satellite.py SatelliteConnect, SatelliteAccepted, etc.
cmd/wakeword.py WakewordDetected, WakewordSelected, etc.
cmd/recording.py RecordingStart, RecordingStop, etc.
cmd/system.py SystemReboot, SystemStatus, etc.
cmd/config_cmd.py ConfigConnect, ConfigStatusRequest, ConfigSatelliteAudioRequest, etc.

trixy_core.satellite

Zweck: Satellite-Verwaltung und Registrierung

Datei Inhalt
satellite.py Satellite Klasse, ConnectionState
satellite_manager.py SatelliteManager (Registry)
registration_manager.py RegistrationManager (60s Timeout)

trixy_core.audio

Zweck: Audio-Ein-/Ausgabe, Lautstaerke, Multi-Device

Datei Inhalt
volume.py _MixerChannel — ALSA Lautstaerke-Steuerung
pulse_combined.py PulseSink — Multi-Speaker Combined-Sink
pulse_mic_mix.py PulseSource — Multi-Mic null-sink + loopback Mix
microphone.py Mikrofon-Eingabe
player.py Audio-Ausgabe
accumulator.py Audio-Puffer
stt.py Speech-to-Text Integration
tts.py Text-to-Speech Integration
processing/ Audio-Pipeline mit Pipeline, Processor, Context

trixy_core.tui

Zweck: Textual-basiertes TUI-Framework fuer Server und Config-Tool

Datei Inhalt
app.py TrixyTUI — Haupt-TUI mit F-Key Navigation
menu_context.py MenuContext — View-Routing und Keybindings
views/base.py MainView Basisklasse
views/health_view.py OS-Metriken (RAM, CPU, Disk, Netzwerk, Uptime)
views/satellites_view.py Satellite-Liste mit Status, Register/Delete
views/sat_audio_view.py Per-Satellite Audio-Steuerung (F6)
views/config_view.py System-Config Editor
views/trainer_view.py Trainer-Liste (F7)
views/trainer_*.py Trainer Sub-Views (Info/Settings/Dataset/Optional/Validate)
widgets/ StatusTable, ProgressDialog, Header, Footer, LossChart

trixy_core.trainer

Zweck: ML-Training Framework (ADR-008)

Datei Inhalt
itrainer.py ITrainer ABC — get_info(), train(), validate()
registry.py TrainerRegistry — Discovery von Core- und Plugin-Trainern
service.py TrainerService (IService) — multiprocessing.Process
dataclasses.py TrainerInfo, TrainingProgress, ValidationResult, FormSchema
application.py TrainerApplication — Standalone CLI-Training
core/wakeword_trainer.py WakewordTrainer — OpenWakeWord LogisticRegression
core/intent/trainer.py IntentTrainer — Sentence-Transformers + ONNX Export
core/intent/data_generator.py Intent-Daten aus Plugin-YAML Dateien
core/intent/embedding_cache.py Embedding-Cache fuer schnelleres Training
core/intent/slot_lists.py Slot-Listen fuer Intent-Slots
core/intent/bio_tagger.py BIO-Slot-Tagger Kopf
core/tts_engines/ ITTSEngine + 8 Implementierungen (Piper, gTTS, Edge, ...)

trixy_core.plugins

Zweck: Plugin-System

Datei Inhalt
trixy_plugin.py TrixyPlugin Basisklasse
plugin_manager.py PluginManager (Laden, Enable/Disable)

trixy_core.config_app

Zweck: Remote Config-Tool (eigenstaendige Textual-App)

  • ConfigApplication — Verbindet sich via Port 2105 zum Server
  • Unterstuetzt: Status, Config-Aenderungen, Satellite-Audio, Geraete-Liste
  • Erbt NICHT von IApplication — Textual hat eigenen Event-Loop

Anwendungsklassen

Datei Klasse Zweck
application.py IApplication Abstrakte Basis
server.py ServerApplication Server-Modus
client.py ClientApplication Client/Satellite-Modus
standalone.py StandaloneApplication Standalone-Modus

See also: architecture.md, apis.md