Plugin trait and registry for the Astrid secure agent runtime SDK.
Provides the core abstractions for extending Astrid with plugins:
- [
PluginId]: Stable, human-readable plugin identifier - [
PluginManifest]: Describes a plugin's identity, entry point, and capabilities - [
Plugin]: Trait for plugin lifecycle (load/unload) and tool provision - [
PluginTool]: Trait for tools provided by plugins (mirrorsBuiltinTool) - [
PluginContext] / [PluginToolContext]: Execution contexts with scoped KV storage - [
PluginRegistry]: Registry for loaded plugins with cross-plugin tool lookup - [
discover_manifests]: Filesystem discovery ofplugin.tomlmanifests
Tool Naming Convention
Plugin tools are exposed to the LLM as plugin:{plugin_id}:{tool_name},
which avoids collision with built-in tools (no colons) and MCP tools
(server:tool — single colon).
Storage Isolation
Each plugin gets a ScopedKvStore pre-bound
to the namespace plugin:{plugin_id}. Plugins cannot access each other's data.