Skip to main content
Schema for city.toml — the deployment file for a Gas City instance. Pack definitions live in pack.toml and conventional pack directories such as agents/, formulas/, orders/, and commands/. Use [imports.] for pack composition; legacy includes and [[agent]] fields remain visible for migration compatibility. Legacy [packs.] entries are still accepted by the runtime for migration/fetch compatibility but are intentionally omitted from this public schema.
Pack format source of truth: Public pack format and loader semantics are specified in Gas City Pack Specification.
Auto-generated — do not edit. Run go run ./cmd/genschema to regenerate.

City

City is the top-level configuration for a Gas City instance.

ACPSessionConfig

ACPSessionConfig holds settings for the ACP session provider.

APIConfig

APIConfig configures the HTTP API server.

Agent

Agent defines a configured agent in the city.

AgentDefaults

AgentDefaults provides agent defaults declared via [agent_defaults] in city.toml or pack.toml.

AgentOverride

AgentOverride modifies a pack-stamped agent for a specific rig.

AgentPatch

AgentPatch modifies existing agents identified by rig scope and Name.

BeadPolicyConfig

BeadPolicyConfig holds storage and retention defaults for a named bead use.

BeadsConfig

BeadsConfig holds bead store settings.

ChatSessionsConfig

ChatSessionsConfig configures chat session behavior.

ContextAdvisory

ContextAdvisory configures context-pressure guidance.

ContextAdvisoryTier

ContextAdvisoryTier is one threshold and message in a context-pressure advisory.

ConvergenceConfig

ConvergenceConfig holds convergence loop limits.

DaemonConfig

DaemonConfig holds controller daemon settings.

DoctorConfig

DoctorConfig holds settings for the gc doctor surface.

DoltConfig

DoltConfig holds optional dolt server overrides.

DoltMaintenance

DoltMaintenance configures the periodic Dolt store maintenance loop.

EventsConfig

EventsConfig holds events provider settings.

EventsRotationConfig

EventsRotationConfig holds file-backed events rotation settings.

ExtMsgConfig

ExtMsgConfig configures the external-messaging fabric.

ExtMsgDefaultRoute

ExtMsgDefaultRoute routes unbound inbound conversations from one external messaging provider (and optionally a single adapter account) to a configured agent.

FormulasConfig

FormulasConfig is the legacy [formulas] table with no supported fields: authored [formulas].dir is rejected at config load (use the well-known formulas/ directory instead), and gc doctor flags any declaration as a fixable v2-formulas-dir error.

GitHubConfig

GitHubConfig groups GitHub-facing repository monitor declarations.

GitHubPRMonitor

GitHubPRMonitor declares how one repository/base-branch set is monitored and where durable repair work should be routed when readiness fails.

GitHubPRMonitorPatch

GitHubPRMonitorPatch modifies an existing GitHub PR readiness monitor by name.

Import

Import defines a named import of another pack.

K8sConfig

K8sConfig holds native K8s session provider settings.

LocalDoctorCheck

LocalDoctorCheck is a city-local doctor check declared inline in city.toml via [[doctor.check]].

MailConfig

MailConfig holds mail provider settings.

MaintenanceConfig

MaintenanceConfig groups periodic store-maintenance subsections.

ModelPricing

ModelPricing is a complete pricing entry for a (Provider, Model) pair.

NamedSession

NamedSession defines a canonical persistent session backed by an agent template.

NamedSessionPatch

NamedSessionPatch modifies an existing named session identified by canonical name or, for compatibility, by an unambiguous template.

OptionChoice

OptionChoice is one allowed value for a “select” option.

OrderOverride

OrderOverride modifies a scanned order’s scheduling fields and exec env.

OrdersConfig

OrdersConfig holds order settings for orders discovered from flat TOML files (one file per order) in the orders/ directory beside each formula layer (packs, the city directory, and rig-local layers).

PackDefaults

PackDefaults holds [defaults] entries used to seed generated rig configuration.

PackRigDefaults

PackRigDefaults holds the [defaults.rig] block — defaults applied to rigs created from this pack.

Patches

Patches holds all patch blocks from composition.

PoolOverride

PoolOverride modifies legacy [pool] fields that map to session scaling.

ProviderOption

ProviderOption declares a single configurable option for a provider.

ProviderPatch

ProviderPatch modifies an existing provider identified by Name.

ProviderSpec

ProviderSpec defines a named provider’s startup parameters.

Rig

Rig defines an external project registered in the city.

RigPatch

RigPatch modifies an existing rig identified by Name.

Service

Service declares a workspace-owned HTTP service mounted under /svc/.

ServiceProcessConfig

ServiceProcessConfig configures a controller-supervised local process that is reverse-proxied under /svc/.

ServicePublicationConfig

ServicePublicationConfig declares platform-neutral publication intent.

ServiceWorkflowConfig

ServiceWorkflowConfig configures controller-owned workflow services.

SessionConfig

SessionConfig holds session provider settings.

SessionSleepConfig

SessionSleepConfig configures default idle sleep policies by session class.

StorageBindingConfig

StorageBindingConfig selects one compiled storage provider and its typed, secret-free configuration; the SQLite provider accepts path (default .gc/store), while every other provider accepts an opaque config_ref that provider resolves.

StorageClasses

StorageClasses is the closed set of semantic storage assignments; when [storage] is authored, all six fields are required after fragment layering, while omission assigns every class to work.

StorageConfig

StorageConfig assigns each semantic storage class to a named binding and defines every nonreserved binding used by those assignments; omitting [storage] keeps every class on the reserved work binding.

Tier

Tier defines per-token-type rates in USD per 1 million tokens.

UpstreamEnvBinding

UpstreamEnvBinding is a harness’s serving-env contract: the env-var NAMES this CLI reads for the model-serving endpoint and credential.

UpstreamSpec

UpstreamSpec is a named model-serving endpoint preset (Phase C — the Upstream axis: WHO serves+resolves the model).

UsageConfig

UsageConfig holds usage-fact sink settings.

Webhook

Webhook declares a city- or rig-scoped inbound HTTP receiver mounted under /v0/city//hook/.

WebhookAllowPublic

WebhookAllowPublic is one operator-authored public-exposure grant.

WebhookJWTPolicy

WebhookJWTPolicy is one operator-owned jwt-jwks trust anchor.

WebhookPolicyConfig

WebhookPolicyConfig holds city-level webhook governance authored in the root city.toml under [webhooks].

WebhookRateLimitConfig

WebhookRateLimitConfig is the operator-owned rate-limit policy authored under the root city.toml [webhooks].rate_limit table.

WebhookRateLimitOverride

WebhookRateLimitOverride is one operator-authored per-webhook rate-limit pin.

WebhookRule

WebhookRule maps one verified provider event to a dispatch target.

WebhookVerify

WebhookVerify declares how an inbound delivery is authenticated.

Workspace

Workspace holds city-level metadata and optional defaults that apply to all agents unless overridden per-agent.
Last modified on October 10, 2026