Files
2026-09-15 15:24:03 -04:00

57 lines
2.4 KiB
TOML

# =====================================================================
# The machines the VM sub-agent can be given.
#
# ONE REGISTRY, READ BY FOUR THINGS: the maintenance app (which row is
# which, and what it is called), vmd (which base image and which saved
# machine), the sub-agent (how its own machine is described to it), and
# `vm_agent`'s own `os` parameter.
#
# `id` IS IDENTITY AND IS NOT A LABEL.
#
# It names the base disk (/var/lib/owuivm/<id>.qcow2), the firmware
# variables beside it, the systemd unit instance (owuivm-maint@<id>),
# the saved-machine directory, and the value the assistant passes as
# `os`. It also appears in regex allowlists inside the privileged launch
# scripts, which is the whole reason those scripts can refuse a path.
# Changing an id does not rename a machine, it describes one that does
# not exist. Leave it alone.
#
# `name` is the label, and is yours. It is what the maintenance app
# shows and what a session report calls the machine. Rename it to
# whatever you like, from the app or by editing this file; nothing
# depends on its value.
#
# `iso` is the glob that picks installation media out of
# /var/lib/owuivm/iso. It is deliberately NOT `*.iso`: with an Ubuntu
# disc sitting next to a Windows one, the newest file in that directory
# is how a Windows install quietly boots the Ubuntu installer.
#
# `shell`, `project` and `example` are prompt text. They are substituted
# into {shell}, {project} and {example} in configs/agent/tools.toml, and
# they are the difference between one prompt for both machines and an
# agent that has to work out which half applies to it. Measured: a
# Windows session wrote itself the task "check /mnt/project
# accessibility" because a shared prompt said that was where work
# survives and nothing told it otherwise.
# =====================================================================
[[machine]]
id = "ubuntu"
name = "Ubuntu"
iso = "ubuntu*.iso"
shell = "a root bash login shell - you are already root"
project = "/mnt/project"
example = "'src/main.py'"
[[machine]]
id = "windows"
name = "Windows"
# Not `*.iso`, and not `windows*.iso` either - the media is normally
# named Win11_..., so the pattern has to catch both spellings.
iso = "[Ww]in*.iso"
shell = "an elevated PowerShell 5.1 - already administrator, and note it has no `&&` or `||`, so chain with `;` or use separate calls"
project = "Z:\\"
example = "'src\\main.ps1'"