{"meta":{"title":"Compatibilidad del SDK y la CLI","intro":"Este documento describe qué funciones de Copilot CLI están disponibles a través del SDK y cuáles son exclusivas de la CLI.","product":"GitHub Copilot","breadcrumbs":[{"href":"/es/copilot","title":"GitHub Copilot"},{"href":"/es/copilot/how-tos","title":"Procedimientos"},{"href":"/es/copilot/how-tos/copilot-sdk","title":"SDK de Copilot"},{"href":"/es/copilot/how-tos/copilot-sdk/troubleshooting","title":"Solución de problemas"},{"href":"/es/copilot/how-tos/copilot-sdk/troubleshooting/compatibility","title":"Compatibility"}],"documentType":"article"},"body":"# Compatibilidad del SDK y la CLI\n\nEste documento describe qué funciones de Copilot CLI están disponibles a través del SDK y cuáles son exclusivas de la CLI.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n## Visión general\n\nEl SDK de Copilot se comunica con la CLI a través del protocolo JSON-RPC. Las características deben exponerse explícitamente a través de este protocolo para que estén disponibles en el SDK. Muchas características interactivas de la CLI son específicas del terminal y no están disponibles mediante programación.\n\n## Comparación de características\n\n### ✅ Disponible en el SDK\n\n| Feature                                         | Método SDK                                                                                        | Notas                                                                                                                    |\n| ----------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |\n| **Gestión de sesiones**                         |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Crear sesión                                    | `createSession()`                                                                                 | Soporte completo de configuración                                                                                        |\n| Reanudar sesión                                 | `resumeSession()`                                                                                 | Con áreas de trabajo de sesión infinitas                                                                                 |\n| Desconectar sesión                              | `disconnect()`                                                                                    | Liberar recursos en memoria                                                                                              |\n| Destruir sesión *(en desuso)*                   | `destroy()`                                                                                       | Use `disconnect()` en su lugar                                                                                           |\n| Eliminar sesión                                 | `deleteSession()`                                                                                 | Quitar del almacenamiento                                                                                                |\n| Enumerar las sesiones                           | `listSessions()`                                                                                  | Todas las sesiones almacenadas                                                                                           |\n| Obtención de la última sesión                   | `getLastSessionId()`                                                                              | Para un currículum rápido                                                                                                |\n| Obtener sesión en primer plano                  | `getForegroundSessionId()`                                                                        | Coordinación de varias sesiones                                                                                          |\n| Establecer sesión en primer plano               | `setForegroundSessionId()`                                                                        | Coordinación de varias sesiones                                                                                          |\n| **Messaging**                                   |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Enviar mensaje                                  | `send()`                                                                                          | Con datos adjuntos                                                                                                       |\n| Enviar y esperar                                | `sendAndWait()`                                                                                   | Bloques hasta completarse                                                                                                |\n| Dirección (modo inmediato)                      | `send({ mode: \"immediate\" })`                                                                     | Inyectar a mitad de giro sin abortar                                                                                     |\n| Puesta en cola (modo de puesta en cola)         | `send({ mode: \"enqueue\" })`                                                                       | Búfer para el procesamiento secuencial (valor predeterminado)                                                            |\n| Archivos adjuntos                               | `send({ attachments: [{ type: \"file\", path }] })`                                                 | Imágenes codificadas automáticamente y cambiadas de tamaño                                                               |\n| Datos adjuntos de directorio                    | `send({ attachments: [{ type: \"directory\", path }] })`                                            | Adjuntar contexto de directorio                                                                                          |\n| Obtener historial                               | `getEvents()`                                                                                     | Todos los eventos de sesión                                                                                              |\n| Abort                                           | `abort()`                                                                                         | Cancelar solicitud en curso                                                                                              |\n| **Herramientas**                                |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Registro de herramientas personalizadas         | `registerTools()`                                                                                 | Compatibilidad completa con el esquema JSON                                                                              |\n| Control de permisos de herramientas             |                                                                                                   |                                                                                                                          |\n| `onPreToolUse` enlace                           | Permitir/denegar/preguntar                                                                        |                                                                                                                          |\n| Modificación del resultado de la herramienta    |                                                                                                   |                                                                                                                          |\n| `onPostToolUse` enlace                          | Transformación de los resultados                                                                  |                                                                                                                          |\n| Herramientas disponibles o excluidas            |                                                                                                   |                                                                                                                          |\n| `availableTools`, `excludedTools` configuración | Herramientas de filtro                                                                            |                                                                                                                          |\n| **Modelos**                                     |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Enumeración de modelos                          | `listModels()`                                                                                    | Con funcionalidades, facturación y políticas                                                                             |\n| Establecer modelo (en la creación)              |                                                                                                   |                                                                                                                          |\n| `model` en la configuración de sesión           | Por sesión                                                                                        |                                                                                                                          |\n| Modelo de conmutador (mediados de sesión)       | `session.setModel()`                                                                              | También a través de `session.rpc.model.switchTo()`                                                                       |\n| Obtención del modelo actual                     | `session.rpc.model.getCurrent()`                                                                  | Consulta del modelo activo                                                                                               |\n| Esfuerzo de razonamiento                        |                                                                                                   |                                                                                                                          |\n| `reasoningEffort` configuración                 | Para los modelos admitidos                                                                        |                                                                                                                          |\n| **Modo de agente**                              |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Obtener el modo actual                          | `session.rpc.mode.get()`                                                                          | Devuelve el modo actual.                                                                                                 |\n| Establecer modo                                 | `session.rpc.mode.set()`                                                                          | Cambiar entre modos                                                                                                      |\n| **Administración de planes**                    |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Leer plan                                       | `session.rpc.plan.read()`                                                                         | Obtén el contenido y la ruta de acceso de plan.md                                                                        |\n| Actualizar plan                                 | `session.rpc.plan.update()`                                                                       | Escribir el contenido del archivo plan.md                                                                                |\n| Eliminar el plan                                | `session.rpc.plan.delete()`                                                                       | Eliminar plan.md                                                                                                         |\n| **Archivos del área de trabajo**.               |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Enumerar archivos del área de trabajo           | `session.rpc.workspace.listFiles()`                                                               | Archivos en el área de trabajo de sesión                                                                                 |\n| Leer el archivo del área de trabajo             | `session.rpc.workspace.readFile()`                                                                | Leer el contenido de archivos                                                                                            |\n| Crear archivo de área de trabajo                | `session.rpc.workspace.createFile()`                                                              | Creación de un archivo en el área de trabajo                                                                             |\n| **Autenticación**                               |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Obtención del estado de autenticación           | `getAuthStatus()`                                                                                 | Comprobación del estado de inicio de sesión                                                                              |\n| Uso del token                                   |                                                                                                   |                                                                                                                          |\n| Opción `gitHubToken`                            | Autenticación mediante programación                                                               |                                                                                                                          |\n| **Conectividad**                                |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Ping                                            | `client.ping()`                                                                                   | Verificación de salud con marca de tiempo del servidor                                                                   |\n| Obtención del estado del servidor               | `client.getStatus()`                                                                              | Información del servidor y la versión del protocolo                                                                      |\n| **Servidores MCP**                              |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Servidores locales/stdio                        |                                                                                                   |                                                                                                                          |\n| `mcpServers` configuración                      | Generar procesos                                                                                  |                                                                                                                          |\n| HTTP/SSE remoto                                 |                                                                                                   |                                                                                                                          |\n| `mcpServers` configuración                      | Conexión a los servicios                                                                          |                                                                                                                          |\n| **Hooks**                                       |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Uso previo a la herramienta                     | `onPreToolUse`                                                                                    | Permisos para modificar argumentos                                                                                       |\n| Uso posterior de la herramienta (éxito)         | `onPostToolUse`                                                                                   | Modificación de los resultados                                                                                           |\n| Uso posterior a la herramienta (error)          | `onPostToolUseFailure`                                                                            | Observar las llamadas a herramientas con errores, insertar instrucciones de reintento                                    |\n| Indicador de usuario                            | `onUserPromptSubmitted`                                                                           | Modificación de avisos                                                                                                   |\n| Inicio y finalización de la sesión              |                                                                                                   |                                                                                                                          |\n| `onSessionStart`, `onSessionEnd`                | Ciclo de vida con origen o motivo                                                                 |                                                                                                                          |\n| Gestión de errores                              | `onErrorOccurred`                                                                                 | Control personalizado                                                                                                    |\n| **Eventos**                                     |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Todos los eventos de sesión                     |                                                                                                   |                                                                                                                          |\n| `on()`, `once()`                                | Más de 40 tipos de eventos                                                                        |                                                                                                                          |\n| Streaming                                       | `streaming: true`                                                                                 | Eventos delta                                                                                                            |\n| **Configuración de sesión**                     |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Agentes personalizados                          |                                                                                                   |                                                                                                                          |\n| `customAgents` configuración                    | Definición de agentes especializados                                                              |                                                                                                                          |\n| Mensaje del sistema                             |                                                                                                   |                                                                                                                          |\n| `systemMessage` configuración                   | Anexar o reemplazar                                                                               |                                                                                                                          |\n| Proveedor personalizado                         |                                                                                                   |                                                                                                                          |\n| `provider` configuración                        | Compatibilidad con BYOK                                                                           |                                                                                                                          |\n| Sesiones infinitas                              |                                                                                                   |                                                                                                                          |\n| `infiniteSessions` configuración                | Compactación automática                                                                           |                                                                                                                          |\n| Controlador de permisos                         | `onPermissionRequest`                                                                             | Aprobar o rechazar solicitudes; opcionalmente, adjuntar un `decisionContext` para la telemetría de aprobación automática |\n| Controlador de entrada de usuario               | `onUserInputRequest`                                                                              | Gestionar ask\\_user                                                                                                      |\n| Habilidades                                     |                                                                                                   |                                                                                                                          |\n| `skillDirectories` configuración                | Aptitudes personalizadas                                                                          |                                                                                                                          |\n| Aptitudes deshabilitadas                        |                                                                                                   |                                                                                                                          |\n| `disabledSkills` configuración                  | Deshabilitar habilidades específicas                                                              |                                                                                                                          |\n| Directorio de configuración                     |                                                                                                   |                                                                                                                          |\n| `configDir` configuración                       | Invalidar la ubicación de configuración predeterminada                                            |                                                                                                                          |\n| Nombre de cliente                               |                                                                                                   |                                                                                                                          |\n| `clientName` configuración                      | Identificación de la aplicación en User-Agent                                                     |                                                                                                                          |\n| Directorio de trabajo                           |                                                                                                   |                                                                                                                          |\n| `workingDirectory` configuración                | Establecer el cwd de la sesión                                                                    |                                                                                                                          |\n| Directorios adicionales                         |                                                                                                   |                                                                                                                          |\n| `additionalDirectories` configuración           | Conceder acceso a la sesión más allá del directorio de trabajo; volver a proporcionar al reanudar |                                                                                                                          |\n| **Experimental**                                |                                                                                                   |                                                                                                                          |\n|                                                 |                                                                                                   |                                                                                                                          |\n| Administración de agentes                       | `session.rpc.agent.*`                                                                             | Lista, seleccionar, deseleccionar, obtener agente actual                                                                 |\n| Modo flota                                      | `session.rpc.fleet.start()`                                                                       | Ejecución paralela del subagente; consulte [Modo flota](/es/copilot/how-tos/copilot-sdk/features/fleet-mode)             |\n| Compactación manual                             | `session.rpc.history.compact()`                                                                   | Active la compactación bajo demanda                                                                                      |\n| Eliminación de contexto                         | `session.rpc.history.clearContext()`                                                              | Reemplazar el contexto de conversación desde una herramienta de terminal                                                 |\n| Truncamiento del historial                      | `session.rpc.history.truncate()`                                                                  | Eliminar eventos a partir de un punto                                                                                    |\n| Duplicación de sesión                           | `server.rpc.sessions.fork()`                                                                      | Bifurcar una sesión en un momento del historial                                                                          |\n\n### ❌ No disponible en el SDK (solo la CLI)\n\n| Feature                                         | Comando o opción de la CLI                          | Reason                                                                |\n| ----------------------------------------------- | --------------------------------------------------- | --------------------------------------------------------------------- |\n| **Exportación de sesión**                       |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Exportar a archivo                              |                                                     |                                                                       |\n| `--share`, `/share`                             | No en el protocolo                                  |                                                                       |\n| Exportar a gist de GitHub                       |                                                     |                                                                       |\n| `--share-gist`, `/share gist`                   | No en el protocolo                                  |                                                                       |\n| **Interfaz de usuario interactiva**             |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Comandos de barra diagonal                      |                                                     |                                                                       |\n| `/help`, `/clear`, `/exit`, etc.                | Solo TUI                                            |                                                                       |\n| Cuadro de diálogo selector de agente            | `/agent`                                            | Interfaz de usuario interactiva                                       |\n| Cuadro de diálogo de modo diff                  | `/diff`                                             | Interfaz de usuario interactiva                                       |\n| Cuadro de diálogo de comentarios                | `/feedback`                                         | Interfaz de usuario interactiva                                       |\n| Selector de temas                               | `/theme`                                            | Interfaz de usuario del terminal                                      |\n| Selector de modelos                             | `/model`                                            | Interfaz de usuario interactiva (use el SDK `setModel()` en su lugar) |\n| Copiar al Portapapeles                          | `/copy`                                             | Específico del terminal                                               |\n| Administración de contexto                      | `/context`                                          | Interfaz de usuario interactiva                                       |\n| **Investigación e historia**                    |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Investigación profunda                          | `/research`                                         | Flujo de trabajo de TUI con búsqueda web                              |\n| Herramientas de historial de sesiones           | `/chronicle`                                        | Standup, consejos, mejorar, reindexar                                 |\n| **Características del terminal**                |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Salida de color                                 | `--no-color`                                        | Específico del terminal                                               |\n| Modo de lector de pantalla                      | `--screen-reader`                                   | Accessibility                                                         |\n| Representación de diferencias enriquecidas      | `--plain-diff`                                      | Representación del terminal                                           |\n| Banner de inicio                                | `--banner`                                          | Elemento Visual                                                       |\n| Modo de transmisión                             | `/streamer-mode`                                    | Modo de presentación de TUI                                           |\n| Búfer de pantalla alternativo                   |                                                     |                                                                       |\n| `--alt-screen`, `--no-alt-screen`               | Representación del terminal                         |                                                                       |\n| Compatibilidad con el mouse                     |                                                     |                                                                       |\n| `--mouse`, `--no-mouse`                         | Entrada del terminal                                |                                                                       |\n| **Accesos directos de rutas y permisos**        |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Permitir todas las rutas de acceso              | `--allow-all-paths`                                 | Uso del controlador de permisos                                       |\n| Permitir todas las direcciones URL              | `--allow-all-urls`                                  | Uso del controlador de permisos                                       |\n| Permitir todos los permisos                     |                                                     |                                                                       |\n| `--yolo`, , `--allow-all`, `/allow-all`         | Uso del controlador de permisos                     |                                                                       |\n| Permisos de herramientas granulares             |                                                     |                                                                       |\n| `--allow-tool`, `--deny-tool`                   | Uso del `onPreToolUse` gancho                       |                                                                       |\n| Control de acceso URL                           |                                                     |                                                                       |\n| `--allow-url`, `--deny-url`                     | Uso del controlador de permisos                     |                                                                       |\n| Restablecimiento de las herramientas permitidas | `/reset-allowed-tools`                              | Comando TUI                                                           |\n| **Administración de directorios**               |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Agregar directorio                              |                                                     |                                                                       |\n| `/add-dir`, `--add-dir`                         | Configurar durante la sesión                        |                                                                       |\n| Enumerar directorios                            | `/list-dirs`                                        | Comando TUI                                                           |\n| Cambio de directorio                            | `/cwd`                                              | Comando TUI                                                           |\n| **Plugin/MCP Management**                       |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Comandos de complementos                        | `/plugin`                                           | Administración interactiva                                            |\n| Administración del servidor MCP                 | `/mcp`                                              | Interfaz de usuario interactiva                                       |\n| **Administración de cuentas**                   |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Flujo de inicio de sesión                       |                                                     |                                                                       |\n| `/login`, `copilot auth login`                  | Flujo de dispositivo OAuth                          |                                                                       |\n| Cerrar sesión                                   |                                                     |                                                                       |\n| `/logout`, `copilot auth logout`                | CLI directo                                         |                                                                       |\n| Información del usuario                         | `/user`                                             | Comando TUI                                                           |\n| **Operaciones de sesión**                       |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Borrar conversación                             | `/clear`                                            | Solo TUI                                                              |\n| Vista en planta                                 | `/plan`                                             | Solo TUI (use el SDK `session.rpc.plan.*` en su lugar)                |\n| Administración de sesiones                      |                                                     |                                                                       |\n| `/session`, , `/resume`, `/rename`              | Flujo de trabajo de TUI                             |                                                                       |\n| Modo de flota (interactivo)                     | `/fleet`                                            | Solo TUI (use el SDK `session.rpc.fleet.start()` en su lugar)         |\n| **Administración de aptitudes**                 |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Administrar habilidades                         | `/skills`                                           | Interfaz de usuario interactiva                                       |\n| **Administración de tareas**                    |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Ver tareas en segundo plano                     | `/tasks`                                            | Comando TUI                                                           |\n| **Uso y estadísticas**                          |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Uso de tokens                                   | `/usage`                                            | Suscribirse a eventos de uso                                          |\n| **Revisión del código**                         |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Revisión de los cambios                         | `/review`                                           | Comando TUI                                                           |\n| **Delegación**                                  |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Delegado a Relaciones Públicas                  | `/delegate`                                         | Flujo de trabajo de TUI                                               |\n| **Configuración del terminal**                  |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Integración de Shell                            | `/terminal-setup`                                   | Específico del shell                                                  |\n| **Desarrollo**                                  |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Alternar el modo experimental                   |                                                     |                                                                       |\n| `/experimental`, `--experimental`               | Bandera en tiempo de ejecución                      |                                                                       |\n| Control de instrucciones personalizadas         | `--no-custom-instructions`                          | Marca de la CLI                                                       |\n| Diagnóstico de la sesión                        | `/diagnose`                                         | Comando TUI                                                           |\n| Ver o administrar instrucciones                 | `/instructions`                                     | Comando TUI                                                           |\n| Recopilación de registros de depuración         | `/collect-debug-logs`                               | Herramienta de diagnóstico                                            |\n| Volver a indexar el área de trabajo             | `/reindex`                                          | Comando TUI                                                           |\n| Integración del IDE                             | `/ide`                                              | Flujo de trabajo específico del IDE                                   |\n| **Modo no interactivo**                         |                                                     |                                                                       |\n|                                                 |                                                     |                                                                       |\n| Modo de aviso                                   |                                                     |                                                                       |\n| `-p`, `--prompt`                                | Ejecución de un solo intento                        |                                                                       |\n| Aviso interactivo                               |                                                     |                                                                       |\n| `-i`, `--interactive`                           | Ejecución automática y, a continuación, interactiva |                                                                       |\n| Salida silenciosa                               |                                                     |                                                                       |\n| `-s`, `--silent`                                | Compatible con scripts                              |                                                                       |\n| Continuar sesión                                | `--continue`                                        | Continuar desde el último punto más reciente                          |\n| Selección del agente                            | `--agent <agent>`                                   | Marca de la CLI                                                       |\n\n## Soluciones alternativas\n\n### Modo flota\n\nEl modo de flota está disponible a través de `session.rpc.fleet.start()` para aplicaciones del SDK que quieran que el entorno de ejecución despliegue subagentes paralelos para un objetivo más amplio. Úselo cuando las subtareas independientes se pueden ejecutar simultáneamente y, a continuación, se resumen mediante la sesión principal. Para obtener una guía completa, consulte [Modo flota](/es/copilot/how-tos/copilot-sdk/features/fleet-mode).\n\n### Exportación de sesión\n\nLa `--share` opción no está disponible a través del SDK. Soluciones alternativas:\n\n1. **Recopilar eventos manualmente** : suscríbase a eventos de sesión y cree su propia exportación:\n\n   ```typescript\n   const events: SessionEvent[] = [];\n   session.on((event) => events.push(event));\n   // ... after conversation ...\n   const messages = await session.getEvents();\n   // Format as markdown yourself\n   ```\n\n2. **Use la CLI directamente para la exportación** : ejecute la CLI con `--share` para las exportaciones puntuales.\n\n### Control de permisos\n\nEl SDK usa un modelo de permisos **de denegación por defecto** . Se deniegan todas las solicitudes de permiso (escrituras de archivos, comandos de shell, capturas de direcciones URL, etc.), a menos que la aplicación proporcione un `onPermissionRequest` controlador.\n\nEn lugar de `--allow-all-paths` o `--yolo`, use el manejador de permisos.\n\n```typescript\nconst session = await client.createSession({\n  onPermissionRequest: approveAll,\n});\n```\n\n### Seguimiento del uso de tokens\n\nEn lugar de suscribirse a eventos de uso `/usage`,\n\n```typescript\nsession.on(\"assistant.usage\", (event) => {\n  console.log(\"Tokens used:\", {\n    input: event.data.inputTokens,\n    output: event.data.outputTokens,\n  });\n});\n```\n\n### Compactación de contexto\n\nEn lugar de `/compact`, configure la compactación automática o desencadene manualmente:\n\n```typescript\n// Automatic compaction via config\nconst session = await client.createSession({\n  infiniteSessions: {\n    enabled: true,\n    backgroundCompactionThreshold: 0.80,  // Start background compaction at 80% context utilization\n    bufferExhaustionThreshold: 0.95,      // Block and compact at 95% context utilization\n  },\n});\n\n// Manual compaction (experimental)\nconst result = await session.rpc.history.compact();\nconsole.log(`Removed ${result.tokensRemoved} tokens, ${result.messagesRemoved} messages`);\n```\n\n> \\[!NOTE]\n> Los umbrales son relaciones de uso de contexto (0,0-1,0), no recuentos absolutos de tokens.\n\n### Administración de planes\n\nLeer y escribir planes de sesión mediante programación:\n\n```typescript\n// Read the current plan\nconst plan = await session.rpc.plan.read();\nif (plan.exists) {\n  console.log(plan.content);\n}\n\n// Update the plan\nawait session.rpc.plan.update({ content: \"# My Plan\\n- Step 1\\n- Step 2\" });\n\n// Delete the plan\nawait session.rpc.plan.delete();\n```\n\n### Encaminamiento de mensajes\n\nInserte un mensaje en el turno LLM actual sin interrumpir:\n\n```typescript\n// Steer the agent mid-turn\nawait session.send({ prompt: \"Focus on error handling first\", mode: \"immediate\" });\n\n// Default: enqueue for next turn\nawait session.send({ prompt: \"Next, add tests\" });\n```\n\n## Limitaciones del protocolo\n\nEl SDK solo puede acceder a las características expuestas a través del protocolo JSON-RPC de la CLI. Si necesita una característica de la CLI que no esté disponible:\n\n1. **Buscar alternativas** : muchas características tienen equivalentes del SDK (consulte las soluciones anteriores)\n2. **Uso directo de la CLI** : para las operaciones puntuales, invoque la CLI.\n3. **Solicita esta función** - Abre una incidencia para solicitar compatibilidad con un protocolo\n\n## Compatibilidad de versiones\n\n| Intervalo de protocolos del SDK | Versión del protocolo de la CLI | Compatibility                             |\n| ------------------------------- | ------------------------------- | ----------------------------------------- |\n| v2-v3                           | v3                              | Soporte completo                          |\n| v2-v3                           | v2                              | Compatible con adaptadores v2 automáticos |\n\nEl SDK negocia las versiones de protocolo con la CLI al iniciarse. El SDK admite las versiones de protocolo de 2 a 3. Al conectarse a un servidor de CLI v2, el SDK adapta automáticamente los mensajes entre `tool.call` y `permission.request` al modelo de eventos v3, sin necesidad de realizar cambios en el código.\n\nCompruebe las versiones en tiempo de ejecución:\n\n```typescript\nconst status = await client.getStatus();\nconsole.log(\"Protocol version:\", status.protocolVersion);\n```\n\n## Consulte también\n\n* [Crea tu primera aplicación con tecnología Copilot](/es/copilot/how-tos/copilot-sdk/getting-started)\n* [Enlaces de sesión](/es/copilot/how-tos/copilot-sdk/hooks/hooks-overview)\n* [Uso de servidores MCP con el SDK de GitHub Copilot](/es/copilot/how-tos/copilot-sdk/features/mcp)\n* [Guía de depuración](/es/copilot/how-tos/copilot-sdk/troubleshooting/debugging)"}