# pid1

Process manager with init-system capabilities for tasks, cron jobs, and long-running processes.

## Install

```bash
pnpm install
```

## Run

```bash
pid1 init -c pid1.config.ts
```

## CLI

```bash
pid1 status
pid1 processes list
pid1 processes add -n api --definition '{"command":"node","args":["server.js"]}'
pid1 processes restart api
pid1 crons list
pid1 tasks list
pid1 tasks remove task-1
```

## Architecture

- CLI: `src/cli.ts` loads config, starts RPC server, boots manager
- Core: `src/manager.ts` orchestrates tasks, crons, and restarting processes
- Runtime: `src/lazy-process.ts` executes processes; `src/restarting-process.ts` handles restarts
- Scheduling: `src/cron-process.ts` manages cron jobs with retry/queue
- Env: `src/env-manager.ts` loads `.env` + watches for reloads
- API: `src/api/contract.ts` defines ORPC contract, `src/api/server.ts` implements it

## Development

```bash
pnpm run typecheck
pnpm run lint
pnpm run format
pnpm test
```
