cbcf122422
Haiku ops agent + 3 tools (nbshell expect+PTY admin-shell driver, nbapi read-only HTTP client, nb-substituters guarded cache manager) + 2 skills (nixbuild-settings, nixbuild-usage). Encodes the two-control-surface model and the path-style-substituter-URL gotcha.
36 lines
1.9 KiB
JSON
36 lines
1.9 KiB
JSON
{
|
|
"name": "nixbuild",
|
|
"version": "0.1.0",
|
|
"description": "Operator surface for the nixbuild.net remote build service. A Haiku ops agent fronts three tools and two skills: nbshell drives nixbuild's interactive admin shell non-interactively (expect+PTY, the only way — its HTTP API is read-only and plain ssh stdin yields nothing), nbapi reads the metered account's usage/builds/storage over https://api.nixbuild.net, and nb-substituters manages account substituters with a guard for nixbuild's rejection of path-style cache URLs. Skills encode the settings workflow (substituters, trusted-public-keys, ssh-keys) and the usage/cost workflow. Encodes hard-won facts: builders-use-substitutes uses the REMOTE's own substituters not the client's; Attic's path-style URL is rejected so it must be reached path-less (e.g. via a Caddy root-rewrite); the admin shell needs a real PTY (ssh -T stdin is silent, ssh -tt is rejected, shell-as-ssh-args hits the build-runner channel needing run:write).",
|
|
"author": {
|
|
"name": "oleks",
|
|
"email": "plugins@oleks.space"
|
|
},
|
|
"repository": "https://claude-plugins.oleks.space/plugins/nixbuild.git",
|
|
"license": "MIT",
|
|
"keywords": [
|
|
"nixbuild",
|
|
"nix",
|
|
"remote-builder",
|
|
"binary-cache",
|
|
"substituters",
|
|
"attic",
|
|
"ncps",
|
|
"ops"
|
|
],
|
|
"userConfig": {
|
|
"ssh_host": {
|
|
"type": "string",
|
|
"title": "nixbuild SSH host",
|
|
"description": "SSH host alias for nixbuild.net's admin/build endpoint. The matching IdentityFile must be registered on the account and have admin permissions for settings changes.",
|
|
"default": "eu.nixbuild.net"
|
|
},
|
|
"api_token_pass_entry": {
|
|
"type": "string",
|
|
"title": "API token pass entry",
|
|
"description": "pass(1) store path holding the nixbuild.net HTTP API bearer token (https://api.nixbuild.net). Overridden by the NIXBUILD_API_TOKEN env var if set.",
|
|
"default": "infra/nixbuild/api-token"
|
|
}
|
|
}
|
|
}
|