small gleam coding and persistent agent daemon with a detachable cli and a canvas ui forked from okami.mom/albedo
albedo docs extensions.md
9.1 kB · 140 lines
Markdown

# Extensions Extensions are basically bundles that provide capabilities to the harness such as oauth, tools, compaction strategies, ways to inject context to the agent, and more. Each extension has a name, description, a list of extensions it depends on, a list of plugins that the extension's capabiltiies fit into, and an initializer. Extensions can be installed and yet be optional. They can also be toggable as a global default or turned on/off per session. For a list of built in extensions, see src/albedo/harenss/extensions/ # Plugins Plugins are typed contribution points and an extension can provide several kinds: - context: load text for the harness’s model context. - tools: add model-callable tools, Python modules, and host RPC routes. - managed: prepare session-specific contributions that depend on the sqlite db, observe session events, and hook into turns. - commands: provide commands shared by the CLI and the Python kernel callable by the model. - compaction / folds: provide compaction strategies and stored folds (previous compactions). - models / model provider: provide catalog data for an inference provider or bridges for oauth from providers such as Claude and Codex - login: provide a browser-based sign-in flow, often depended on by model provider extensions. - service: mount daemon HTTP routes under the extension’s path. - migration: contribute schema setup or data upgrades. - settings: declare the values the extension reads from its section of `$ALBEDO_HOME/extensions.json` (key, label, description, default, and the range or kind it accepts). The daemon lists and saves them through the `extension_settings` settings group, checking a save with the extension's own rules first, and `/config` in the TUI edits them. See [extension settings](../robot-docs/extensions.md#extension-settings). On installation/startup the host calls each extension’s initializer and applies schema migrations. When a session’s enabled extensions are composed, their plugins supply the context, tools, commands, strategies, and o…