feat: Hermes Zulip native platform plugin — deprecates old standalone service
CI / validate (pull_request) Failing after 2s
CI / validate (pull_request) Failing after 2s
Builds on the NousResearch Hermes Agent plugin system: - plugins/platforms/zulip/ — full BasePlatformAdapter implementation - Zulip event queue polling (like pi-zulip-extension) - DM-first + @mention + @all-bots routing - Placeholder→edit streaming UX - Typing indicators - Deduplication and echo-loop prevention - Auto-registers via register(ctx) — zero core changes - plugin.yaml with full env var schema - hermes-zulip-plugin/DEPRECATED.md — migration guide from old subprocess-based service Configuration: Env vars: ZULIP_SITE, ZULIP_EMAIL, ZULIP_API_KEY (required) Config: platforms.zulip.extra in Hermes config.yaml
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
name: zulip-platform
|
||||
label: Zulip
|
||||
kind: platform
|
||||
version: 1.0.0
|
||||
description: >
|
||||
Zulip messaging platform adapter for Hermes Agent. Connects to a Zulip
|
||||
server via event queue polling, processes DMs and @mentions, and sends
|
||||
replies with placeholder→edit streaming. Uses the official zulip-js
|
||||
HTTP API pattern (polling, not WebSockets) — lightweight, no external
|
||||
SDK beyond httpx.
|
||||
|
||||
author: Syslog Solution LLC
|
||||
|
||||
requires_env:
|
||||
- name: ZULIP_SITE
|
||||
description: "Zulip server URL (e.g. https://chat.sysloggh.net)"
|
||||
prompt: "Zulip server URL"
|
||||
password: false
|
||||
- name: ZULIP_EMAIL
|
||||
description: "Bot email address (e.g. tanko-bot@chat.sysloggh.net)"
|
||||
prompt: "Zulip bot email"
|
||||
password: false
|
||||
- name: ZULIP_API_KEY
|
||||
description: "Zulip bot API key"
|
||||
prompt: "Zulip API key"
|
||||
password: true
|
||||
|
||||
optional_env:
|
||||
- name: ZULIP_STREAM
|
||||
description: "Primary stream to subscribe to (default: agent-hub)"
|
||||
prompt: "Zulip stream name"
|
||||
password: false
|
||||
- name: ZULIP_ALL_BOTS_USER_ID
|
||||
description: "User ID of the @all-bots user (default: 1)"
|
||||
prompt: "All Bots user ID"
|
||||
password: false
|
||||
- name: ZULIP_AGENT_NAME
|
||||
description: "Agent display name for logging (default: hermes-agent)"
|
||||
prompt: "Agent name"
|
||||
password: false
|
||||
- name: ZULIP_OWNER_EMAIL
|
||||
description: "Owner email for private topic ACL"
|
||||
prompt: "Owner email"
|
||||
password: false
|
||||
- name: ZULIP_POLL_INTERVAL
|
||||
description: "Event poll interval in seconds (default: 3)"
|
||||
prompt: "Poll interval (seconds)"
|
||||
password: false
|
||||
- name: ZULIP_HOME_CHANNEL
|
||||
description: "Default recipient for cron / notification delivery"
|
||||
prompt: "Home channel (email or stream:topic)"
|
||||
password: false
|
||||
- name: ZULIP_HOME_CHANNEL_NAME
|
||||
description: "Human label for the home channel"
|
||||
prompt: "Home channel display name"
|
||||
password: false
|
||||
Reference in New Issue
Block a user