Documentation
¶
Index ¶
Constants ¶
View Source
const Version = "0.4.0"
Version is the airlock release version. The release tag in git is "v"+Version (e.g. "v0.3.4"). Bumped manually before tagging; check-versions.sh enforces that this constant, the docker-compose.yml ghcr tags, and the README install step all agree.
Consumed at the module level so the default AGENT_BUILDER_IMAGE / AGENT_BASE_IMAGE in config tracks airlock's own version — drift between airlock and its matched toolserver/runtime images becomes a build-time error.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package apihelpers carries the low-level HTTP/db utility functions shared by airlock's two HTTP surfaces:
|
Package apihelpers carries the low-level HTTP/db utility functions shared by airlock's two HTTP surfaces: |
|
Package apitest is the integration test harness for the airlock API.
|
Package apitest is the integration test harness for the airlock API. |
|
Package apperr holds the cross-cutting sentinel errors, their detail-wrapper, and the HTTP status mapping.
|
Package apperr holds the cross-cutting sentinel errors, their detail-wrapper, and the HTTP status mapping. |
|
Package attachref resolves S3-backed attachment references (`s3ref:K`) emitted by agentsdk.attachToContext into storage-ready or LLM-ready forms.
|
Package attachref resolves S3-backed attachment references (`s3ref:K`) emitted by agentsdk.attachToContext into storage-ready or LLM-ready forms. |
|
Package audio centralises audio-format conversion so every transcription entry point (bridge voice notes, agent-invoked /api/agent/llm/transcribe) normalises to a format every STT model accepts.
|
Package audio centralises audio-format conversion so every transcription entry point (bridge voice notes, agent-invoked /api/agent/llm/transcribe) normalises to a format every STT model accepts. |
|
lockout
Package lockout implements per-(email, ip) login throttling for the airlock auth path.
|
Package lockout implements per-(email, ip) login throttling for the airlock auth path. |
|
passkey
Package passkey wraps go-webauthn for airlock's human login.
|
Package passkey wraps go-webauthn for airlock's human login. |
|
Package authz is the single authorization layer every surface gates through.
|
Package authz is the single authorization layer every surface gates through. |
|
Package builder implements the agent build and upgrade pipeline.
|
Package builder implements the agent build and upgrade pipeline. |
|
cmd
|
|
|
airlock
command
|
|
|
airlockvet
command
airlockvet runs the project-specific static checks for the airlock codebase.
|
airlockvet runs the project-specific static checks for the airlock codebase. |
|
Package compat verifies that agent containers and this airlock process were built against compatible agentsdk versions.
|
Package compat verifies that agent containers and this airlock process were built against compatible agentsdk versions. |
|
Package container provides container lifecycle management for agents.
|
Package container provides container lifecycle management for agents. |
|
Package convert provides dbq→proto conversion functions shared by api and realtime packages.
|
Package convert provides dbq→proto conversion functions shared by api and realtime packages. |
|
Package crypto provides AES-256-GCM encryption with versioned keys for rotation.
|
Package crypto provides AES-256-GCM encryption with versioned keys for rotation. |
|
dbtest
Package dbtest provisions a database for integration tests.
|
Package dbtest provisions a database for integration tests. |
|
Package execproxy implements the airlock-side SSH execution path for agentsdk.RegisterExecEndpoint.
|
Package execproxy implements the airlock-side SSH execution path for agentsdk.RegisterExecEndpoint. |
|
gen
|
|
|
Package llmledger is the single writer for the llm_usage ledger — the authoritative record of every LLM token/cost charge in Airlock.
|
Package llmledger is the single writer for the llm_usage ledger — the authoritative record of every LLM token/cost charge in Airlock. |
|
Package modelresolve holds the pure capability→model resolution shared by the runtime LLM proxy (agentapi.resolveModel) and the model-config display (service/models).
|
Package modelresolve holds the pure capability→model resolution shared by the runtime LLM proxy (agentapi.resolveModel) and the model-config display (service/models). |
|
Package networkpolicy provides the outbound HTTP transport used for user-configured destinations.
|
Package networkpolicy provides the outbound HTTP transport used for user-configured destinations. |
|
Package oauth provides OAuth 2.0 PKCE support for Airlock credential management.
|
Package oauth provides OAuth 2.0 PKCE support for Airlock credential management. |
|
Package secrets provides a forward-compatible interface for secret storage.
|
Package secrets provides a forward-compatible interface for secret storage. |
|
Package service holds the per-domain business-logic layer that sits between HTTP handlers and the database.
|
Package service holds the per-domain business-logic layer that sits between HTTP handlers and the database. |
|
agents
Package agents owns the agent-lifecycle business logic: create, configure, build/upgrade/rollback, start/stop/suspend, list/get detail, and the per-agent git-remote bindings.
|
Package agents owns the agent-lifecycle business logic: create, configure, build/upgrade/rollback, start/stop/suspend, list/get detail, and the per-agent git-remote bindings. |
|
agentstorage
Package agentstorage owns authorization and canonical resolution for paths supplied through user, run, and MCP surfaces.
|
Package agentstorage owns authorization and canonical resolution for paths supplied through user, run, and MCP surfaces. |
|
bridges
Package bridges owns the chat-platform-integration lifecycle: create / list / update / delete a bridge row plus the corresponding poller goroutine and per-bridge driver state.
|
Package bridges owns the chat-platform-integration lifecycle: create / list / update / delete a bridge row plus the corresponding poller goroutine and per-bridge driver state. |
|
catalog
Package catalog owns the read-only provider/model catalog and the per-provider capability matrix the Settings UI renders.
|
Package catalog owns the read-only provider/model catalog and the per-provider capability matrix the Settings UI renders. |
|
connections
Package connections owns reusable connection and MCP credentials, their need-aware OAuth lifecycle, agent env vars, and aggregate setup status.
|
Package connections owns reusable connection and MCP credentials, their need-aware OAuth lifecycle, agent env vars, and aggregate setup status. |
|
conversations
Package conversations owns the read/list/delete + topic-subscription lifecycle of web conversation threads.
|
Package conversations owns the read/list/delete + topic-subscription lifecycle of web conversation threads. |
|
execendpoints
Package execendpoints owns the operator-facing CRUD + test of per-agent SSH exec endpoints (declared by the agent via RegisterExecEndpoint, configured by the operator here).
|
Package execendpoints owns the operator-facing CRUD + test of per-agent SSH exec endpoints (declared by the agent via RegisterExecEndpoint, configured by the operator here). |
|
gitcredentials
Package gitcredentials owns the per-user git PAT credential surface (list / create / delete).
|
Package gitcredentials owns the per-user git PAT credential surface (list / create / delete). |
|
grants
Package grants owns model entitlements ((provider, model) -> principal).
|
Package grants owns model entitlements ((provider, model) -> principal). |
|
identity
Package identity owns the per-user mapping from airlock users to external chat-platform user IDs (telegram).
|
Package identity owns the per-user mapping from airlock users to external chat-platform user IDs (telegram). |
|
integrations
Package integrations provides authenticated development-time access to an agent's bound connections, exec endpoints, and MCP servers.
|
Package integrations provides authenticated development-time access to an agent's bound connections, exec endpoints, and MCP servers. |
|
managedbots
Package managedbots owns the Telegram Bot API "Managed Bots" create-flow's session correlation: airlock UI button → manager-bot deep link → user creates a bot in Telegram → the manager bridge's poll loop receives ManagedBotCreated → bridge row inserted.
|
Package managedbots owns the Telegram Bot API "Managed Bots" create-flow's session correlation: airlock UI button → manager-bot deep link → user creates a bot in Telegram → the manager bridge's poll loop receives ManagedBotCreated → bridge row inserted. |
|
members
Package members owns add/list/remove of agent_grants rows — the per-agent sharing list.
|
Package members owns add/list/remove of agent_grants rows — the per-agent sharing list. |
|
models
Package models owns the per-agent model configuration: the eight capability overrides (build/exec/stt/vision/tts/image_gen/embedding/ search), each a (provider FK, bare model name) pair, plus the declared model slots and their per-slot assignments.
|
Package models owns the per-agent model configuration: the eight capability overrides (build/exec/stt/vision/tts/image_gen/embedding/ search), each a (provider FK, bare model name) pair, plus the declared model slots and their per-slot assignments. |
|
needs
Package needs owns the agent-need → resource lifecycle for the sluggable resource types (connection, mcp_server, exec_endpoint): instantiating a resource from a need's declared shape, binding an existing resource to a need, and listing the resources that could satisfy a need.
|
Package needs owns the agent-need → resource lifecycle for the sluggable resource types (connection, mcp_server, exec_endpoint): instantiating a resource from a need's declared shape, binding an existing resource to a need, and listing the resources that could satisfy a need. |
|
passkeys
Package passkeys owns the per-user WebAuthn surface: registering, listing, renaming, and deleting the caller's own passkeys, plus setting and removing the caller's password.
|
Package passkeys owns the per-user WebAuthn surface: registering, listing, renaming, and deleting the caller's own passkeys, plus setting and removing the caller's password. |
|
providers
Package providers owns the tenant-wide LLM provider catalog: rows in the providers table, their encrypted API keys, and the lifecycle (create / list / update / delete).
|
Package providers owns the tenant-wide LLM provider catalog: rows in the providers table, their encrypted API keys, and the lifecycle (create / list / update / delete). |
|
resources
Package resources owns the per-user inventory and management surface for reusable connections, MCP servers, and exec endpoints.
|
Package resources owns the per-user inventory and management surface for reusable connections, MCP servers, and exec endpoints. |
|
runs
Package runs owns the list / get / log / cancel operations for the runs table.
|
Package runs owns the list / get / log / cancel operations for the runs table. |
|
settings
Package settings owns the single-row system_settings table: the tenant-wide default (provider FK, bare model name) pairs the agent-create flow prefills from.
|
Package settings owns the single-row system_settings table: the tenant-wide default (provider FK, bare model name) pairs the agent-create flow prefills from. |
|
siblings
Package siblings is the per-agent "address book" of other agents a parent agent's LLM may reach via A2A MCP.
|
Package siblings is the per-agent "address book" of other agents a parent agent's LLM may reach via A2A MCP. |
|
usage
Package usage serves read-only rollups over the llm_usage spend ledger for the admin Usage view: a window summary plus per-agent and per-model breakdowns.
|
Package usage serves read-only rollups over the llm_usage spend ledger for the admin Usage view: a window summary plus per-agent and per-model breakdowns. |
|
users
Package users owns the tenant-wide user directory: reads (List / ListDetail / Get / Lookup) at TenantUserView, self-service display-name updates at TenantSelfProfileUpdate, and admin mutators (Create / UpdateRole / Delete) at TenantUserManage.
|
Package users owns the tenant-wide user directory: reads (List / ListDetail / Get / Lookup) at TenantUserView, self-service display-name updates at TenantSelfProfileUpdate, and admin mutators (Create / UpdateRole / Delete) at TenantUserManage. |
|
Package sysagent is the in-airlock chat agent that lets operators manage agents, bridges, connections, members, A2A, runs, and (later) other tenant resources through tool calls.
|
Package sysagent is the in-airlock chat agent that lets operators manage agents, bridges, connections, members, A2A, runs, and (later) other tenant resources through tool calls. |
|
agentview
Package agentview projects the public API protos down to a compact, LLM-friendly shape for the system agent's tool outputs.
|
Package agentview projects the public API protos down to a compact, LLM-friendly shape for the system agent's tool outputs. |
|
Package trigger provides services that trigger agent containers in response to external events: webhooks, cron schedules, and channel messages.
|
Package trigger provides services that trigger agent containers in response to external events: webhooks, cron schedules, and channel messages. |
|
tgwebapp
Package tgwebapp verifies Telegram Web App initData payloads.
|
Package tgwebapp verifies Telegram Web App initData payloads. |
Click to show internal directories.
Click to hide internal directories.