Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/nix/host-modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 1b4e764e5c review classifier: run on ACP when the swarm settings choose it
The swarm settings gain `runtime` (`api-key`, the default, or `acp`) and
an `acp` provider record: an https base URL, the provider's model, and
its prices per million tokens. A PUT now changes only the fields its
body names, so the settings form that sends model, effort and limit
leaves the runtime alone; `null` clears `effort` or `acp`. The body stays
strict, and the stored document keeps #5192's lenient read.

The controller sends the runtime in each run request. On `acp` the
classifier runs one prompt on a new `opencode acp` session per
classification through hive-runtime's AcpRuntime, in a scratch
directory, with a config rendered from the settings. opencode runs
`read` and other tools without asking, so OPENCODE_PERMISSION
{"*":"deny"} takes every tool away from the model, and a deny-all policy
refuses any request on top. The title call, which resends the prompt,
is turned off. The deadline cancels the turn, and a turn that does not
end within 15s of that is dropped, which also covers an agent stuck
before its prompt. The answer is the final assistant text, as ACP has
no result event.

The provider key is read per run from
swarm/services/review-classifier/acp-provider, which the bao UI's
admins login may create and update, and reaches opencode through
AcpRuntime::with_provider_key and the trampoline's allowlist.

Each ACP classification's cost is computed from the configured prices
and the reported tokens, and added to
hyperhive.review_classifier.cost.usage labelled repo, pr, model and
currency.

