hermes-zulip-plugin (Tanko/Mumuni):
- Add _extract_event_attachments() to handle message.attachments from
Zulip UI file uploads (previously only inline markdown links worked)
- Add shared _cache_attachment() method for images/audio/documents
- Refactor _extract_inline_media() to use _cache_attachment()
- Fix connect() signature for hermes-agent 0.18.0 compat (add is_reconnect)
pi-zulip-extension (Abiba):
- Extend attachment handling beyond images only: text files (decoded
inline), PDFs (pdftotext extraction), binary files (metadata)
- 50K char cap on text/PDF extraction to prevent context flooding
- Classify attachments by extension (image/text/pdf/binary)
pi-mcp-extension (Abiba):
- Detect bridge-side text truncation (… ellipsis marker)
- Rebuild relay message display from structuredContent when truncated
- Add rebuildRelayTextFromStructuredContent() helper
Config:
- Add ZULIP_ROLE=router to ecosystem.abiba.config.cjs (was missing)
17 lines
667 B
TypeScript
17 lines
667 B
TypeScript
/**
|
|
* pi-zulip-extension — Zulip agent communication plugin for pi agents
|
|
*
|
|
* Deploy to: ~/.pi/agent/extensions/zulip/
|
|
* Config: config.yaml (alongside extension, or env vars)
|
|
*
|
|
* DM-first architecture per ADR-001/ADR-002.
|
|
* Background Zulip event queue poller that injects messages directly into
|
|
* the current pi session via pi.sendUserMessage(), then captures the LLM
|
|
* response from agent_end and sends it back to Zulip. No subprocess overhead.
|
|
*
|
|
* @see ADR-007: Platform-native plugin contracts
|
|
* @see docs/ARCHITECTURE.md
|
|
*/
|
|
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
export default function (pi: ExtensionAPI): void;
|