Gas City Integrations and Providers Catalog¶
Purpose: Catalog external capabilities Gas City consumes without claiming ownership of the external system.
Taxonomy note: integrations/providers are cataloged per capability, not per Mountain — see gc-catalog.md for the Bluefly portfolio taxonomy layered separately on top of Gas City primitives.
Upstream: Connected clients, Config, Command execution trust boundaries — exec: provider scripts (beads/mail/events/session providers) run via direct exec, never sh -c, receiving request data as JSON on stdin/argv rather than shell interpolation.
Integration classes¶
Source / delivery¶
| Integration | Authority |
|---|---|
| GitLab | repositories, merge requests, CI/CD, packages, releases |
| GitLab Components | reusable CI/CD components (blueflyio/gitlab_components) — includes gc-site-bind (atomic city site binding), oracle-deploy, release-flow, artifact-deploy, and 80+ other templates |
gc-site-bind is a confirmed gitlab_components template (templates/gc-site-bind/template.yml, release/v0.1.x). It installs the complete .gc/site.toml atomically.
Work graph / state & Split Storage¶
| Integration | Authority |
|---|---|
Beads (bd) |
durable work graph; bootstrap/recovery primitives |
| Dolt | authoritative relational/versioned backing store for durable work (shared Dolt server) |
SQLite (.gc/store) |
high-churn ephemeral runtime state (sessions, graph caches, messaging queues, orders, nudges) |
Runtime / infrastructure¶
| Integration | Authority |
|---|---|
| Oracle / IaC | deployed infrastructure; Dolt server process/persistence |
| Docker | container runtime |
| agent-docker | container runtime where designated |
| Tailscale | private mesh |
| Cloudflare | public ingress/DNS/access (product tunnels stay separate) |
| Keycloak | identity provider |
| Synology NAS | canonical mirrors/backups where designated — not runtime HQ |
Ottermon / OTel (gascity-otel) |
OpenTelemetry collector, metrics, and trace export |
Agent / protocol¶
| Integration | Authority |
|---|---|
| OSSA | canonical agent contract/specification |
| DUADP | discovery/federation (not work-state mutation) |
| MCP | tool/server capability exposure (mcp/ directory of a Pack) |
| OpenClaw / LiteLLM | gateway/runtime model integration and proxying |
Connected-Client API (extmsg) |
HTTP/SSE external messaging endpoint (/v0/extmsg/clients) for conversational/session turns |
| Global fragments / overlays | Context injection into agent sessions via pack overlays/ and city-level global_fragments |
Model/session providers (5-Axis Configuration)¶
Gas City decomposes agent runtime configuration into five orthogonal axes:
- HARNESS: Driver binary (e.g. builtin:claude, builtin:codex)
- MODEL: Model name (e.g. claude-3-7-sonnet, gemini-2.0-flash)
- UPSTREAM: Endpoint configuration (LiteLLM, OpenClaw, direct API)
- TRANSPORT: Driver protocol (stdio, sse, acp)
- RUNTIME: Execution environment
Declared harnesses/providers in city.toml (blueflyio/blu/blucity, release/v0.1.x):
| Provider | Harness | [agent_defaults] |
|---|---|---|
claude |
builtin:claude |
provider = "claude" (default for all agents) |
codex |
builtin:codex |
— |
Named sessions are declared in pack.toml under [[named_session]] and referenced by the city runtime. They bind a template, mode, and pool to a reusable session name.
| Named session | DECLARED_IN | Mode | Referenced by |
|---|---|---|---|
kingstown-core.blu |
pack.toml ([[named_session]]) |
always |
city runtime |
organization.harbormaster |
pack.toml ([[named_session]]) |
always |
city runtime |
city.tomldeclares providers, upstreams, and[agent_defaults].pack.tomldeclares[[named_session]]entries. These are not the same file — do not collapse declaration and reference.
Rules¶
- Integration does not transfer authority.
- Gas City orchestrates GitLab; it does not become GitLab.
- Gas City consumes Beads; it does not create a second work graph.
- Gas City consumes IaC/deploy outputs; production hand edits must not become source authority.
- Secrets remain referenced through approved secret-management mechanisms and must never be cataloged as values.
- MCP servers and external integrations must declare capability scope and ownership boundary.
- Prefer existing shared components over consumer-local CI glue.
- No personal home paths or workstation absolute paths in this catalog (use
$WORKSPACE_ROOT).