47 lines
2.1 KiB
Markdown
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.
|