Dropstone Docs

Сервер

Взаимодействие с сервером dropstone через HTTP.

Команда dropstone serve запускает автономный HTTP-сервер, который предоставляет OpenAPI endpoint, который может использовать клиент Dropstone.


Использование

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

Опции

ФлагОписаниеПо умолчанию
--portПорт для прослушивания4096
--hostnameИмя хоста для прослушивания127.0.0.1
--mdnsВключить обнаружение mDNSfalse
--mdns-domainПользовательское имя домена для mDNSdropstone.local
--corsДополнительные источники браузера[]

--cors можно передать несколько раз:

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

Аутентификация

Установите DROPSTONE_SERVER_PASSWORD для защиты сервера с помощью HTTP basic auth. Имя пользователя по умолчанию — dropstone, или установите DROPSTONE_SERVER_USERNAME для переопределения. Это применяется как к dropstone serve, так и к dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Как это работает

dropstone serve предоставляет возможности Dropstone через OpenAPI 3.1 HTTP endpoint. Тот же endpoint используется для создания SDK.

Используйте сервер, когда вы хотите управлять Dropstone программно: из скрипта, конвейера CI или собственной интеграции. Интерактивная сессия и сервер независимы друг от друга. Запуск dropstone serve запускает новый автономный сервер независимо от того, открыта ли у вас интерактивная сессия.

Вы можете переопределить адрес привязки с помощью флагов --hostname и --port flags.


Спецификация

Сервер публикует спецификацию OpenAPI 3.1, которую можно просмотреть по адресу:

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

Например, http://localhost:4096/doc. Используйте спецификацию для создания клиентов или проверки типов запросов и ответов. Или просмотрите её в Swagger explorer.


API

Сервер dropstone предоставляет следующие API.


Global

МетодПутьОписаниеОтвет
GET/global/healthПолучить здоровье и версию сервера{ healthy: true, version: string }
GET/global/eventПолучить глобальные события (SSE)Поток событий

Project

МетодПутьОписаниеОтвет
GET/projectСписок всех проектовProject[]
GET/project/currentПолучить текущий проектProject

Path & VCS

МетодПутьОписаниеОтвет
GET/pathПолучить текущий путьPath
GET/vcsПолучить информацию VCS текущего проектаVcsInfo

Config

МетодПутьОписаниеОтвет
GET/configПолучить конфигConfig
PATCH/configОбновить конфигConfig

Sessions

МетодПутьОписаниеПримечания
GET/sessionСписок всех сессийВозвращает Session[]
POST/sessionСоздать новую сессиюbody: { parentID?, title? }, возвращает Session
GET/session/statusПолучить статус сессии для всех сессийВозвращает { [sessionID: string]: SessionStatus }
GET/session/:idПолучить детали сессииВозвращает Session
DELETE/session/:idУдалить сессию и все её данныеВозвращает boolean
PATCH/session/:idОбновить свойства сессииbody: { title? }, возвращает Session
GET/session/:id/childrenПолучить дочерние сессииВозвращает Session[]
GET/session/:id/todoПолучить список задач для сессииВозвращает Todo[]
POST/session/:id/initАнализировать приложение и создать AGENTS.mdbody: { messageID, providerID, modelID }, возвращает boolean
POST/session/:id/forkРазветвить существующую сессиюbody: { messageID? }, возвращает Session
POST/session/:id/abortПрервать работающую сессиюВозвращает boolean
GET/session/:id/diffПолучить diff для этой сессииquery: messageID?, возвращает FileDiff[]
POST/session/:id/summarizeСуммировать сессиюbody: { providerID, modelID }, возвращает boolean
POST/session/:id/revertОтменить сообщениеbody: { messageID, partID? }, возвращает boolean
POST/session/:id/unrevertВосстановить все отменённые сообщенияВозвращает boolean
POST/session/:id/permissions/:permissionIDОтветить на запрос разрешенияbody: { response, remember? }, возвращает boolean

Messages

МетодПутьОписаниеПримечания
GET/session/:id/messageСписок сообщений в сессииquery: limit?, возвращает { info: Message, parts: Part[]}[]
POST/session/:id/messageОтправить сообщение и ждать ответаbody: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, возвращает { info: Message, parts: Part[]}
GET/session/:id/message/:messageIDПолучить детали сообщенияВозвращает { info: Message, parts: Part[]}
POST/session/:id/prompt_asyncОтправить сообщение асинхронно (без ожидания)body: то же, что /session/:id/message, возвращает 204 No Content
POST/session/:id/commandВыполнить slash командуbody: { messageID?, agent?, model?, command, arguments }, возвращает { info: Message, parts: Part[]}
POST/session/:id/shellЗапустить shell командуbody: { agent, model?, command }, возвращает { info: Message, parts: Part[]}

Commands

МетодПутьОписаниеОтвет
GET/commandСписок всех командCommand[]

Files

МетодПутьОписаниеОтвет
GET/find?pattern=<pat>Поиск текста в файлахМассив объектов совпадений с path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Поиск файлов и директорий по имениstring[] (пути)
GET/find/symbol?query=<q>Поиск символов рабочей областиSymbol[]
GET/file?path=<path>Список файлов и директорийFileNode[]
GET/file/content?path=<p>Чтение файлаFileContent
GET/file/statusПолучить статус отслеживаемых файловFile[]

Параметры запроса /find/file

  • query (обязательно): строка поиска (нечёткое совпадение)
  • type (опционально): ограничить результаты на "file" или "directory"
  • directory (опционально): переопределить корень проекта для поиска
  • limit (опционально): максимум результатов (1–200)
  • dirs (опционально): устаревший флаг ("false" возвращает только файлы)

LSP, Formatters & MCP

МетодПутьОписаниеОтвет
GET/lspПолучить статус LSP сервераLSPStatus[]
GET/formatterПолучить статус форматтераFormatterStatus[]
GET/mcpПолучить статус MCP сервера{ [name: string]: MCPStatus }
POST/mcpДобавить MCP сервер динамическиbody: { name, config }, возвращает объект статуса MCP

Agents

МетодПутьОписаниеОтвет
GET/agentСписок всех доступных агентовAgent[]

Logging

МетодПутьОписаниеОтвет
POST/logЗаписать запись логирования. Body: { service, level, message, extra? }boolean

Auth

МетодПутьОписаниеОтвет
PUT/auth/:idУстановить учётные данные аутентификации для целевого объекта.boolean

Events

МетодПутьОписаниеОтвет
GET/eventПоток Server-sent events. Первое событие — server.connected, затем события шиныПоток Server-sent events

Docs

МетодПутьОписаниеОтвет
GET/docСпецификация OpenAPI 3.1HTML страница со спецификацией OpenAPI
Ctrl+I