OVOS agent protocol plugin for HiveMind-core
Project description
HiveMind OVOS Agent Plugin
OVOS agent protocol plugin for HiveMind-core.
Bridges HiveMind client messages to an OpenVoiceOS message bus.
HiveMind clients connect to a hivemind-core listener, and this plugin forwards their
Mycroft Message payloads to a local OVOS bus (and routes OVOS responses back to the
originating client).
Installation
pip install hivemind-ovos-agent-plugin
Or from source:
git clone https://github.com/JarbasHiveMind/hivemind-ovos-agent-plugin
cd hivemind-ovos-agent-plugin
pip install -e .
Usage
The plugin registers itself as a HiveMind agent protocol via the
hivemind.agent.protocol entry point group, with name hivemind-ovos-agent-plugin.
In your hivemind-core configuration (~/.config/hivemind-core/server.json):
{
"agent_protocol": {
"module": "hivemind-ovos-agent-plugin",
"hivemind-ovos-agent-plugin": {
"host": "127.0.0.1",
"port": 8181
}
}
}
hivemind-core will discover the plugin via its entry point and instantiate the
OVOSAgentProtocol class with the supplied config. The plugin connects to the OVOS
message bus at the given host/port (defaulting to 127.0.0.1:8181).
This is also the default — if hivemind-core is running on the same host as OVOS,
no config change is needed. hivemind-core ships with hivemind-ovos-agent-plugin
pre-selected and falls back to the websocket section of the global OVOS
mycroft.conf for the bus address.
Direct programmatic use
from hivemind_ovos_agent_plugin import OVOSAgentProtocol
agent = OVOSAgentProtocol(config={"host": "127.0.0.1", "port": 8181})
# pass `agent` to your HiveMindListenerProtocol
How it works
The plugin owns two callbacks on the OVOS bus:
hive.send.downstream— emitted by OVOS components that want to push aHiveMessageto a connected HiveMind client. The plugin wraps the payload in aHiveMessageand dispatches it to the right peer, or fans it out forPROPAGATE/BROADCASTtypes.message(catch-all) — every internal OVOS bus message is inspected. If itscontext["destination"]lists a connected HiveMind peer, the plugin forwards it back to that peer wrapped as aHiveMessageType.BUSmessage. This is where client isolation is enforced: a client never sees responses meant for another client.
Upstream traffic (client → OVOS bus) is handled by hivemind-core itself; this plugin
only handles the downstream half.
Policy plugin
This package also registers as a hivemind.policy provider under the name
hivemind-ovos-agent-policy. hivemind-core runs the policy chain before
forwarding any inbound client message; the built-in OVOSAgentPolicy reads
per-client skill_blacklist and intent_blacklist from the credential store
and injects them into message.context["session"] as
AddBlacklistedSkill / AddBlacklistedIntent mutations.
Six concrete Mutation subclasses are available for custom policy plugins:
| Class | Purpose |
|---|---|
AddBlacklistedSkill |
Append to session["blacklisted_skills"] |
AddBlacklistedIntent |
Append to session["blacklisted_intents"] |
SetSessionField |
Set any key in message.context["session"] |
SetContextField |
Set a nested path in message.context |
RewriteUtterance |
Replace utterance text in recognizer_loop:utterance messages |
All types are importable from hivemind_ovos_agent_plugin directly. See
docs/policy.md for full details.
Documentation
Full developer documentation lives in docs/:
docs/architecture.md— how the plugin fits between HiveMind and OVOS.docs/configuration.md— every config knob.docs/message_flow.md— end-to-end message lifecycle.docs/development.md— running tests, releasing.docs/policy.md— policy plugin and mutation classes.
License
Apache 2.0. See LICENSE.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hivemind_ovos_agent_plugin-0.3.2a1.tar.gz.
File metadata
- Download URL: hivemind_ovos_agent_plugin-0.3.2a1.tar.gz
- Upload date:
- Size: 20.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3a2116896f74819d7d76e9dbbd0531b37356aeb7f2ccc3880a4246d43917a7e
|
|
| MD5 |
cf05e8edc00bbdd18b5ffaa2d46f37ff
|
|
| BLAKE2b-256 |
60bfff01f7312b75d27c512487dd07dec6a102f32d5496ef5fbe768cd32416b0
|
File details
Details for the file hivemind_ovos_agent_plugin-0.3.2a1-py3-none-any.whl.
File metadata
- Download URL: hivemind_ovos_agent_plugin-0.3.2a1-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f03cc05a08c881207d9e74cb75e7fe6bafdd2cbd1ff8299c353e9fcd577b3e5
|
|
| MD5 |
e9d30e8dca8af60fd35ee426a9774b0b
|
|
| BLAKE2b-256 |
aeb2e3779de5cd051249ef5627d1559f2d02ccc6f47748b7c2698831990bf790
|