Files

47 lines
2.1 KiB
Markdown

# 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**:
1. Study its real, official extension/plugin/module API (docs + source).
2. Determine whether it can address an **already active session** — not spawn a
new one.
3. Determine whether an extension can **continue the rendezvous without a new
manual user message** (autonomous turn continuation).
4. 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.