Dropstone Docs

Servidor

Interaja com o servidor dropstone via HTTP.

O comando dropstone serve executa um servidor HTTP headless que expõe um endpoint OpenAPI que um cliente Dropstone pode usar.


Uso

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

Opções

FlagDescriçãoPadrão
--portPorta para escutar4096
--hostnameNome do host para escutar127.0.0.1
--mdnsAtivar descoberta mDNSfalse
--mdns-domainNome de domínio customizado para mDNSdropstone.local
--corsOrigens de navegador adicionais permitidas[]

--cors pode ser passado múltiplas vezes:

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

Autenticação

Defina DROPSTONE_SERVER_PASSWORD para proteger o servidor com autenticação HTTP básica. O nome de usuário padrão é dropstone, ou defina DROPSTONE_SERVER_USERNAME para sobrescrevê-lo. Isso se aplica tanto a dropstone serve quanto a dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Como funciona

dropstone serve expõe as capacidades do Dropstone por um endpoint HTTP OpenAPI 3.1. O mesmo endpoint é usado para gerar o SDK.

Use o servidor quando quiser dirigir o Dropstone programaticamente: a partir de um script, um pipeline de CI, ou uma integração sua. A sessão interativa e o servidor são independentes. Executar dropstone serve inicia um servidor standalone novo, independentemente de você ter uma sessão interativa aberta.

Você pode sobrescrever o endereço de bind com as flags --hostname e --port flags.


Especificação

O servidor publica uma especificação OpenAPI 3.1 que pode ser visualizada em:

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

Por exemplo, http://localhost:4096/doc. Use a especificação para gerar clientes ou inspecionar tipos de requisição e resposta. Ou visualize-a em um explorador Swagger.


APIs

O servidor dropstone expõe as seguintes APIs.


Global

MétodoCaminhoDescriçãoResposta
GET/global/healthObter saúde e versão do servidor{ healthy: true, version: string }
GET/global/eventObter eventos globais (fluxo SSE)Fluxo de eventos

Projeto

MétodoCaminhoDescriçãoResposta
GET/projectListar todos os projetosProject[]
GET/project/currentObter o projeto atualProject

Caminho & VCS

MétodoCaminhoDescriçãoResposta
GET/pathObter o caminho atualPath
GET/vcsObter informações de VCS do projeto atualVcsInfo

Config

MétodoCaminhoDescriçãoResposta
GET/configObter informações de configConfig
PATCH/configAtualizar configConfig

Sessões

MétodoCaminhoDescriçãoNotas
GET/sessionListar todas as sessõesRetorna Session[]
POST/sessionCriar uma nova sessãocorpo: { parentID?, title? }, retorna Session
GET/session/statusObter status da sessão para todas as sessõesRetorna { [sessionID: string]: SessionStatus }
GET/session/:idObter detalhes da sessãoRetorna Session
DELETE/session/:idDeletar uma sessão e todos seus dadosRetorna boolean
PATCH/session/:idAtualizar propriedades da sessãocorpo: { title? }, retorna Session
GET/session/:id/childrenObter sessões filhas de uma sessãoRetorna Session[]
GET/session/:id/todoObter a lista de tarefas de uma sessãoRetorna Todo[]
POST/session/:id/initAnalisar app e criar AGENTS.mdcorpo: { messageID, providerID, modelID }, retorna boolean
POST/session/:id/forkFazer fork de uma sessão existente em uma mensagemcorpo: { messageID? }, retorna Session
POST/session/:id/abortAbortar uma sessão em execuçãoRetorna boolean
GET/session/:id/diffObter o diff desta sessãoquery: messageID?, retorna FileDiff[]
POST/session/:id/summarizeResumir a sessãocorpo: { providerID, modelID }, retorna boolean
POST/session/:id/revertReverter uma mensagemcorpo: { messageID, partID? }, retorna boolean
POST/session/:id/unrevertRestaurar todas as mensagens revertidasRetorna boolean
POST/session/:id/permissions/:permissionIDResponder a uma solicitação de permissãocorpo: { response, remember? }, retorna boolean

Mensagens

MétodoCaminhoDescriçãoNotas
GET/session/:id/messageListar mensagens em uma sessãoquery: limit?, retorna { info: Message, parts: Part[]}[]
POST/session/:id/messageEnviar uma mensagem e aguardar respostacorpo: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, retorna { info: Message, parts: Part[]}
GET/session/:id/message/:messageIDObter detalhes da mensagemRetorna { info: Message, parts: Part[]}
POST/session/:id/prompt_asyncEnviar uma mensagem assincronamente (sem aguardar)corpo: igual a /session/:id/message, retorna 204 No Content
POST/session/:id/commandExecutar um comando slashcorpo: { messageID?, agent?, model?, command, arguments }, retorna { info: Message, parts: Part[]}
POST/session/:id/shellExecutar um comando shellcorpo: { agent, model?, command }, retorna { info: Message, parts: Part[]}

Comandos

MétodoCaminhoDescriçãoResposta
GET/commandListar todos os comandosCommand[]

Arquivos

MétodoCaminhoDescriçãoResposta
GET/find?pattern=<pat>Procurar texto em arquivosArray de objetos de correspondência com path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Encontrar arquivos e diretórios por nomestring[] (caminhos)
GET/find/symbol?query=<q>Encontrar símbolos do workspaceSymbol[]
GET/file?path=<path>Listar arquivos e diretóriosFileNode[]
GET/file/content?path=<p>Ler um arquivoFileContent
GET/file/statusObter status para arquivos rastreadosFile[]

Parâmetros de query /find/file

  • query (obrigatório): string de busca (correspondência difusa)
  • type (opcional): limitar resultados a "file" ou "directory"
  • directory (opcional): sobrescrever a raiz do projeto para a busca
  • limit (opcional): máximo de resultados (1–200)
  • dirs (opcional): flag legada ("false" retorna apenas arquivos)

LSP, Formatadores & MCP

MétodoCaminhoDescriçãoResposta
GET/lspObter status do servidor LSPLSPStatus[]
GET/formatterObter status do formatadorFormatterStatus[]
GET/mcpObter status do servidor MCP{ [name: string]: MCPStatus }
POST/mcpAdicionar servidor MCP dinamicamentecorpo: { name, config }, retorna objeto de status MCP

Agentes

MétodoCaminhoDescriçãoResposta
GET/agentListar todos os agentes disponíveisAgent[]

Logging

MétodoCaminhoDescriçãoResposta
POST/logEscrever entrada de log. Corpo: { service, level, message, extra? }boolean

Auth

MétodoCaminhoDescriçãoResposta
PUT/auth/:idDefinir credenciais de autenticação para o alvo fornecido.boolean

Eventos

MétodoCaminhoDescriçãoResposta
GET/eventFluxo de eventos enviados pelo servidor. Primeiro evento é server.connected, depois eventos do barramentoFluxo de eventos enviados pelo servidor

Docs

MétodoCaminhoDescriçãoResposta
GET/docEspecificação OpenAPI 3.1Página HTML com especificação OpenAPI
Ctrl+I