Files
LangBot/plugins/Runner/tests/fixtures/fake_acp_runtime.py

41 lines
1.2 KiB
Python

"""Unpaid local ACP protocol fixture; never launches a real provider."""
from __future__ import annotations
import json
import sys
def send(payload):
print(json.dumps({"jsonrpc": "2.0", **payload}), flush=True)
for line in sys.stdin:
request = json.loads(line)
method = request.get("method")
request_id = request.get("id")
if request_id is None:
continue
if method == "initialize":
result = {"protocolVersion": 1, "agentCapabilities": {"loadSession": False, "promptCapabilities": {}}}
elif method == "session/new":
result = {"sessionId": "fixture-acp-session"}
elif method == "session/prompt":
send(
{
"method": "session/update",
"params": {
"sessionId": "fixture-acp-session",
"update": {
"sessionUpdate": "agent_message_chunk",
"content": {"type": "text", "text": "FIXTURE_OK"},
},
},
}
)
result = {"stopReason": "end_turn"}
else:
send({"id": request_id, "error": {"code": -32601, "message": f"Unexpected fixture method {method}"}})
continue
send({"id": request_id, "result": result})