- 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
1.2 KiB
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 viapi.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