|
|
@@ -16,6 +16,32 @@ PYTHONPATH=/tmp/hermes uv run --with pyyaml pytest -q
|
|
|
Dev-Dependencies. Liegt der Checkout schon irgendwo, den Pfad einfach
|
|
|
wiederverwenden statt neu zu klonen.
|
|
|
|
|
|
+## Capabilities
|
|
|
+
|
|
|
+**Erweiterst du die Fähigkeiten des Adapters, pflege das Startup-Banner mit.**
|
|
|
+
|
|
|
+Beim Registrieren loggt `_capabilities()` (in `adapter.py`), was das Plugin kann
|
|
|
+— damit man beim Start sieht, was zur Verfügung steht, statt es aus dem Code
|
|
|
+lesen zu müssen. Ob eine Fähigkeit als vorhanden gilt, wird aus echten Overrides
|
|
|
+abgeleitet: sie zählt nur, wenn `ChattoAdapter` die Methode von
|
|
|
+`BasePlatformAdapter` ersetzt. Das Label dazu steht aber in `_CAPABILITY_LABELS`
|
|
|
+und wird *nicht* automatisch gefunden.
|
|
|
+
|
|
|
+Beim Hinzufügen einer überschriebenen `BasePlatformAdapter`-Methode also:
|
|
|
+
|
|
|
+1. Eintrag in `_CAPABILITY_LABELS` ergänzen (Methodenname → Bezeichnung, die für
|
|
|
+ jemanden ohne Codekenntnis Sinn ergibt). Ohne diesen Schritt kann das Plugin
|
|
|
+ die Sache zwar, sagt es aber nirgends.
|
|
|
+2. Prüfen, ob der `platform_hint` in `register()` sie erwähnen muss. Der Hint
|
|
|
+ geht in den System-Prompt und ist das Einzige, woraus das Modell erfährt, was
|
|
|
+ der Kanal kann — fehlt der Hinweis, behilft sich der Agent mit der Shell.
|
|
|
+3. Test in `TestRegistration` ergänzen, falls die Fähigkeit nutzerseitig sichtbar
|
|
|
+ ist.
|
|
|
+
|
|
|
+Umgekehrt gilt dasselbe: fällt eine Methode weg, verschwindet ihre Zeile von
|
|
|
+selbst aus dem Log — der Eintrag in `_CAPABILITY_LABELS` sollte dann trotzdem
|
|
|
+mit raus.
|
|
|
+
|
|
|
## Shell Scripts
|
|
|
|
|
|
**Always run `shellcheck` after editing any shell scripts.**
|