Dropstone Docs

Servidor

Interactúa con el servidor de dropstone a través de HTTP.

El comando dropstone serve ejecuta un servidor HTTP sin interfaz que expone un endpoint OpenAPI que un cliente de Dropstone puede utilizar.


Uso

dropstone serve [--port <number>] [--hostname <string>] [--cors <origin>]

Opciones

BanderaDescripciónPredeterminado
--portPuerto en el que escuchar4096
--hostnameNombre de host en el que escuchar127.0.0.1
--mdnsHabilitar descubrimiento mDNSfalse
--mdns-domainNombre de dominio personalizado para mDNSdropstone.local
--corsOrígenes de navegador adicionales permitidos[]

--cors se puede pasar varias veces:

dropstone serve --cors http://localhost:5173 --cors https://app.example.com

Autenticación

Establece DROPSTONE_SERVER_PASSWORD para proteger el servidor con autenticación HTTP básica. El nombre de usuario predeterminado es dropstone, o establece DROPSTONE_SERVER_USERNAME para anularlo. Esto se aplica tanto a dropstone serve como a dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Cómo funciona

dropstone serve expone las capacidades de Dropstone a través de un endpoint HTTP OpenAPI 3.1. El mismo endpoint se utiliza para generar el SDK.

Utiliza el servidor cuando desees controlar Dropstone mediante programación: desde un script, una canalización de CI o una integración propia. La sesión interactiva y el servidor son independientes. Ejecutar dropstone serve inicia un servidor independiente nuevo independientemente de si tienes una sesión interactiva abierta.

Puedes anular la dirección de enlace con las banderas --hostname y --port.


Especificación

El servidor publica una especificación OpenAPI 3.1 que se puede ver en:

http://<hostname>:<port>/doc

Por ejemplo, http://localhost:4096/doc. Utiliza la especificación para generar clientes o inspeccionar tipos de solicitud y respuesta. O visualízala en un explorador Swagger.


APIs

El servidor de dropstone expone las siguientes APIs.


Global

MétodoRutaDescripciónRespuesta
GET/global/healthObtener salud y versión del servidor{ healthy: true, version: string }
GET/global/eventObtener eventos globales (flujo SSE)Flujo de eventos

Proyecto

MétodoRutaDescripciónRespuesta
GET/projectListar todos los proyectosProject[]
GET/project/currentObtener el proyecto actualProject

Ruta y VCS

MétodoRutaDescripciónRespuesta
GET/pathObtener la ruta actualPath
GET/vcsObtener información de VCS para el proyecto actualVcsInfo

Configuración

MétodoRutaDescripciónRespuesta
GET/configObtener información de configuraciónConfig
PATCH/configActualizar configuraciónConfig

Sesiones

MétodoRutaDescripciónNotas
GET/sessionListar todas las sesionesDevuelve Session[]
POST/sessionCrear una nueva sesióncuerpo: { parentID?, title? }, devuelve Session
GET/session/statusObtener estado de sesión para todas las sesionesDevuelve { [sessionID: string]: SessionStatus }
GET/session/:idObtener detalles de sesiónDevuelve Session
DELETE/session/:idEliminar una sesión y todos sus datosDevuelve boolean
PATCH/session/:idActualizar propiedades de sesióncuerpo: { title? }, devuelve Session
GET/session/:id/childrenObtener sesiones secundarias de una sesiónDevuelve Session[]
GET/session/:id/todoObtener la lista de tareas pendientes para una sesiónDevuelve Todo[]
POST/session/:id/initAnalizar aplicación y crear AGENTS.mdcuerpo: { messageID, providerID, modelID }, devuelve boolean
POST/session/:id/forkBifurcar una sesión existente en un mensajecuerpo: { messageID? }, devuelve Session
POST/session/:id/abortAbortar una sesión en ejecuciónDevuelve boolean
GET/session/:id/diffObtener el diff para esta sesiónconsulta: messageID?, devuelve FileDiff[]
POST/session/:id/summarizeResumir la sesióncuerpo: { providerID, modelID }, devuelve boolean
POST/session/:id/revertRevertir un mensajecuerpo: { messageID, partID? }, devuelve boolean
POST/session/:id/unrevertRestaurar todos los mensajes revertidosDevuelve boolean
POST/session/:id/permissions/:permissionIDResponder a una solicitud de permisocuerpo: { response, remember? }, devuelve boolean

Mensajes

MétodoRutaDescripciónNotas
GET/session/:id/messageListar mensajes en una sesiónconsulta: limit?, devuelve { info: Message, parts: Part[]}[]
POST/session/:id/messageEnviar un mensaje y esperar respuestacuerpo: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, devuelve { info: Message, parts: Part[]}
GET/session/:id/message/:messageIDObtener detalles del mensajeDevuelve { info: Message, parts: Part[]}
POST/session/:id/prompt_asyncEnviar un mensaje de forma asincrónica (sin espera)cuerpo: igual que /session/:id/message, devuelve 204 No Content
POST/session/:id/commandEjecutar un comando de barra diagonalcuerpo: { messageID?, agent?, model?, command, arguments }, devuelve { info: Message, parts: Part[]}
POST/session/:id/shellEjecutar un comando de shellcuerpo: { agent, model?, command }, devuelve { info: Message, parts: Part[]}

Comandos

MétodoRutaDescripciónRespuesta
GET/commandListar todos los comandosCommand[]

Archivos

MétodoRutaDescripciónRespuesta
GET/find?pattern=<pat>Buscar texto en archivosArray de objetos de coincidencia con path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Buscar archivos y directorios por nombrestring[] (rutas)
GET/find/symbol?query=<q>Buscar símbolos del espacio de trabajoSymbol[]
GET/file?path=<path>Listar archivos y directoriosFileNode[]
GET/file/content?path=<p>Leer un archivoFileContent
GET/file/statusObtener estado para archivos rastreadosFile[]

Parámetros de consulta de /find/file

  • query (requerido): cadena de búsqueda (coincidencia difusa)
  • type (opcional): limitar resultados a "file" o "directory"
  • directory (opcional): anular la raíz del proyecto para la búsqueda
  • limit (opcional): máximo de resultados (1–200)
  • dirs (opcional): bandera heredada ("false" devuelve solo archivos)

LSP, Formateadores y MCP

MétodoRutaDescripciónRespuesta
GET/lspObtener estado del servidor LSPLSPStatus[]
GET/formatterObtener estado del formateadorFormatterStatus[]
GET/mcpObtener estado del servidor MCP{ [name: string]: MCPStatus }
POST/mcpAgregar servidor MCP dinámicamentecuerpo: { name, config }, devuelve objeto de estado MCP

Agentes

MétodoRutaDescripciónRespuesta
GET/agentListar todos los agentes disponiblesAgent[]

Registro

MétodoRutaDescripciónRespuesta
POST/logEscribir entrada de registro. Cuerpo: { service, level, message, extra? }boolean

Autenticación

MétodoRutaDescripciónRespuesta
PUT/auth/:idEstablecer credenciales de autenticación para el destino dado.boolean

Eventos

MétodoRutaDescripciónRespuesta
GET/eventFlujo de eventos enviados por el servidor. El primer evento es server.connected, luego eventos de busFlujo de eventos enviados por el servidor

Documentación

MétodoRutaDescripciónRespuesta
GET/docEspecificación OpenAPI 3.1Página HTML con especificación OpenAPI
Ctrl+I