Skip to content

Commit e0787f9

Browse files
jonit-devTest User
andauthored
feat(agent): add machine-readable manageability CLI
* feat(agent): add machine-readable manageability CLI * test: update smoke CLI pause stubs --------- Co-authored-by: Test User <test@test.com>
1 parent 9fff940 commit e0787f9

24 files changed

Lines changed: 1594 additions & 0 deletions

README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,26 @@ night-watch run
8383

8484
---
8585

86+
## Agent / Machine-Readable CLI
87+
88+
External agents and automation should use the JSON-first manageability commands instead of scraping human output:
89+
90+
```bash
91+
night-watch agent status --json
92+
night-watch health --json
93+
night-watch config list --json
94+
night-watch config get reviewerEnabled --json
95+
night-watch config set reviewerEnabled false --json
96+
night-watch job pause reviewer --json
97+
night-watch job resume reviewer --json
98+
```
99+
100+
JSON modes write one JSON document to stdout on success and reserve stderr for errors. `night-watch status --json` keeps its legacy shape for backward compatibility; `night-watch agent status --json` adds a stable wrapper with `schemaVersion`, `status`, `paused`, `queue`, `board`, `health`, and `lastRuns`.
101+
102+
Paused jobs are stored in `night-watch.config.json` under `pausedJobs`. Cron scripts and queue claim/dispatch paths read this state before starting work, so `night-watch job pause <job> --json` prevents new cron/queue-dispatched runs for that job until resumed.
103+
104+
---
105+
86106
## Who It's For
87107

88108
Night Watch is strongest when:

SELF_REVIEW.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Self Review: Agent Manageability CLI
2+
3+
## Implementation
4+
5+
- Added `night-watch agent status --json` with `schemaVersion`, legacy status data, pause state, queue state, board summary, health checks, and recent run timestamps.
6+
- Added `night-watch config list/get/set --json` with dot-path access, simple value parsing, config reload validation, and rollback on invalid persisted values.
7+
- Added `night-watch health --json` with lightweight automation readiness checks and JSON-only stdout.
8+
- Added `night-watch job pause/resume <job> --json`, persisted pause state under `pausedJobs`, and wired cron/queue entry points to skip paused jobs before starting new work.
9+
- Documented the machine-readable CLI contract in `README.md` and `docs/reference/commands.md`; committed the PRD at `docs/prds/agent-manageability-cli.md`.
10+
11+
## Tests Run
12+
13+
- `yarn workspace @jonit-dev/night-watch-cli test src/__tests__/commands/agent.test.ts`
14+
- `yarn workspace @jonit-dev/night-watch-cli test src/__tests__/commands/agent.test.ts src/__tests__/commands/status.test.ts src/__tests__/commands/queue.test.ts`
15+
- `bash -n scripts/night-watch-cron.sh scripts/night-watch-pr-reviewer-cron.sh scripts/night-watch-qa-cron.sh scripts/night-watch-audit-cron.sh scripts/night-watch-slicer-cron.sh scripts/night-watch-plan-cron.sh scripts/night-watch-merger-cron.sh scripts/night-watch-pr-resolver-cron.sh scripts/night-watch-helpers.sh`
16+
- `yarn lint` (passes with existing warnings)
17+
- `yarn verify`
18+
- `yarn workspace @jonit-dev/night-watch-cli build`
19+
20+
## Known Limitations
21+
22+
- `job pause` prevents new cron/queue-dispatched starts; it does not terminate a job that is already running.
23+
- `agent status` includes board details only when a board is already configured. Provider/API errors are captured in `board.error` instead of failing the whole status snapshot.
24+
- `lastRuns` is based on available job-run telemetry from the last 30 days; projects without telemetry return null timestamps.

0 commit comments

Comments
 (0)