Plattformmerknader
Plattformspesifikk atferd, krav og særegenheter.
macOS
Tjenestebehandler: launchd
Triggerfish registrerer seg som en launchd-agent på:
~/Library/LaunchAgents/dev.triggerfish.agent.plistPlist-filen er konfigurert med RunAtLoad: true og KeepAlive: true, slik at daemonen starter ved innlogging og restartes ved krasj.
PATH-opptak
Launchd-plist-filen tar opp din shell PATH på installasjonstidspunktet. Dette er avgjørende fordi launchd ikke importerer din shell-profil. Hvis du installerer MCP-serveravhengigheter (som npx, python) etter installasjon av daemonen, vil disse binærene ikke være i daemonens PATH.
Løsning: Reinstaller daemonen for å oppdatere den lagrede PATH:
bash
triggerfish stop
triggerfish dive --install-daemonKarantene
macOS legger karanteneflagg på nedlastede binærfiler. Installasjonsprogrammet fjerner dette med xattr -cr, men hvis du lastet ned binærfilen manuelt:
bash
xattr -cr /usr/local/bin/triggerfishNøkkelring
Hemmeligheter lagres i macOS-innloggingsnøkkelringen via security CLI. Hvis Nøkkelringtilgang er låst, vil hemmelighetoperasjoner feile inntil du låser den opp (vanligvis ved å logge inn).
Homebrew Deno
Hvis du bygger fra kildekode og Deno ble installert via Homebrew, sørg for at Homebrew bin-mappen er i din PATH før du kjører installasjonsskriptet.
Linux
Tjenestebehandler: systemd (brukermodus)
Daemonen kjører som en systemd-brukertjeneste:
~/.config/systemd/user/triggerfish.serviceLinger
Som standard stopper systemd-brukertjenester når brukeren logger ut. Triggerfish aktiverer linger ved installasjon:
bash
loginctl enable-linger $USERHvis dette mislykkes (f.eks. fordi systemadministratoren har deaktivert det), kjører daemonen bare mens du er innlogget. På servere der du vil at daemonen skal vedvare, be administratoren om å aktivere linger for din konto.
PATH og miljø
Systemd-enheten tar opp din PATH og setter DENO_DIR=~/.cache/deno. Som på macOS krever endringer i PATH etter installasjon at daemonen reinstalleres.
Enheten setter også Environment=PATH=... eksplisitt. Hvis daemonen ikke kan finne MCP-serverbinærfiler, er dette den mest sannsynlige årsaken.
Fedora Atomic / Silverblue / Bazzite
Fedora Atomic-skrivebord har /home symbollenket til /var/home. Triggerfish håndterer dette automatisk ved oppretting av hjemmemappen, ved å følge symbollenker for å finne den faktiske banen.
Flatpak-installerte nettlesere oppdages og startes via et innpakningsskript som kaller flatpak run.
Hodeløse servere
På servere uten et skrivebordsmiljø kjører kanskje ikke GNOME Keyring / Secret Service-daemonen. Se Hemmeligheter feilsøking for oppsettpsinstruksjoner.
SQLite FFI
SQLite-lagringsbackenden bruker @db/sqlite, som laster et native bibliotek via FFI. Dette krever --allow-ffi Deno-tillatelse (inkludert i den kompilerte binærfilen). På noen minimale Linux-distribusjoner kan det hende at det delte C-biblioteket eller relaterte avhengigheter mangler. Installer base utviklingsbiblioteker hvis du ser FFI-relaterte feil.
Windows
Tjenestebehandler: Windows Service
Triggerfish installeres som en Windows-tjeneste kalt "Triggerfish". Tjenesten er implementert av en C#-innpakning kompilert under installasjon ved hjelp av csc.exe fra .NET Framework 4.x.
Krav:
- .NET Framework 4.x (installert på de fleste Windows 10/11-systemer)
- Administratorrettigheter for tjenesteinstallasjon
csc.exetilgjengelig i .NET Framework-mappen
Binærfilerstatning under oppdateringer
Windows tillater ikke overskrivning av en kjørende kjørbar fil. Oppdatereren:
- Gir den kjørende binærfilen nytt navn til
triggerfish.exe.old - Kopierer den nye binærfilen til den opprinnelige banen
- Restarter tjenesten
- Rydder opp
.old-filen ved neste oppstart
Hvis omdøping eller kopiering mislykkes, stopp tjenesten manuelt før oppdatering.
ANSI-fargstøtte
Triggerfish aktiverer Virtual Terminal Processing for farget konsollutdata. Dette fungerer i moderne PowerShell og Windows Terminal. Eldre cmd.exe-vinduer gjengir kanskje ikke farger riktig.
Eksklusiv fillåsing
Windows bruker eksklusive fillåser. Hvis daemonen kjører og du prøver å starte en ny instans, hindrer loggfillåsen det:
Triggerfish is already running. Stop the existing instance first, or use 'triggerfish status' to check.Denne deteksjonen er spesifikk for Windows og er basert på EBUSY / "os error 32" når loggfilen åpnes.
Hemmelighetlagring
Windows bruker den krypterte fillagringen (AES-256-GCM) på ~/.triggerfish/secrets.json. Det er ingen Windows Credential Manager-integrasjon. Behandle secrets.key-filen som sensitiv.
PowerShell-installasjonsmerknaer
PowerShell-installasjonsprogrammet (install.ps1):
- Oppdager prosessorarkitektur (x64/arm64)
- Installerer til
%LOCALAPPDATA%\Triggerfish - Legger installasjonsmappen til bruker-PATH via registret
- Kompilerer C#-tjenesteinpakningsskriptet
- Registrerer og starter Windows-tjenesten
Hvis installasjonsprogrammet feiler ved tjenestekompilasjonstrinnet, kan du fortsatt kjøre Triggerfish manuelt:
powershell
triggerfish run # ForgrunnsmedodusDocker
Containerkjøretid
Docker-distribusjonen støtter både Docker og Podman. Deteksjon er automatisk, eller sett eksplisitt:
bash
TRIGGERFISH_CONTAINER_RUNTIME=podmanBildedetaljer
- Basis:
gcr.io/distroless/cc-debian12(minimal, ingen shell) - Feilsøkingsvariant:
distroless:debug(inkluderer shell for feilsøking) - Kjører som UID 65534 (nonroot)
- Init:
true(PID 1 signalvideresending viatini) - Omstartspolicy:
unless-stopped
Datapersistens
Alle vedvarende data er i /data-mappen inni containeren, støttet av et Docker navngitt volum:
/data/
triggerfish.yaml # Konfigurasjon
secrets.json # Krypterte hemmeligheter
secrets.key # Krypteringsnøkkel
SPINE.md # Agentidentitet
TRIGGER.md # Trigger-atferd
data/triggerfish.db # SQLite-database
logs/ # Loggfiler
skills/ # Installerte ferdigheter
workspace/ # Agentarbeidsområder
.deno/ # Deno FFI-pluginbufferMiljøvariabler
| Variabel | Standard | Formål |
|---|---|---|
TRIGGERFISH_DATA_DIR | /data | Basisdatakatalog |
TRIGGERFISH_CONFIG | /data/triggerfish.yaml | Konfigurasjonsfilbane |
TRIGGERFISH_DOCKER | true | Aktiverer Docker-spesifikk atferd |
DENO_DIR | /data/.deno | Deno-buffer (FFI-plugins) |
HOME | /data | Hjemmekatalog for nonroot-bruker |
Hemmeligheter i Docker
Docker-containere får ikke tilgang til vert-OS-nøkkelringen. Den krypterte fillagringen brukes automatisk. Krypteringsnøkkelen (secrets.key) og krypterte data (secrets.json) lagres i /data-volumet.
Sikkerhetsnotat: Alle med tilgang til Docker-volumet kan lese krypteringsnøkkelen. Sikre volumet på riktig måte. Vurder å bruke Docker secrets eller en hemmelighetbehandler for å injisere nøkkelen ved kjøretid i produksjon.
Porter
Compose-filen tilordner:
18789- Gateway WebSocket18790- Tidepool A2UI
Ytterligere porter (WebChat på 8765, WhatsApp-webhook på 8443) må legges til i compose-filen hvis du aktiverer disse kanalene.
Kjøre oppsettveiviseren i Docker
bash
# Hvis containeren kjører
docker exec -it triggerfish triggerfish dive
# Hvis containeren ikke kjører (engangskjøring)
docker run -it -v triggerfish-data:/data ghcr.io/greghavens/triggerfish:latest diveOppdatering
bash
# Bruker innpakningsskriptet
triggerfish update
# Manuelt
docker compose pull
docker compose up -dFeilsøking
Bruk feilsøkingsvarianten av bildet for problemsøking:
yaml
# I docker-compose.yml
image: ghcr.io/greghavens/triggerfish:debugDette inkluderer en shell slik at du kan kjøre kommandoer inne i containeren:
bash
docker exec -it triggerfish /busybox/shFlatpak (kun nettleser)
Triggerfish selv kjører ikke som en Flatpak, men kan bruke Flatpak-installerte nettlesere for nettleserautomatisering.
Oppdagede Flatpak-nettlesere
com.google.Chromeorg.chromium.Chromiumcom.brave.Browser
Slik fungerer det
Triggerfish oppretter et midlertidig innpakningsskript som kaller flatpak run med hodeløse modusflagg, og starter deretter Chrome via det skriptet. Innpakningsskriptet skrives til en midlertidig katalog.
Vanlige problemer
- Flatpak ikke installert. Binærfilen må være på
/usr/bin/flatpakeller/usr/local/bin/flatpak. - Midlertidig katalog ikke skrivbar. Innpakningsskriptet må skrives til disk før kjøring.
- Flatpak sandbox-konflikter. Noen Flatpak Chrome-bygg begrenser
--remote-debugging-port. Hvis CDP-tilkoblingen mislykkes, prøv en ikke-Flatpak Chrome-installasjon.
