Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
migrate
command
SPDX-License-Identifier: AGPL-3.0-only
|
SPDX-License-Identifier: AGPL-3.0-only |
|
service
command
SPDX-License-Identifier: AGPL-3.0-only
|
SPDX-License-Identifier: AGPL-3.0-only |
|
workbenchimage
command
Command workbenchimage prints the content-hash tag the backend's EnsureImage (internal/clients/workbenchdocker/image.go) will look for on the Docker daemon, so a local `docker build` can be tagged to match it exactly — see `make workbench-image`.
|
Command workbenchimage prints the content-hash tag the backend's EnsureImage (internal/clients/workbenchdocker/image.go) will look for on the Docker daemon, so a local `docker build` can be tagged to match it exactly — see `make workbench-image`. |
|
deploy
|
|
|
workbench
Package workbenchimage embeds the workbench Docker image's build context (Dockerfile, entrypoint.sh, tmux.conf, and bridge.tar — a packaged copy of the bridge/ Go module tree, see ./gen_bridge_tar.go) so it can be built directly through the Docker Engine API at runtime — see internal/clients/workbenchdocker/image.go — instead of requiring a manual `docker build` step on every docker host.
|
Package workbenchimage embeds the workbench Docker image's build context (Dockerfile, entrypoint.sh, tmux.conf, and bridge.tar — a packaged copy of the bridge/ Go module tree, see ./gen_bridge_tar.go) so it can be built directly through the Docker Engine API at runtime — see internal/clients/workbenchdocker/image.go — instead of requiring a manual `docker build` step on every docker host. |
|
internal
|
|
|
api/server/artel_api
Package artel_api is a reverse proxy.
|
Package artel_api is a reverse proxy. |
|
chatprotocol
Package chatprotocol defines the ChatEvent wire protocol exchanged over the workbench chat WebSocket between the in-container bridge process and any consumer (web frontend, Telegram bot relay).
|
Package chatprotocol defines the ChatEvent wire protocol exchanged over the workbench chat WebSocket between the in-container bridge process and any consumer (web frontend, Telegram bot relay). |
|
clients/anthropic
Package anthropic is a thin wrapper around the official Anthropic SDK (github.com/anthropics/anthropic-sdk-go), used to validate a user-supplied API key (via ListModels, a zero-token metadata call) and to run single-turn, non-streaming completions (via Complete) for the tract engine's "Call LLM" step.
|
Package anthropic is a thin wrapper around the official Anthropic SDK (github.com/anthropics/anthropic-sdk-go), used to validate a user-supplied API key (via ListModels, a zero-token metadata call) and to run single-turn, non-streaming completions (via Complete) for the tract engine's "Call LLM" step. |
|
clients/openai
Package openai is a thin wrapper around the official OpenAI SDK (github.com/openai/openai-go), used to validate a user-supplied API key (via ListModels, a zero-token metadata call) and to run single-turn, non-streaming completions (via Complete) for the tract engine's "Call LLM" step.
|
Package openai is a thin wrapper around the official OpenAI SDK (github.com/openai/openai-go), used to validate a user-supplied API key (via ListModels, a zero-token metadata call) and to run single-turn, non-streaming completions (via Complete) for the tract engine's "Call LLM" step. |
|
clients/openrouter
Package openrouter is a thin wrapper around OpenRouter's own account-management REST API (https://openrouter.ai/api/v1), used to fetch the caller's key usage/limit/balance info (GetKeyInfo).
|
Package openrouter is a thin wrapper around OpenRouter's own account-management REST API (https://openrouter.ai/api/v1), used to fetch the caller's key usage/limit/balance info (GetKeyInfo). |
|
clients/postgres
Code generated by RedSock CLI.
|
Code generated by RedSock CLI. |
|
clients/vaultbucket
Package vaultbucket resolves the storage.BinaryStore backing a vault's non-markdown content — shared by the MCP vault-tool executor and the notes service's folder export/import/delete methods so the S3-vs-CouchDB-adapter decision lives in one place.
|
Package vaultbucket resolves the storage.BinaryStore backing a vault's non-markdown content — shared by the MCP vault-tool executor and the notes service's folder export/import/delete methods so the S3-vs-CouchDB-adapter decision lives in one place. |
|
clients/vaultpg
Package vaultpg is the client for per-vault Postgres databases: building connection strings for a domain.PostgresInstance/vault database+role pair, running the admin-side DDL that provisions a vault's role+database (AdminClient), and caching the tenant-side *sql.DB connections the MCP executor queries through (ConnPool).
|
Package vaultpg is the client for per-vault Postgres databases: building connection strings for a domain.PostgresInstance/vault database+role pair, running the admin-side DDL that provisions a vault's role+database (AdminClient), and caching the tenant-side *sql.DB connections the MCP executor queries through (ConnPool). |
|
clients/workbenchdocker
Package workbenchdocker is a thin typed wrapper around the Docker Engine SDK (github.com/docker/docker/client), used to create/start/stop/remove the containers and volumes that back a single workbench (a per-user sandbox running two independent ways to drive the `claude` CLI: the in-container chat bridge, deploy/workbench/bridge, which drives it one turn at a time, and a tmux session (see tmux_tabs.go) exposing a real interactive `claude` TUI per tab through ttyd).
|
Package workbenchdocker is a thin typed wrapper around the Docker Engine SDK (github.com/docker/docker/client), used to create/start/stop/remove the containers and volumes that back a single workbench (a per-user sandbox running two independent ways to drive the `claude` CLI: the in-container chat bridge, deploy/workbench/bridge, which drives it one turn at a time, and a tmux session (see tmux_tabs.go) exposing a real interactive `claude` TUI per tab through ttyd). |
|
config
Package config loads and parses the application's runtime configuration.
|
Package config loads and parses the application's runtime configuration. |
|
middleware/requesthost
Package requesthost threads the public-facing host of an inbound HTTP request from the transport layer into the service layer, mirroring the user_context package's pattern.
|
Package requesthost threads the public-facing host of an inbound HTTP request from the transport layer into the service layer, mirroring the user_context package's pattern. |
|
repository/pg/repos/dockerhosts
Package dockerhosts is the pure-DB layer for the admin-managed pool of Docker daemons backing per-vault workbench containers.
|
Package dockerhosts is the pure-DB layer for the admin-managed pool of Docker daemons backing per-vault workbench containers. |
|
repository/pg/repos/triggerpresets
Package triggerpresets is the pure-DB read layer for the trigger_presets catalog table (see migration 038_trigger_presets_and_links.sql) — the webhook trigger presets shown in the "Add trigger" picker (gitlab_push, generic, ...), replacing the hardcoded Go slice that used to live in internal/service/v1/tract.
|
Package triggerpresets is the pure-DB read layer for the trigger_presets catalog table (see migration 038_trigger_presets_and_links.sql) — the webhook trigger presets shown in the "Add trigger" picker (gitlab_push, generic, ...), replacing the hardcoded Go slice that used to live in internal/service/v1/tract. |
|
service/v1/adminsettings
Package adminsettings implements AdminSystemSettingsService — an administrator's view over the same single-row global instance configuration the first-run setup wizard (internal/service/v1/setupwizard) edits pre-setup, exposed post-setup for an admin to revisit.
|
Package adminsettings implements AdminSystemSettingsService — an administrator's view over the same single-row global instance configuration the first-run setup wizard (internal/service/v1/setupwizard) edits pre-setup, exposed post-setup for an admin to revisit. |
|
service/v1/dockerhosts
Package dockerhosts implements service.DockerHostService: admin CRUD over the pool of Docker daemons that back per-vault workbench containers.
|
Package dockerhosts implements service.DockerHostService: admin CRUD over the pool of Docker daemons that back per-vault workbench containers. |
|
service/v1/postgresinstances
Package postgresinstances is the admin CRUD service for the shared pool of Postgres servers (admin pool or BYOK) that per-vault databases are provisioned on — mirrors internal/service/v1/s3instances.
|
Package postgresinstances is the admin CRUD service for the shared pool of Postgres servers (admin pool or BYOK) that per-vault databases are provisioned on — mirrors internal/service/v1/s3instances. |
|
service/v1/public_docs
Package public_docs implements the anonymous, auth-exempt read surface backing PublicDocsAPI (see internal/api/server/artel_api/public_docs_grpc.pb.go's doc comment and docs/architecture.md).
|
Package public_docs implements the anonymous, auth-exempt read surface backing PublicDocsAPI (see internal/api/server/artel_api/public_docs_grpc.pb.go's doc comment and docs/architecture.md). |
|
service/v1/public_docs/githubdocs
Package githubdocs serves the built-in "Artel Quick Start" docs tree straight from this repo's own public GitHub remote (docs/public/ on the master branch), so a fresh Artel instance has something real to point an anonymous /docs visitor at before any CouchDB vault has been published.
|
Package githubdocs serves the built-in "Artel Quick Start" docs tree straight from this repo's own public GitHub remote (docs/public/ on the master branch), so a fresh Artel instance has something real to point an anonymous /docs visitor at before any CouchDB vault has been published. |
|
service/v1/setupwizard
Package setupwizard implements the first-run setup wizard — see internal/service/interfaces.go's SetupWizardService doc comment for the flow this drives.
|
Package setupwizard implements the first-run setup wizard — see internal/service/interfaces.go's SetupWizardService doc comment for the flow this drives. |
|
service/v1/simplechat
Package simplechat implements service.SimpleChatService: the in-process, container-free "Simple Chat" agent.
|
Package simplechat implements service.SimpleChatService: the in-process, container-free "Simple Chat" agent. |
|
service/v1/tasktracker
Package tasktracker backs the TaskTrackersAPI wire contract (unchanged) on top of the generic external_connections + MoM path instead of a dedicated task_trackers table/client.
|
Package tasktracker backs the TaskTrackersAPI wire contract (unchanged) on top of the generic external_connections + MoM path instead of a dedicated task_trackers table/client. |
|
service/v1/tract/script
Package script is the pluggable execution backend for Tract "script" steps.
|
Package script is the pluggable execution backend for Tract "script" steps. |
|
service/v1/workbench
Package workbench implements service.WorkbenchService: it manages the per-(vault, user) Docker container backing a vault member's cloud workbench — every vault member gets their own workbench, tracked through domain.WorkbenchStatus's state machine, provisioned via internal/clients/workbenchdocker's Docker client.
|
Package workbench implements service.WorkbenchService: it manages the per-(vault, user) Docker container backing a vault member's cloud workbench — every vault member gets their own workbench, tracked through domain.WorkbenchStatus's state machine, provisioned via internal/clients/workbenchdocker's Docker client. |
|
terminalauth
Package terminalauth scans a workbench's raw ttyd terminal output for the Claude CLI's OAuth sign-in link, the same one deploy/workbench/bridge/internal/authlogin.Parser looks for on the chat bridge's transport — but the interactive terminal (internal/transport/vaults_api's WorkbenchTerminalShellHandler, proxying ttyd's own binary WebSocket protocol) is a separate transport with no visibility into the bridge's parser, so it needs its own tap.
|
Package terminalauth scans a workbench's raw ttyd terminal output for the Claude CLI's OAuth sign-in link, the same one deploy/workbench/bridge/internal/authlogin.Parser looks for on the chat bridge's transport — but the interactive terminal (internal/transport/vaults_api's WorkbenchTerminalShellHandler, proxying ttyd's own binary WebSocket protocol) is a separate transport with no visibility into the bridge's parser, so it needs its own tap. |
|
transport/simple_chat_api
Package simple_chat_api exposes Simple Chat over the network: the CRUD RPCs of artel_api.SimpleChatAPI here, and the live turn WebSocket in chat_ws.go.
|
Package simple_chat_api exposes Simple Chat over the network: the CRUD RPCs of artel_api.SimpleChatAPI here, and the live turn WebSocket in chat_ws.go. |
|
transport/telegram_webhook
Package telegram_webhook implements the inbound half of Artel's BYO-bot Telegram integration: receiving updates from Telegram for a bot the user linked via externalconnections.Service.AddTelegramConnection, and relaying them into that user's workbench chat session (a headless Claude Code session running in a Docker container, exposed as a WebSocket speaking internal/chatprotocol's normalized JSON event protocol).
|
Package telegram_webhook implements the inbound half of Artel's BYO-bot Telegram integration: receiving updates from Telegram for a bot the user linked via externalconnections.Service.AddTelegramConnection, and relaying them into that user's workbench chat session (a headless Claude Code session running in a Docker container, exposed as a WebSocket speaking internal/chatprotocol's normalized JSON event protocol). |
|
pkg
|
|
|
app
Package app is the public entry point for embedding artel as a library.
|
Package app is the public entry point for embedding artel as a library. |
|
momhttp
Package momhttp is the public surface for injecting per-mcp / per-tool HTTP middleware into artel's MoM http executor from outside the module.
|
Package momhttp is the public surface for injecting per-mcp / per-tool HTTP middleware into artel's MoM http executor from outside the module. |
Click to show internal directories.
Click to hide internal directories.