Replace the Python CLI with a Node CLI, add a systemd service command
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>
This commit is contained in:
+8
-3
@@ -1,8 +1,9 @@
|
||||
# TriggerShell web app
|
||||
|
||||
This is the Next.js app that TriggerShell's Python CLI (`triggershell dev` / `triggershell start`)
|
||||
launches — it's not meant to be run standalone with `next dev`/`next start` since it needs a
|
||||
custom server (`server.ts`) for the WebSocket endpoint.
|
||||
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.
|
||||
@@ -12,5 +13,9 @@ 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).
|
||||
|
||||
Reference in New Issue
Block a user