El Protocolo del Servidor de Tipos (TSP) es un estándar JSON-RPC diseñado para interactuar con servidores de análisis de tipos de Python. Este protocolo gestiona el estado de análisis de tipos de un espacio de trabajo y responde a solicitudes específicas sobre la versión del protocolo, capturas de estado, rutas de búsqueda, resolución de importaciones y consultas de tipos (calculados, declarados y esperados). La especificación técnica se basa en las formas de datos y convenciones del Protocolo del Servidor de Idioma (LSP), utilizando URIs como cadenas de texto y métodos prefijos con 'typeServer/'.
El documento detalla la estructura de los artefactos del protocolo, incluyendo las interfaces de TypeScript, el modelo máquina-leable tsp.json y el esquema JSON tsp.schema.json. El sistema utiliza cadenas de versión semántica para verificar la compatibilidad entre cliente y servidor, manteniendo la compatibilidad hacia atrás en las versiones de parche (0.x).
La comunicación principal ocurre a través de stdio, reservando stdout para mensajes JSON-RPC. El protocolo soporta un modo de conexión múltiple opcional, que permite a los clientes abrir canales adicionales de solo lectura para mejorar el rendimiento en consultas de alto volumen, sin bloquear la conexión principal que gestiona el estado mutable del espacio de trabajo. Este modo se negocia mediante capacidades experimentales en la solicitud de inicialización LSP, requiriendo que ambos lados (cliente y servidor) soporten el mismo tipo de transporte, actualmente limitado a ipc para conexiones adicionales. Las conexiones extra son de solo lectura y están sujetas a la versión TSP negociada, mientras que la conexión principal conserva el control de estado y las notificaciones de ciclo de vida.
