internal/

directory
v0.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2026 License: MIT

Directories

Path Synopsis
Package accesstoken manages Personal Access Tokens — static bearer credentials a user generates from /profile/tokens and pastes into a remote MCP client (Claude Desktop, Cursor, VSCode plugin, custom CLI).
Package accesstoken manages Personal Access Tokens — static bearer credentials a user generates from /profile/tokens and pastes into a remote MCP client (Claude Desktop, Cursor, VSCode plugin, custom CLI).
view
templ: version: v0.3.1020
templ: version: v0.3.1020
view
templ: version: v0.3.1020
templ: version: v0.3.1020
agents
agentctl
Package agentctl provides a unix-socket control channel between the wick MCP stdio process and the wick HTTP daemon.
Package agentctl provides a unix-socket control channel between the wick MCP stdio process and the wick HTTP daemon.
askuser
Package askuser holds the daemon-side coordinator for the ask_user MCP tool.
Package askuser holds the daemon-side coordinator for the ask_user MCP tool.
capability
Package capability declares per-provider hook-support metadata and a self-registering registry for it.
Package capability declares per-provider hook-support metadata and a self-registering registry for it.
channels
Package channels provides message channel implementations for the Agents subsystem.
Package channels provides message channel implementations for the Agents subsystem.
channels/rest
Package rest implements an OpenAI Chat Completions compatible HTTP channel for the agents pool.
Package rest implements an OpenAI Chat Completions compatible HTTP channel for the agents pool.
channels/setup
Package setup composes channel implementations into a registry.
Package setup composes channel implementations into a registry.
channels/slack
Package slack — send.go: local agent-proxy send handler + reply helpers.
Package slack — send.go: local agent-proxy send handler + reply helpers.
channels/slack/workflow
Slack picker resolvers — feed workflow_picker_resolve so AI authors editing a trigger match (channel_id whitelist, user whitelist) can get real IDs instead of guessing C123/U456.
Slack picker resolvers — feed workflow_picker_resolve so AI authors editing a trigger match (channel_id whitelist, user whitelist) can get real IDs instead of guessing C123/U456.
channels/telegram
Package telegram implements the Telegram transport for the agents channel registry.
Package telegram implements the Telegram transport for the agents channel registry.
config
Package config holds the runtime-editable Agents config (General / Slack / Storage structs reflected into the configs DB table) plus the on-disk Layout — the single source of truth for path math under the platform default data directory (~/.<app>/agents).
Package config holds the runtime-editable Agents config (General / Slack / Storage structs reflected into the configs DB table) plus the on-disk Layout — the single source of truth for path math under the platform default data directory (~/.<app>/agents).
event
Package event holds the CLI-agnostic event abstraction.
Package event holds the CLI-agnostic event abstraction.
gate
Package gate is the command whitelist enforcement layer.
Package gate is the command whitelist enforcement layer.
pool
Package pool manages the global agent subprocess slot count + FIFO queue.
Package pool manages the global agent subprocess slot count + FIFO queue.
preset
Package preset manages reusable agent templates stored at `<BaseDir>/presets/<name>/agent.md`.
Package preset manages reusable agent templates stored at `<BaseDir>/presets/<name>/agent.md`.
project
Package project manages on-disk project entries at `<BaseDir>/projects/<id>/` (managed) or any user-supplied absolute path (custom).
Package project manages on-disk project entries at `<BaseDir>/projects/<id>/` (managed) or any user-supplied absolute path (custom).
provider
Package runtime owns the per-AI-CLI runtime layer for agents:
Package runtime owns the per-AI-CLI runtime layer for agents:
provider/claude
Package claude is the Claude-CLI specific Spawner implementation.
Package claude is the Claude-CLI specific Spawner implementation.
provider/codex
Package codex will hold the Codex-CLI specific Spawner implementation.
Package codex will hold the Codex-CLI specific Spawner implementation.
provider/gemini
Package gemini will hold the Gemini-CLI specific Spawner implementation.
Package gemini will hold the Gemini-CLI specific Spawner implementation.
providersync
Package providersync syncs provider credential files to/from the DB.
Package providersync syncs provider credential files to/from the DB.
registry
Package registry holds the in-memory cache of on-disk Agents state (Registry) plus a mutator wrapper (Manager) and the boot entrypoint (Bootstrap).
Package registry holds the in-memory cache of on-disk Agents state (Registry) plus a mutator wrapper (Manager) and the boot entrypoint (Bootstrap).
scm
Package scm provides git source-control operations over a session's working directory.
Package scm provides git source-control operations over a session's working directory.
session
Package session manages on-disk session entries at `<BaseDir>/sessions/<id>/`.
Package session manages on-disk session entries at `<BaseDir>/sessions/<id>/`.
sessionworkspace
Package sessionworkspace stores a per-session "workspace": a set of ephemeral connector instances cloned from a base module (httprest, custom API defs, …).
Package sessionworkspace stores a per-session "workspace": a set of ephemeral connector instances cloned from a base module (httprest, custom API defs, …).
skillsync
Package skillsync mirrors skill files across all agent skill directories (~/.claude/skills, ~/.codex/skills, ~/.gemini/skills, ~/.agents/skills) without symlinks.
Package skillsync mirrors skill files across all agent skill directories (~/.claude/skills, ~/.codex/skills, ~/.gemini/skills, ~/.agents/skills) without symlinks.
state
Package state holds the per-agent runtime state machine.
Package state holds the per-agent runtime state machine.
storage
Package storage holds the filesystem primitives used by every other agents subpackage: atomic JSON write, JSONL append/read/tail/truncate, directory scan, and identifier validation.
Package storage holds the filesystem primitives used by every other agents subpackage: atomic JSON write, JSONL append/read/tail/truncate, directory scan, and identifier validation.
store
Package store is the agents pipeline sink: it consumes AgentEvent values produced by a Parser and writes them to the on-disk session folder (conversation.jsonl, raw.jsonl, agents.json cli_session_id).
Package store is the agents pipeline sink: it consumes AgentEvent values produced by a Parser and writes them to the on-disk session folder (conversation.jsonl, raw.jsonl, agents.json cli_session_id).
transport
Package transport defines the boundary between Agents and message sources (Slack, UI, future API).
Package transport defines the boundary between Agents and message sources (Slack, UI, future API).
transport/api
Package api will hold the HTTP API transport — external integrations that POST messages directly into a session, bypassing UI / Slack.
Package api will hold the HTTP API transport — external integrations that POST messages directly into a session, bypassing UI / Slack.
transport/slack
Package slack will hold the Slack transport: socket-mode (default) or HTTP Event API listener, reaction lifecycle, chunked replies, access control, and meta-command routing.
Package slack will hold the Slack transport: socket-mode (default) or HTTP Event API listener, reaction lifecycle, chunked replies, access control, and meta-command routing.
transport/ui
Package ui will hold the UI transport: an HTTP handler glue layer that turns POST /tools/agents/sessions/{id}/send into an IncomingMessage and pumps it through the pool.
Package ui will hold the UI transport: an HTTP handler glue layer that turns POST /tools/agents/sessions/{id}/send into an IncomingMessage and pumps it through the pool.
workflow
Package workflow is the domain for AI-orchestrated multi-step automations stored at `<BaseDir>/workflows/<id>/`.
Package workflow is the domain for AI-orchestrated multi-step automations stored at `<BaseDir>/workflows/<id>/`.
workflow/canvas
Package canvas mutates a Workflow's graph atomically.
Package canvas mutates a Workflow's graph atomically.
workflow/channel
Package channel is a thin adapter over internal/agents/channels.
Package channel is a thin adapter over internal/agents/channels.
workflow/connector
Package connector is the workflow-facing index of connector modules.
Package connector is the workflow-facing index of connector modules.
workflow/cost
Package cost aggregates per-node + per-workflow LLM usage.
Package cost aggregates per-node + per-workflow LLM usage.
workflow/datatable
Package datatable is the workflow-facing shared-table store.
Package datatable is the workflow-facing shared-table store.
workflow/engine
Package engine — multi-subscriber event broker.
Package engine — multi-subscriber event broker.
workflow/env
Package env validates and resolves the workflow's env schema + values.
Package env validates and resolves the workflow's env schema + values.
workflow/guard
Package guard reviews a workflow body for safety violations before publish.
Package guard reviews a workflow body for safety violations before publish.
workflow/integration
Package integration is the workflow-side surface for per-event + per-action node descriptors.
Package integration is the workflow-side surface for per-event + per-action node descriptors.
workflow/mcp
Package mcp — Data Tables MCP surface.
Package mcp — Data Tables MCP surface.
workflow/nodes
Package nodes contains the concrete Executor impls for every Node type.
Package nodes contains the concrete Executor impls for every Node type.
workflow/parse
Package parse decodes and validates workflow JSON bodies.
Package parse decodes and validates workflow JSON bodies.
workflow/provider
Package provider is the abstraction the workflow engine talks to for classify + agent nodes.
Package provider is the abstraction the workflow engine talks to for classify + agent nodes.
workflow/repository
Package repository is the DB-backed storage for workflows + their version history.
Package repository is the DB-backed storage for workflows + their version history.
workflow/scaffold
Package scaffold provides workflow starter templates used by `workflow_create` MCP op + UI "New workflow" form.
Package scaffold provides workflow starter templates used by `workflow_create` MCP op + UI "New workflow" form.
workflow/service
Package service is the CRUD facade over `<BaseDir>/workflows/`.
Package service is the CRUD facade over `<BaseDir>/workflows/`.
workflow/setup
Package setup wires every workflow subpkg together.
Package setup wires every workflow subpkg together.
workflow/state
Package state persists per-run state.json + events.jsonl under `<BaseDir>/workflows/<id>/runs/<run-id>/`.
Package state persists per-run state.json + events.jsonl under `<BaseDir>/workflows/<id>/runs/<run-id>/`.
workflow/template
Package template renders Go text/template strings against a workflow.RenderCtx.
Package template renders Go text/template strings against a workflow.RenderCtx.
workflow/trigger
Package trigger is the dispatch + queue + dedup layer between trigger sources (cron, channel adapter, webhook, manual, error) and the engine.
Package trigger is the dispatch + queue + dedup layer between trigger sources (cron, channel adapter, webhook, manual, error) and the engine.
workflow/wftest
Package wftest runs workflow test cases loaded from `__tests__/` fixtures.
Package wftest runs workflow test cases loaded from `__tests__/` fixtures.
workspace
Package workspace manages on-disk workspace entries at `<BaseDir>/workspaces/<name>/` (managed) or any user-supplied absolute path (custom).
Package workspace manages on-disk workspace entries at `<BaseDir>/workspaces/<name>/` (managed) or any user-supplied absolute path (custom).
Package appname is the single source of truth for the running app's *path-safe identifier* — the slug used in `~/.<app>/` for DB, logs, agents Layout, gate spec/socket.
Package appname is the single source of truth for the running app's *path-safe identifier* — the slug used in `~/.<app>/` for DB, logs, agents Layout, gate spec/socket.
Package autostart registers the running binary to launch at OS user login.
Package autostart registers the running binary to launch at OS user login.
Package builder compiles a wick app into a raw Go binary plus the platform-native distributable that ships with each release:
Package builder compiles a wick app into a raw Go binary plus the platform-native distributable that ships with each release:
darwin
Package darwin handles macOS-specific build steps — wrapping the raw binary into a .app bundle and (host-darwin only) further wrapping that into a .dmg disk image.
Package darwin handles macOS-specific build steps — wrapping the raw binary into a .app bundle and (host-darwin only) further wrapping that into a .dmg disk image.
linux
Package linux handles Linux-specific build steps — wrapping the raw binary into a Debian binary package (.deb).
Package linux handles Linux-specific build steps — wrapping the raw binary into a Debian binary package (.deb).
windows
Package windows handles Windows-specific build steps — currently the .syso resource that embeds the brand icon plus version metadata into the .exe.
Package windows handles Windows-specific build steps — currently the .syso resource that embeds the brand icon plus version metadata into the .exe.
Package configs manages runtime-editable configuration stored in the `configs` table.
Package configs manages runtime-editable configuration stored in the `configs` table.
Package connectors is the central registry for every connector definition wick will expose via MCP.
Package connectors is the central registry for every connector definition wick will expose via MCP.
crudcrud
Package crudcrud is a sample connector that wraps the crudcrud.com REST sandbox — a free, throwaway JSON store useful for demos and integration smoke tests.
Package crudcrud is a sample connector that wraps the crudcrud.com REST sandbox — a free, throwaway JSON store useful for demos and integration smoke tests.
custom
Package custom is the generic executor behind admin-built custom connectors.
Package custom is the generic executor behind admin-built custom connectors.
customconnector
Package customconnector is the management connector for custom connector definitions: the same lifecycle the admin UI offers (create / inspect / update / re-sync / disable / delete definitions, plus instance rows), exposed as LLM-callable operations so an agent can build a connector without anyone opening the dashboard.
Package customconnector is the management connector for custom connector definitions: the same lifecycle the admin UI offers (create / inspect / update / re-sync / disable / delete definitions, plus instance rows), exposed as LLM-callable operations so an agent can build a connector without anyone opening the dashboard.
github
Package github wraps the GitHub REST API v3 as a wick connector.
Package github wraps the GitHub REST API v3 as a wick connector.
googleworkspace
Package googleworkspace wraps Google Drive, Sheets, Docs, Slides, Gmail, Calendar, and Meet REST APIs for LLM consumption.
Package googleworkspace wraps Google Drive, Sheets, Docs, Slides, Gmail, Calendar, and Meet REST APIs for LLM consumption.
httprest
Package httprest is a generic HTTP/REST connector that lets an LLM call any JSON API without writing a custom connector.
Package httprest is a generic HTTP/REST connector that lets an LLM call any JSON API without writing a custom connector.
notifications
Package notifications exposes Wick's in-process notification service as a fixed connector.
Package notifications exposes Wick's in-process notification service as a fixed connector.
phoenix
Package phoenix wraps the Arize Phoenix observability API as a wick connector for debugging LLM behaviour.
Package phoenix wraps the Arize Phoenix observability API as a wick connector for debugging LLM behaviour.
slack
Package slack wraps Slack's Web API as a wick connector.
Package slack wraps Slack's Web API as a wick connector.
wickmanager
Package wickmanager exposes wick's own management plane (apps, jobs, tools, connectors, lifecycle server/worker) as a fixed single- instance connector.
Package wickmanager exposes wick's own management plane (apps, jobs, tools, connectors, lifecycle server/worker) as a fixed single- instance connector.
workflow
Package workflow exposes the workflow engine as a fixed single-instance MCP connector.
Package workflow exposes the workflow engine as a fixed single-instance MCP connector.
Package enc implements wick's encrypted-fields layer: a per-user AES-256-GCM cipher that lets credentials and other sensitive values flow between an LLM and a connector without ever appearing as plaintext in the LLM's context window or in audit logs.
Package enc implements wick's encrypted-fields layer: a per-user AES-256-GCM cipher that lets credentials and other sensitive values flow between an LLM and a connector without ever appearing as plaintext in the LLM's context window or in audit logs.
templ: version: v0.3.1020
templ: version: v0.3.1020
Package initcreds writes / clears the initial-admin credentials file.
Package initcreds writes / clears the initial-admin credentials file.
Package jobrunner mounts the operator-facing /jobs/{key} surface where users can run a job and see its recent history.
Package jobrunner mounts the operator-facing /jobs/{key} surface where users can run a job and see its recent history.
view
templ: version: v0.3.1020
templ: version: v0.3.1020
Package jobs is the single place to register all background job modules.
Package jobs is the single place to register all background job modules.
connector-runs-purge
Package connectorrunspurge is wick's built-in maintenance job that trims old rows from the connector_runs audit table.
Package connectorrunspurge is wick's built-in maintenance job that trims old rows from the connector_runs audit table.
provider-storage-retention
Package providerstorageretention purges expired provider_storage file rows and old history rows on a daily schedule.
Package providerstorageretention purges expired provider_storage file rows and old history rows on a daily schedule.
provider-storage-sync
Package providerstoragesync is a background job that backs up all enabled provider-storage sources from disk to DB on a fixed interval.
Package providerstoragesync is a background job that backs up all enabled provider-storage sources from disk to DB on a fixed interval.
sample-post
Package samplepost is a sample job that fetches a post from a JSONPlaceholder-compatible API and returns the result as markdown.
Package samplepost is a sample job that fetches a post from a JSONPlaceholder-compatible API and returns the result as markdown.
session-config-purge
Package sessionconfigpurge is wick's maintenance job that removes stale per-session workspaces (sessions/<id>/workspace.json) by file age.
Package sessionconfigpurge is wick's maintenance job that removes stale per-session workspaces (sessions/<id>/workspace.json) by file age.
view
templ: version: v0.3.1020
templ: version: v0.3.1020
Package manager — connectors_api_admin.go: JSON twins of the per-row admin controls that previously lived only on the form-post templ pages (rate limit, duplicate, access policy, session config, operation toggles, and account management).
Package manager — connectors_api_admin.go: JSON twins of the per-row admin controls that previously lived only on the form-post templ pages (rate limit, duplicate, access policy, session config, operation toggles, and account management).
view
templ: version: v0.3.1020
templ: version: v0.3.1020
view/type
templ: version: v0.3.1020
templ: version: v0.3.1020
mcp
Package mcp implements the Model Context Protocol JSON-RPC 2.0 transport that LLM clients (Claude Desktop, Cursor, Claude.ai web) call to discover and invoke wick connectors as tools.
Package mcp implements the Model Context Protocol JSON-RPC 2.0 transport that LLM clients (Claude Desktop, Cursor, Claude.ai web) call to discover and invoke wick connectors as tools.
Package mcpconfig writes MCP server entries into client config files (Claude Desktop, Cursor, Gemini CLI, Codex CLI, Claude Code) and detects which clients are installed on the host.
Package mcpconfig writes MCP server entries into client config files (Claude Desktop, Cursor, Gemini CLI, Codex CLI, Claude Code) and detects which clients are installed on the host.
Package metrics defines the Recorder interface that connectors.Service uses to emit telemetry.
Package metrics defines the Recorder interface that connectors.Service uses to emit telemetry.
Package oauth implements the minimal OAuth 2.1 authorization server every spec-compliant MCP client (notably Claude.ai web) requires.
Package oauth implements the minimal OAuth 2.1 authorization server every spec-compliant MCP client (notably Claude.ai web) requires.
view
templ: version: v0.3.1020
templ: version: v0.3.1020
pkg
api
daemon
Package daemon implements background-process lifecycle for wick: Start/Stop/Restart/Status with a PID file.
Package daemon implements background-process lifecycle for wick: Start/Stop/Restart/Status with a PID file.
env
Package env hosts small platform-detection helpers shared by app, daemon, and any other layer that needs to know whether the current process can show a GUI.
Package env hosts small platform-detection helpers shared by app, daemon, and any other layer that needs to know whether the current process can show a GUI.
lan
Package lan discovers private-range IPv4 addresses on the local host.
Package lan discovers private-range IPv4 addresses on the local host.
logfiles
Package logfiles wires per-component dated log files for wick runtimes that own their own process (tray on GUI hosts, headless `all` spawned by `wick start`).
Package logfiles wires per-component dated log files for wick runtimes that own their own process (tray on GUI hosts, headless `all` spawned by `wick start`).
netboot
Package netboot makes the pure-Go binary self-sufficient for DNS and TLS on hosts that lack the files Go's stdlib expects — most notably Android/Termux, whose read-only /etc has no /etc/resolv.conf and no /etc/ssl/certs, so DNS lookups hit the dead loopback resolver and every outbound HTTPS fails x509 verification.
Package netboot makes the pure-Go binary self-sufficient for DNS and TLS on hosts that lack the files Go's stdlib expects — most notably Android/Termux, whose read-only /etc has no /etc/resolv.conf and no /etc/ssl/certs, so DNS lookups hit the dead loopback resolver and every outbound HTTPS fails x509 verification.
pwa
Package pwa hosts Progressive Web App glue — the dynamic web app manifest plus future hooks (service worker registration, push subscription endpoints).
Package pwa hosts Progressive Web App glue — the dynamic web app manifest plus future hooks (service worker registration, push subscription endpoints).
render
Package render builds the tool.RenderFunc that wraps a body fragment in wick's page shell (Layout + Navbar).
Package render builds the tool.RenderFunc that wraps a body fragment in wick's page shell (Layout + Navbar).
spa
Package spa provides a unified SPA (Single-Page Application) loader for wick's Vite-built Svelte frontends.
Package spa provides a unified SPA (Single-Page Application) loader for wick's Vite-built Svelte frontends.
ui
templ: version: v0.3.1020
templ: version: v0.3.1020
Package processctl owns the in-process lifecycle of the HTTP server and background worker: Start/Stop/IsRunning + a per-process IsManaged flag that says whether wick was launched via the system tray (and is therefore allowed to mutate its own server/worker state).
Package processctl owns the in-process lifecycle of the HTTP server and background worker: Start/Stop/IsRunning + a per-process IsManaged flag that says whether wick was launched via the system tray (and is therefore allowed to mutate its own server/worker state).
Package safeexec provides drop-in replacements for selected os/exec helpers whose implementation in Go's standard library uses the faccessat2(2) Linux syscall (number 439, introduced in kernel 5.8).
Package safeexec provides drop-in replacements for selected os/exec helpers whose implementation in Go's standard library uses the faccessat2(2) Linux syscall (number 439, introduced in kernel 5.8).
Package shardedlog is a generic append-only JSONL store split across date-bucketed shards.
Package shardedlog is a generic append-only JSONL store split across date-bucketed shards.
Package sso manages SSO provider credentials (currently Google OAuth).
Package sso manages SSO provider credentials (currently Google OAuth).
Package startupscript runs an admin-defined shell script when the server boots.
Package startupscript runs an admin-defined shell script when the server boots.
Package systemtray runs the OS system tray UI for a wick-powered app: start/stop the local HTTP server and the background job worker (both in-process via cancellable goroutines), and install or uninstall the app's MCP entry into detected MCP clients (Claude Desktop, Cursor, etc).
Package systemtray runs the OS system tray UI for a wick-powered app: start/stop the local HTTP server and the background job worker (both in-process via cancellable goroutines), and install or uninstall the app's MCP entry into detected MCP clients (Claude Desktop, Cursor, etc).
Package tools is the central registry for every tool instance wick will mount.
Package tools is the central registry for every tool instance wick will mount.
agents
Package agents backs /tools/agents — the Agents UI Manager.
Package agents backs /tools/agents — the Agents UI Manager.
agents/view
templ: version: v0.3.1020
templ: version: v0.3.1020
agents/view/workflow
templ: version: v0.3.1020
templ: version: v0.3.1020
convert-text
Package converttext is a stateless text-conversion tool.
Package converttext is a stateless text-conversion tool.
encfields
Package encfields backs /tools/encfields — the in-app form for minting and reversing wick_enc_ tokens.
Package encfields backs /tools/encfields — the in-app form for minting and reversing wick_enc_ tokens.
external
Package external wraps third-party links as tool.Module entries so they show up on the home grid and palette alongside in-app tools.
Package external wraps third-party links as tool.Module entries so they show up on the home grid and palette alongside in-app tools.
provider-storage
Package providerstorage mounts a Provider Storage Manager UI under /tools/provider-storage.
Package providerstorage mounts a Provider Storage Manager UI under /tools/provider-storage.
webtty
Package webtty mounts a browser-based terminal under /tools/webtty.
Package webtty mounts a browser-based terminal under /tools/webtty.
Package updater downloads, verifies, and applies new release binaries from GitHub.
Package updater downloads, verifies, and applies new release binaries from GitHub.
Package userconfig persists per-machine user preferences for the system tray (auto-start toggles, default project, self-update state) in a single JSON file under a hidden app directory in the user's home.
Package userconfig persists per-machine user preferences for the system tray (auto-start toggles, default project, self-update state) in a single JSON file under a hidden app directory in the user's home.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL