Skip to content

omnia-arena-builder chart

Enterprise

omnia-arena-builder is the Helm chart that installs the Arena builder agent into one workspace namespace. It is an Omnia module at blueprint tier and requires Omnia >=0.9.0. To install it, see Install the Arena builder.

The chart is published at the Omnia release’s version to oci://ghcr.io/altairalabs/charts/omnia-arena-builder and to the https://charts.altairalabs.ai Helm repository.

Every object goes into the release namespace and carries the name agent.name (default arena-builder) and the label omnia.altairalabs.ai/role: arena-builder.

KindContents
SandboxClassThe omnia-promptarena-sandbox image, pinned by digest, with one project mount (ReadWrite) and no egress. The class is never trusted.
ToolRegistryA lazy sandbox named sandbox of class SandboxClass/<agent.name>. An mcp handler on it, filtered to allowedTools. The client tools ask_questions and update_spec. A platform handler for discovery when discovery.enabled, and one for arena when arena.enabled.
ConfigMap and PromptPackThe builder’s system prompt and tool definitions as a configmap-source pack.
AgentRuntimeOne websocket facade with dataPlane: false and managementPlane: true, and spec.sandbox enabled with idleTimeout, maxConcurrent and mountReleaseGrace.
ToolPolicyA permit for every tool in the builder’s registry. Omitted when toolPolicy.enabled is false.

Every object except the ToolPolicy carries the label omnia.altairalabs.ai/hidden: "true", so the builder does not appear in agent lists or pickers. The dashboard finds it by name. The ToolPolicy stays visible in the workspace’s policy list.

The chart never creates a Provider, Workspace, Secret, PersistentVolumeClaim or ClusterSandboxClass.

The discovery handler gives the builder the tools catalog_overview, catalog_search and catalog_get. The arena handler gives it arena_check_project, arena_start_run and arena_get_run. Both need the operator to run with --platform-api-url. Without it the operator skips the handler and the builder runs without those tools.

ValueDefaultDescription
provider.namenone (required)Name of an existing Provider in the release namespace
agent.namearena-builderName of the AgentRuntime and of every other object the chart renders
agent.maxToolRounds200Tool-call rounds the builder may take in one turn before PromptKit stops it (the pack’s tool_policy.max_rounds)
agent.clientToolTimeout15mHow long the facade waits for the browser to answer ask_questions or update_spec in one turn. Empty keeps the facade default of 60s
agent.systemPromptemptyReplaces the builder’s system prompt. Empty uses the prompt the chart ships. The render fails if the prompt contains {{, because the pack’s template engine reads it as a variable
agent.annotations{}Extra annotations on the builder’s AgentRuntime
agent.serviceAccountNameemptyspec.podOverrides.serviceAccountName of the builder’s pod. Empty inherits the Workspace’s spec.runtime.serviceAccountName, else the operator’s per-agent <agent.name>-facade
agent.runtime{}Passed through as the AgentRuntime’s spec.runtime: volumes, volumeMounts, extraEnv, resources, nodeSelector, tolerations, affinity and replicas
sandbox.image.repositoryghcr.io/altairalabs/omnia-promptarena-sandboxSandbox image repository
sandbox.image.digestthe digest of the released imagesha256: followed by 64 hex characters. The chart in the repository leaves it empty and the install fails without it; each release stamps the digest of its own image into the published chart
sandbox.image.tagthe Omnia version in a published chartWritten into the reference beside the digest (repo:tag@digest) for display. The digest decides what is pulled
sandbox.args["-addr=:8080", "-workspace=/workspace"]Arguments of the sandbox container
sandbox.envHOME, GOPATH, GOCACHE and GOMODCACHE under /sandbox-cacheEnvironment of the sandbox container
sandbox.portsmcp on 8080Class ports
sandbox.filesystem/workspace for the project, a 4Gi scratch volume at /sandbox-cacheThe SandboxClass filesystem
sandbox.handlerPortmcpThe class port the ToolRegistry’s mcp handler dials
sandbox.handlerPath/sseThe MCP path on that port
sandbox.resourcesrequests 100m and 128Mi, limits 2 and 2GiSandbox container resources. limits.cpu and limits.memory are required. The memory request is what each builder session reserves on a node
sandbox.runtimeClassNameemptyRuntimeClass of the sandbox pod, such as gVisor or Kata. Empty uses the cluster default
sandbox.nodeSelector{}Node selector of the sandbox pod
sandbox.tolerations[]Tolerations of the sandbox pod
sandbox.idleTimeout30mHow long a bound sandbox may sit unused before the reaper deletes it
sandbox.mountReleaseGrace5mHow long a builder sandbox outlives its conversation (spec.sandbox.mountReleaseGrace). A person who comes back within it finds the same sandbox; after it, a new one on the same project files
sandbox.maxConcurrent4How many builder sandboxes may run at once across every user of the workspace (spec.sandbox.maxConcurrent). A first tool call past it waits for a slot. A session keeps its slot for sandbox.mountReleaseGrace after its conversation ends: size it as users active at once plus users who left within the last mountReleaseGrace
toolCallTimeout5mTimeout of one sandbox tool call, which can include a claim, an image pull and a pod start
allowedToolsRead, Write, Edit, BashSandbox tools the builder may call. Each needs a definition in the chart’s files/sandbox-tools.json, or the render fails
toolPolicy.enabledtrueRender the ToolPolicy. The policy broker refuses every tool call that no ToolPolicy permits, so set false only when you manage a ToolPolicy that selects the builder’s registry
discovery.enabledtrueAdd the discovery platform handler and its three tools
arena.enabledtrueAdd the arena platform handler and its three tools

The image is built from Dockerfile.promptarena-sandbox and published as ghcr.io/altairalabs/omnia-promptarena-sandbox with every Omnia release. It contains:

PathContents
/usr/local/bin/promptarena, /usr/local/bin/packcThe PromptArena and packc CLIs, on the codegen-sandbox base
/opt/promptarena/briefThe PromptArena authoring brief
/schemas/v1alpha1The CLI’s JSON schemas. PROMPTKIT_SCHEMA_SOURCE=local makes promptarena validate and promptarena run read them, so neither needs the network
gitConfigured from images/promptarena-sandbox/

The git configuration sets:

  • a commit-msg hook that adds Co-authored-by: Omnia builder <builder@omnia.invalid> to every commit;
  • /workspace as the only safe directory;
  • an empty credential helper and no remote.

The sandbox has no git credential and its egress is unchanged, so it cannot push.