The integration snippets keyed off GHOSTTY_RESOURCES_DIR being set and
sourced the script unconditionally. Applications embedding GhosttyKit,
such as cmux, export GHOSTTY_RESOURCES_DIR pointing at a resource tree
that ships terminfo and themes but no shell-integration directory, so
every interactive shell started inside them failed with:
no such file or directory: /Applications/cmux.app/Contents/Resources/ghostty/shell-integration/zsh/ghostty-integration
Test for the integration file itself instead of the variable.
Stopping or restarting the service will destroy open Ghostty sessions,
potentially disrupting work. This change ensures that we leave the
existing service untouched.
Fixes#8485
Instead of having to manually stub packages that should not be
downloaded we instead automatically stub all packages (except a small
list of whitelisted ones). Tests can re-introduce the real package by
using the `realPkgs` module argument.