Files
zulip-platform-plugins/docs/adr/ADR-007-platform-native-contracts.md
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

23 lines
1.2 KiB
Markdown

# 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