ai-control-protocol.wire.tcp-stream |
Поток байтов TCP |
Bridge принимает явно настроенный TCP endpoint; клиенты не должны предполагать наличие discovery, TLS, HTTP или WebSocket framing. |
Общие проектные реализации являются локальными каналами инструментов, а не протоколом интернет-сервиса. |
Examples/AiControlSample/ai_control_sample.py |
ai-control-protocol.wire.ndjson |
Один объект JSON в строке |
Каждый запрос и ответ является одним объектом JSON, завершённым LF; peers обрабатывают строки в порядке соединения. |
Строчный framing допускает потоковую обработку, удобен для инспекции и используется обоими проверенными проектными bridges. |
BuildTools/ai_control_client.py |
ai-control-protocol.wire.utf8 |
Кодировка UTF-8 |
Строки JSON кодируются и декодируются как строгий UTF-8; неверные данные получают parse error или приводят к закрытию соединения. |
Проектные наблюдения и payload действий могут содержать локализованный текст. |
BuildTools/ai_control_client.py |
ai-control-protocol.wire.line-limit |
Ограниченный размер строки |
JSON payload запроса или ответа не превышает 1 МиБ до LF; слишком большой ввод отклоняется, а соединение может быть закрыто. |
Даже локальному каналу автоматизации нужны детерминированные пределы памяти. |
BuildTools/ai_control_client.py |
ai-control-protocol.wire.request-envelope |
Конверт запроса |
Объект запроса содержит jsonrpc=2.0, выбранный вызывающей стороной id, непустую строку method и объект params. |
Небольшой конверт по форме JSON-RPC даёт корреляцию, не заявляя полную спецификацию JSON-RPC. |
BuildTools/ai_control_client.py |
ai-control-protocol.wire.response-envelope |
Конверт ответа |
Ответ повторяет jsonrpc=2.0 и id запроса, затем содержит ровно одно из result или error; error содержит целочисленный code и строковый message. |
Строгая корреляция не позволяет одному шагу автоматизации получить результат другого шага. |
BuildTools/ai_control_client.py |
ai-control-protocol.wire.sequential-connection |
Последовательная обработка запросов |
Клиент отправляет запрос и получает соответствующий ответ до повторного использования соединения; клиенты не должны требовать multiplexing или нескольких одновременных запросов. |
Контракт остаётся реализуемым одним проектным listener и не создаёт скрытых гонок порядка. |
BuildTools/ai_control_client.py |