- notify() mit Plattform-Zweigen: Linux notify-send (unverändert), macOS osascript, Windows PowerShell-Toast via WinRT + PowerShell-AUMID (keine App-Registrierung nötig); Titel/Text über env des Child-Prozesses (injektionssicher), XML-Escape via SecurityElement - fail-soft Spawn in Node UND Bun (try/catch + error-Listener decken beide ENOENT-Semantiken ab) — fehlendes Binary/headless = stiller No-Op - Log-Pfad-Entscheidung: Windows %LOCALAPPDATA%\opencode\ (idiomatisch, roamt nicht, Fallback ~\AppData\Local), sonst XDG-State unverändert; dokumentiert im README - Live verifiziert: Linux permission.asked -> ask/ask.explained/replied im Audit-Log + Toast; Fail-Soft win32/darwin-Zweige in node+bun ohne Crash
48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# opencode-plugins — kanonische Plugin-Sammlung für opencode
|
|
|
|
Dieses Repo ist die **eine Wahrheitsquelle** für opencode-Plugins der AZ-Gruppe.
|
|
Es ist ein reines Content-Repo: hier leben nur die Plugin-Dateien plus ihre
|
|
Doku — die Technik, die sie ausliefert, gehört in das Fleet-Repo `az-fleet`.
|
|
|
|
Das Repos ist **anonym lesbar** (kein Token für Pulls nötig), Schreiben läuft
|
|
über die Organisation AZ-Intec-GmbH.
|
|
|
|
## Enthaltene Plugins
|
|
|
|
| Plugin | Zweck | Version |
|
|
|---|---|---|
|
|
| [`explain-permissions/`](explain-permissions/) | Erklärt jeden freigabepflichtigen Tool-Call laienverständlich (Was/Folgen/Risiko), Desktop-Notification + Audit-Log | v1.2.0 |
|
|
|
|
## Struktur & Konventionen
|
|
|
|
```
|
|
opencode-plugins/
|
|
└── <plugin-name>/
|
|
├── <plugin-name>.js # die Plugin-Datei (genau eine pro Plugin)
|
|
└── README.md # Doku: Zweck, Env-Variablen, Logs, Neustart-Hinweis
|
|
```
|
|
|
|
- **Ein Ordner pro Plugin**, Name = Plugin-Name (kebab-case, keine Umlaute).
|
|
- Version steht in `PLUGIN_VERSION` im Dateikopf des Plugins.
|
|
- **Tags sind pro Plugin benamst**: `<plugin-name>/v<version>` — z. B.
|
|
`explain-permissions/v1.1.0`. So kollidieren Versionen verschiedener Plugins
|
|
nie. Ein Tag markiert immer exakt den Plugin-Stand bei Freigabe.
|
|
- Neue Plugins: Ordner anlegen, in der Tabelle oben eintragen, Commit + Tag.
|
|
|
|
## Bezug
|
|
|
|
### Lokale Workstation (Checkout + Symlink)
|
|
|
|
```bash
|
|
git clone https://git.az-gruppe.com/AZ-Intec-GmbH/opencode-plugins.git ~/p/AZ/opencode-plugins
|
|
ln -sf ~/p/AZ/opencode-plugins/<plugin-name>/<plugin-name>.js ~/.config/opencode/plugins/<plugin-name>.js
|
|
```
|
|
|
|
Danach opencode **neu starten**. Wichtig: nur EINE Datei dieses Namens im
|
|
Plugin-Ordner — sonst lädt opencode das Plugin doppelt.
|
|
|
|
### Fleet (`az-fleet`)
|
|
|
|
Pin auf einen Tag (`<plugin-name>/v<version>`) oder `main`; anonymes
|
|
`git clone` über HTTPS reicht.
|