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>
22 lines
1020 B
Markdown
22 lines
1020 B
Markdown
# 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](../README.md) for how to run TriggerShell end-to-end, and
|
|
[`../docs/ARCHITECTURE.md`](../docs/ARCHITECTURE.md) for how this app is put together.
|
|
|
|
```bash
|
|
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).
|