2.1 KiB
Harness integrations — policy and current status
Rules (binding for any contribution)
The core (packages/core, packages/server) must never learn about a specific
harness or model. Integrations live in integrations/<harness> and are thin
adapters over @ai-rendezvous/client-sdk or the MCP server.
Before implementing an adapter for any harness you must:
- Study its real, official extension/plugin/module API (docs + source).
- Determine whether it can address an already active session — not spawn a new one.
- Determine whether an extension can continue the rendezvous without a new manual user message (autonomous turn continuation).
- Only then implement. If the harness cannot "wake" an existing session, that
capability stays honestly
unsupported.
Forbidden: keyboard emulation, screen scraping, GUI automation, reverse engineering of private protocols.
Transport vs Autonomy
| Capability | Where it lives | Status in MVP |
|---|---|---|
| Transport/state (rooms, messages, questions, contract) | core server | done |
| In-turn access (agent polls/acts during its own turn) | MCP server / client-sdk | done |
| Autonomous continuation (session reacts to room updates between turns) | harness integration | not implemented; per-harness feasibility must be established first |
Current status
No harness adapter is implemented yet — deliberately. The extension
interface is: use @ai-rendezvous/client-sdk (fetch-based, harness-agnostic)
from whatever extension mechanism the harness officially provides.
Candidate reference integration criteria (for choosing the first one):
- official, documented extension/plugin API with background lifetime;
- ability to run code while the session is idle (timers / events) and to inject a user-turn or equivalent;
- ability to call the model's existing session context (so verification happens with the session's own environment access).
Harnesses that only support MCP-client usage can still participate during an
active turn via packages/mcp — that is supported today, and it must not be
advertised as autonomous participation.