Part of #5096
2026-10-14 10:14:36 +02:00
..
hive-c0re swarm-logs: authenticate as the agent with its own queue secret 2026-10-13 08:38:05 +02:00
hive-forge swarm-otel: declare forgejo's published scrape target on every host 2026-10-13 22:15:13 +02:00
hive-gateway swarm CA: describe the store's pki root as the only anchor in docs and comments 2026-10-05 21:17:10 +02:00
lib swarm-bao-agent-pki: decide openbao's restart on the shared locale-independent compare 2026-10-13 17:00:56 +02:00
swarm-grafana/dashboards swarm-grafana: drop stale windows from the subscription usage line, match sibling panel interval 2026-10-07 23:54:53 +02:00
bao-bootstrap-policy.hcl bao: disable the unused approle auth method, declaratively 2026-09-28 22:58:36 +02:00
default.nix swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00
deploy.nix swarm-builder: scope the forge token to the forge, one build at a time, opt-in 2026-10-14 03:30:46 +02:00
glue-bao-readers-policy-order.nix grafana: mint the admin password into the store and apply it on every start 2026-10-12 15:16:53 +02:00
glue-bao-readers-store-order.nix glue: consumers' start-after-bao ordering moves into one glue module 2026-10-13 22:05:16 +02:00
glue-bao-tls.nix swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00
glue-bao-ui-oidc-client.nix bao: OIDC login to the browser UI via authelia, as a metadata-only viewer 2026-09-28 19:56:38 +02:00
glue-builder-oidc-client.nix swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00
glue-controller-bao-identity.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-controller-oidc-client.nix swarm: OIDC clients registered wherever authelia runs; nats + matrix secrets from bao 2026-10-05 09:58:02 +02:00
glue-forge-controller.nix glue: forge's controller-dependent settings move out of the forge module 2026-10-13 22:14:28 +02:00
glue-forge-oidc-client.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-grafana-oidc-client.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-hive-otel-authelia.nix glue: hive-otel's ordering after authelia moves out of the otel module 2026-10-13 22:04:52 +02:00
glue-hive-tls-bao-identity.nix hive-tls: the gateway leaf uses the services-issuer identity, not a hive's 2026-10-06 14:54:07 +02:00
glue-logs-auth-bao-identity.nix swarm-logs-auth: check agent tokens on the log store's query route 2026-10-13 08:38:05 +02:00
glue-matrix-ctl-bao-identity.nix swarm-nats, matrix: the queue's and matrix-ctl's store identity paths are their own, not the hive's 2026-10-06 12:04:48 +02:00
glue-matrix-oidc-client.nix swarm: OIDC clients registered wherever authelia runs; nats + matrix secrets from bao 2026-10-05 09:58:02 +02:00
glue-nats-auth-bao-identity.nix swarm-nats: the auth responder's store identity path is its own, not the hive's 2026-10-06 10:04:30 +02:00
glue-nats-bao-identity.nix swarm-nats, matrix: the queue's and matrix-ctl's store identity paths are their own, not the hive's 2026-10-06 12:04:48 +02:00
glue-nats-oidc-client.nix swarm: OIDC clients registered wherever authelia runs; nats + matrix secrets from bao 2026-10-05 09:58:02 +02:00
glue-otel-scrape-targets.nix glue: otel scrape targets for authelia, grafana and nats move out of the services 2026-10-14 01:40:40 +02:00
glue-queue-agent-credential.nix swarm-bao-pki: sign every other hive's three store leaves 2026-10-12 21:41:28 +02:00
glue-review-classifier-oidc-client.nix nix: run the review classifier in a container of its own when a host enables it 2026-10-12 13:11:21 +02:00
glue-secret-publisher-authelia.nix glue: the secret publisher's authelia-dependent settings move out of the publisher module 2026-10-14 01:52:53 +02:00
glue-secret-publisher-bao-identity.nix nix: gate hive-c0re on deploy.hive-controller.enable, drop hyperhive.enable 2026-09-26 01:19:49 +02:00
glue-swarm-bao-otel-oidc-client.nix ops: update option pointers after grafana/bao split 2026-10-01 09:53:04 +02:00
glue-swarm-otel-oidc-client.nix ops: update option pointers after otel split 2026-10-01 13:00:40 +02:00
hive-matrix-service.nix swarm-controller: revoke matrix admin from former operators 2026-10-05 12:39:02 +02:00
hive-matrix.nix glue: consumers' start-after-bao ordering moves into one glue module 2026-10-13 22:05:16 +02:00
hive-network.nix nix: run swarm-ui wherever swarm-controller runs 2026-10-13 20:05:19 +02:00
hive-priv.nix swarm-ci-runner: run the forge CI runner as a swarm service 2026-10-05 13:55:37 +02:00
hive-tls.nix hive-tls: the root fetch presents the hive identity, as on main 2026-10-06 14:54:07 +02:00
host-ca-removed.nix hive CA: catch a deleted CA file however its path is spelled 2026-10-05 21:17:10 +02:00
hyperhive.nix nix: finish the current-behaviour comment sweep in touched files 2026-10-05 09:58:57 +02:00
local-defaults.nix swarm-nats: take the callout issuer and user keys from the store 2026-10-06 14:53:33 +02:00
nats-callout-removed.nix nats-callout-removed: remove the container's OIDC secret copy here, ungated 2026-10-06 15:25:29 +02:00
otel.nix hive otel: keep file_storage defined when the collector authenticates upstream 2026-10-14 10:13:58 +02:00
stylix-theme.nix swarm-ui: apply the operator's stylix theme, same as the dashboard already does 2026-08-24 14:28:25 +02:00
swarm-authelia-service.nix swarmctl: log in with the operator's own SSO account and reach the controller through the swarm domain 2026-10-12 01:25:58 +02:00
swarm-authelia.nix glue: otel scrape targets for authelia, grafana and nats move out of the services 2026-10-14 01:40:40 +02:00
swarm-bao-service.nix nix: split swarm-bao into service and deploy-mode files 2026-10-01 09:37:36 +02:00
swarm-bao.nix review classifier: run on ACP when the swarm settings choose it 2026-10-14 10:14:36 +02:00
swarm-builder.nix swarm-builder: scope the forge token to the forge, one build at a time, opt-in 2026-10-14 03:30:46 +02:00
swarm-ci-runner.nix glue: consumers' start-after-bao ordering moves into one glue module 2026-10-13 22:05:16 +02:00
swarm-controller.nix nix: run swarm-ui wherever swarm-controller runs 2026-10-13 20:05:19 +02:00
swarm-grafana-service.nix grafana: the published vhost refuses /metrics 2026-10-13 21:42:29 +02:00
swarm-grafana.nix glue: otel scrape targets for authelia, grafana and nats move out of the services 2026-10-14 01:40:40 +02:00
swarm-nats-service.nix nix: finish the "moved to" comment sweep 2026-10-05 09:59:02 +02:00
swarm-nats.nix swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00
swarm-otel-service.nix glue: otel scrape targets for authelia, grafana and nats move out of the services 2026-10-14 01:40:40 +02:00
swarm-otel.nix glue: consumers' start-after-bao ordering moves into one glue module 2026-10-13 22:05:16 +02:00
swarm-peers-removed.nix swarm CA: retire the host-held root CA, the store holds the only anchor 2026-10-05 21:17:10 +02:00
swarm-required-services.nix swarm-builder: scope the forge token to the forge, one build at a time, opt-in 2026-10-14 03:30:46 +02:00
swarm-review-classifier.nix review classifier: run on ACP when the swarm settings choose it 2026-10-14 10:14:36 +02:00
swarm-secret-publisher.nix swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00
swarm-snapshot-store.nix deploy: move the wireguard mesh out of the namespace hives read 2026-09-07 14:24:52 +02:00
swarm-ui.nix nix: run swarm-ui wherever swarm-controller runs 2026-10-13 20:05:19 +02:00
swarm-victorialogs-service.nix nix: split swarm-victorialogs into service and deploy-mode files 2026-10-01 10:03:55 +02:00
swarm-victorialogs.nix swarm-victorialogs: size the agent-auth limit for a host booting its agents together 2026-10-14 01:54:54 +02:00
swarm-victoriametrics-service.nix nix: follow-ups from the service/deploy split 2026-10-05 19:12:46 +02:00
swarm-victoriametrics.nix swarm-victoriametrics: forward only the store's read API 2026-10-13 08:13:37 +02:00
swarm-wireguard.nix swarm options: no swarm.* value depends on a deploy option or this host's hive 2026-10-04 18:13:47 +02:00
swarm.nix swarm-builder: build each agent config PR head and post a commit status 2026-10-14 03:30:46 +02:00