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