Files
zulip-platform-plugins/docs/adr/ADR-007-platform-native-contracts.md
T
Abiba (pi) 66c6d4966e fix: correct Abiba platform label (pi not openclaw), add plugin skeletons, shared config, fix health port
- Replace all 'openclaw' references with 'pi' (pi coding harness)
- Fix Git remote URL in CONTEXT.md
- Harmonize health port to 9200 across all docs
- Add config.yaml.example with full schema
- Add pi-zulip-extension skeleton (TypeScript, pi Extension API)
- Add hermes-zulip-plugin skeleton (Python, BasePlatformAdapter)
- Add agent-zero-plugin skeleton (Python, A0 plugin API)
- Update ADR-007 with pi extension docs reference
- Document private topic ACL v1 limitation in CONTEXT.md
2026-06-19 23:55:19 +00:00

1.2 KiB

ADR 7: Platform-Native Plugin Contracts

Date: 2026-04-28

Decision

Each platform uses its native plugin interface: Hermes BasePlatformAdapter, pi extension API, Agent Zero plugin system.

Context

Each platform has matured, battle-tested interfaces for receiving and sending messages. A unified A2A contract would add unnecessary abstraction and latency for local agent communication. Platform-native contracts are reliable, handle connection-state/retry automatically, and follow each platform's established patterns.

  • Hermes: BasePlatformAdapter — Python, gateway-based, handles connection lifecycle
  • pi: Extension API — TypeScript modules in ~/.pi/agent/extensions/, registers tools via pi.registerTool(), hooks lifecycle events. See pi docs at /usr/lib/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md
  • Agent Zero: A0 plugin system — Python, agent-native plugin API

Consequences

  • Three separate plugin implementations
  • Each plugin leverages platform-specific reliability features
  • Plugin developers need familiarity with each platform
  • Cross-platform @all-bots still works because each bot processes the same Zulip event independently