mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-11-01 05:15:22 +08:00
41 lines
1.2 KiB
Python
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})
|