This repository has been archived on 2026-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
anvillm/services
Levi Neely 50ae1d0dad Add approval gates: beads schema, Conductor, notification daemon, init scripts
Implements bd-i4h (Approval Gates / Human in the Loop):

beads schema (bd-i4h.4):
- Add StatusPendingApproval/StatusPendingReview local status constants
- Add pending-approval, pending-review, resume ctl commands
- Add agent/beads/pending read endpoint
- Document requires-approval/requires-review label conventions
- Update BEADS.md with full Approval Gates section

Conductor bot (bd-i4h.2):
- Read context prompt from stdin when not a terminal (custom prompt support)
- Extend default prompt with approval gate workflow instructions

Human notification daemon (bd-i4h.1):
- Add scripts/anvillm-inbox-notify: streams agent/events, fires notify-send
  for configurable message types (default: APPROVAL_REQUEST, REVIEW_REQUEST)
- Add services/inbox-notify-runit/: runit service
- Add services/systemd/anvillm-inbox-notify.service: systemd user service
- Add services/sysvinit/anvillm-inbox-notify: SysV LSB init script
- Add services/sysvinit/rc.anvillm-inbox-notify: Slackware rc script

anvilsrv init scripts:
- Add services/sysvinit/anvilsrv: SysV LSB init script
- Add services/sysvinit/rc.anvilsrv: Slackware rc script

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 18:47:23 +01:00
..
inbox-notify-runit Add approval gates: beads schema, Conductor, notification daemon, init scripts 2026-02-22 18:47:23 +01:00
runit feat: split monolith into anvilsrv daemon and Assist client 2026-02-14 11:30:57 +01:00
systemd Add approval gates: beads schema, Conductor, notification daemon, init scripts 2026-02-22 18:47:23 +01:00
sysvinit Add approval gates: beads schema, Conductor, notification daemon, init scripts 2026-02-22 18:47:23 +01:00
README.md feat: split monolith into anvilsrv daemon and Assist client 2026-02-14 11:30:57 +01:00

README.md

AnviLLM Service Management

This directory contains service management scripts for running anvilsrv as a system service.

Available Init Systems

systemd (Most Common)

For modern Linux distributions using systemd (Ubuntu, Fedora, Arch, Debian, etc.).

See systemd/README.md for installation instructions.

Quick Start (User Service):

mkdir -p ~/.config/systemd/user
cp services/systemd/anvilsrv-user.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now anvilsrv-user.service

runit

For systems using runit (Void Linux, some custom setups).

See runit/README.md for installation instructions.

Quick Start:

sudo cp -r services/runit /etc/sv/anvilsrv
sudo chmod +x /etc/sv/anvilsrv/run /etc/sv/anvilsrv/finish
sudo ln -s /etc/sv/anvilsrv /var/service/anvilsrv

Manual Management (No Init System)

If you don't want to use an init system, you can manage anvilsrv manually:

# Start the server
anvilsrv start

# Check status
anvilsrv status

# Stop the server
anvilsrv stop

You can also add this to your shell startup file (.profile, .bashrc, etc.):

# Auto-start anvilsrv if not running
anvilsrv status 2>/dev/null || anvilsrv start

Choosing an Init System

  • systemd: Use if your distribution uses systemd (most modern Linux distributions)
  • runit: Use if you're on Void Linux or specifically use runit
  • manual: Use if you want full control or are testing/developing

Troubleshooting

Check if anvilsrv is Running

anvilsrv status

Check 9P Socket

# Should show the socket file
ls -la /tmp/ns.$USER/agent

# Test connection
echo "list" | 9p read agent/list

View Logs

systemd:

journalctl --user -u anvilsrv-user -f

runit:

sudo svlogd /var/log/anvilsrv

manual: Check stderr output (anvilsrv logs to stderr/stdout by default).