The app is already 100% Node, so the Python launcher was pure overhead - it existed mainly to bootstrap Node, which is circular. The CLI is now merged into app/ (the single published npm package): `triggershell start` validates the config and imports server.ts directly in-process, so server.ts's own SIGTERM/SIGINT handling just works with no signal-relay/child-process layer needed. `dev` is dropped from the public CLI (contributors use `pnpm --dir app dev` directly); there's no `build` command either, since the package ships a prebuilt `.next` via a `prepack` hook. Adds `triggershell service install|uninstall|status` for running as a per-user or system systemd unit. Also fixes two bugs found while wiring this up: server.ts resolved `.next` relative to `process.cwd()`, which broke once the CLI could run from a directory other than the app itself; and an explicitly-`files`-listed package directory bypasses .npmignore for its subpaths, so `.next/cache` was inflating the npm tarball to ~670MB (now stripped in `prepack`, ~7MB). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1020 B
1020 B
TriggerShell web app
This directory is both the Next.js app and the home of the triggershell CLI (bin/triggershell.js
→ src/cli) that launches it — together they're published as one npm package. The app is still not
meant to be run standalone with next dev/next start, since it needs a custom server (server.ts)
for the WebSocket endpoint; use the CLI (triggershell start) or the pnpm scripts below instead.
See the repo root README for how to run TriggerShell end-to-end, and
../docs/ARCHITECTURE.md for how this app is put together.
pnpm install
pnpm dev # tsx watch server.ts - reads TRIGGERSHELL_CONFIG_PATH from the environment
pnpm lint
pnpm typecheck
pnpm test # CLI unit tests (src/cli/**/*.test.ts)
pnpm db:studio # browse the SQLite database
Note: this is the contributor workflow for developing TriggerShell itself. End users install and
run the published triggershell CLI instead (see the root README).