The agent half of a plugin runs as a Python subprocess underDocumentation Index
Fetch the complete documentation index at: https://docs.altnautica.com/llms.txt
Use this file to discover all available pages before exploring further.
ados-supervisor. The SDK gives you a typed wrapper around the IPC
channel the supervisor opens at startup.
Install
altnautica/ADOSDroneAgent/src/ados/plugins.
Hello plugin
Plugin.run(...) opens the IPC channel, reads the Context
(includes the granted capabilities, the operator-edited config, the
plugin’s data dir), and dispatches lifecycle hooks (on_start,
on_stop, on_config_change).
IPC
The supervisor passes the path to a Unix domain socket via theADOS_PLUGIN_SOCKET environment variable. The SDK opens the socket
and speaks msgpack RPC against it.
Capabilities
Every privileged call must be backed by a manifest permission. The SDK reads the granted set from the host on startup and rejects requests that exercise an undeclared capability before they reach the wire:Resource limits
The supervisor enforces the resource block from the manifest:ados-plugins.slice/<plugin-id>.scope. The plugin sees them as
hard caps; an OOM kill is reported to the host as a
crashed lifecycle event.
Testing
Until the SDK ships its own harness,pytest against in-memory
transports works the same way as the TypeScript harness. The agent
repo’s tests/test_api_plugins.py and tests/test_plugin_runner.py
have working examples.
What is in the SDK today
The agent host module ataltnautica/ADOSDroneAgent/src/ados/plugins/
already exposes:
manifest.PluginManifest(Pydantic schema)signing(Ed25519 verification + revocation list)archive(pack / unpack with traversal protection)state(persistent install / permission state)supervisor(lifecycle: install / enable / disable / remove)runner(the entrypoint shim plugin code calls into)
ados-sdk PyPI package is in flight; it will
re-export the contracts above plus an async event loop helper. Watch
the Discord and the
GitHub releases for the publish.