Dropstone Docs

Server

Interagieren Sie mit dem Dropstone-Server über HTTP.

Der Befehl dropstone serve führt einen Headless-HTTP-Server aus, der einen OpenAPI-Endpunkt bereitstellt, den ein Dropstone-Client verwenden kann.


Verwendung

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

Optionen

FlagBeschreibungStandard
--portPort zum Abhören4096
--hostnameHostname zum Abhören127.0.0.1
--mdnsmDNS-Erkennung aktivierenfalse
--mdns-domainBenutzerdefinierter Domänenname für mDNS-Dienstdropstone.local
--corsZusätzliche Browser-Ursprünge zum Zulassen[]

--cors kann mehrmals übergeben werden:

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

Authentifizierung

Setzen Sie DROPSTONE_SERVER_PASSWORD, um den Server mit HTTP-Authentifizierung zu schützen. Der Benutzername ist standardmäßig dropstone, oder setzen Sie DROPSTONE_SERVER_USERNAME, um ihn zu überschreiben. Dies gilt sowohl für dropstone serve als auch für dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Funktionsweise

dropstone serve stellt die Funktionen von Dropstone über einen OpenAPI-3.1-HTTP-Endpunkt bereit. Der gleiche Endpunkt wird verwendet, um das SDK zu generieren.

Verwenden Sie den Server, wenn Sie Dropstone programmgesteuert steuern möchten: von einem Skript, einer CI-Pipeline oder einer eigenen Integration. Die interaktive Sitzung und der Server sind unabhängig. Das Ausführen von dropstone serve startet einen neuen eigenständigen Server, unabhängig davon, ob Sie eine interaktive Sitzung offen haben.

Sie können die Bindungsadresse mit den Flags --hostname und --port überschreiben.


Spezifikation

Der Server veröffentlicht eine OpenAPI-3.1-Spezifikation, die unter folgender Adresse angezeigt werden kann:

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

Zum Beispiel http://localhost:4096/doc. Verwenden Sie die Spezifikation, um Clients zu generieren oder Anfrage- und Antworttypen zu überprüfen. Oder zeigen Sie sie in einem Swagger-Explorer an.


APIs

Der Dropstone-Server stellt die folgenden APIs bereit.


Global

MethodePfadBeschreibungAntwort
GET/global/healthServerzustand und Version abrufen{ healthy: true, version: string }
GET/global/eventGlobale Ereignisse abrufen (SSE-Stream)Ereignis-Stream

Projekt

MethodePfadBeschreibungAntwort
GET/projectAlle Projekte auflistenProject[]
GET/project/currentAktuelles Projekt abrufenProject

Pfad & VCS

MethodePfadBeschreibungAntwort
GET/pathAktuellen Pfad abrufenPath
GET/vcsVCS-Informationen für das aktuelle Projekt abrufenVcsInfo

Konfiguration

MethodePfadBeschreibungAntwort
GET/configKonfigurationsinformationen abrufenConfig
PATCH/configKonfiguration aktualisierenConfig

Sitzungen

MethodePfadBeschreibungHinweise
GET/sessionAlle Sitzungen auflistenGibt Session[] zurück
POST/sessionNeue Sitzung erstellenbody: { parentID?, title? }, gibt Session zurück
GET/session/statusSitzungsstatus für alle Sitzungen abrufenGibt { [sessionID: string]: SessionStatus } zurück
GET/session/:idSitzungsdetails abrufenGibt Session zurück
DELETE/session/:idSitzung und alle ihre Daten löschenGibt boolean zurück
PATCH/session/:idSitzungseigenschaften aktualisierenbody: { title? }, gibt Session zurück
GET/session/:id/childrenUntergeordnete Sitzungen einer Sitzung abrufenGibt Session[] zurück
GET/session/:id/todoTodo-Liste für eine Sitzung abrufenGibt Todo[] zurück
POST/session/:id/initApp analysieren und AGENTS.md erstellenbody: { messageID, providerID, modelID }, gibt boolean zurück
POST/session/:id/forkVorhandene Sitzung bei einer Nachricht verzweigenbody: { messageID? }, gibt Session zurück
POST/session/:id/abortLaufende Sitzung abbrechenGibt boolean zurück
GET/session/:id/diffDiff für diese Sitzung abrufenquery: messageID?, gibt FileDiff[] zurück
POST/session/:id/summarizeSitzung zusammenfassenbody: { providerID, modelID }, gibt boolean zurück
POST/session/:id/revertNachricht rückgängig machenbody: { messageID, partID? }, gibt boolean zurück
POST/session/:id/unrevertAlle rückgängig gemachten Nachrichten wiederherstellenGibt boolean zurück
POST/session/:id/permissions/:permissionIDAuf Berechtigungsanfrage antwortenbody: { response, remember? }, gibt boolean zurück

Nachrichten

MethodePfadBeschreibungHinweise
GET/session/:id/messageNachrichten in einer Sitzung auflistenquery: limit?, gibt { info: Message, parts: Part[]}[] zurück
POST/session/:id/messageNachricht senden und auf Antwort wartenbody: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, gibt { info: Message, parts: Part[]} zurück
GET/session/:id/message/:messageIDNachrichtendetails abrufenGibt { info: Message, parts: Part[]} zurück
POST/session/:id/prompt_asyncNachricht asynchron senden (kein Warten)body: wie /session/:id/message, gibt 204 No Content zurück
POST/session/:id/commandSchrägstrich-Befehl ausführenbody: { messageID?, agent?, model?, command, arguments }, gibt { info: Message, parts: Part[]} zurück
POST/session/:id/shellShell-Befehl ausführenbody: { agent, model?, command }, gibt { info: Message, parts: Part[]} zurück

Befehle

MethodePfadBeschreibungAntwort
GET/commandAlle Befehle auflistenCommand[]

Dateien

MethodePfadBeschreibungAntwort
GET/find?pattern=<pat>Text in Dateien suchenArray von Match-Objekten mit path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Dateien und Verzeichnisse nach Name suchenstring[] (Pfade)
GET/find/symbol?query=<q>Workspace-Symbole suchenSymbol[]
GET/file?path=<path>Dateien und Verzeichnisse auflistenFileNode[]
GET/file/content?path=<p>Datei lesenFileContent
GET/file/statusStatus für nachverfolgten Dateien abrufenFile[]

/find/file Abfrageparameter

  • query (erforderlich): Suchzeichenfolge (Fuzzy-Matching)
  • type (optional): Ergebnisse auf "file" oder "directory" begrenzen
  • directory (optional): Projektstamm für die Suche überschreiben
  • limit (optional): maximale Ergebnisse (1–200)
  • dirs (optional): Legacy-Flag ("false" gibt nur Dateien zurück)

LSP, Formatter & MCP

MethodePfadBeschreibungAntwort
GET/lspLSP-Serverstatus abrufenLSPStatus[]
GET/formatterFormatter-Status abrufenFormatterStatus[]
GET/mcpMCP-Serverstatus abrufen{ [name: string]: MCPStatus }
POST/mcpMCP-Server dynamisch hinzufügenbody: { name, config }, gibt MCP-Statusobjekt zurück

Agenten

MethodePfadBeschreibungAntwort
GET/agentAlle verfügbaren Agenten auflistenAgent[]

Protokollierung

MethodePfadBeschreibungAntwort
POST/logProtokolleintrag schreiben. Body: { service, level, message, extra? }boolean

Authentifizierung

MethodePfadBeschreibungAntwort
PUT/auth/:idAuthentifizierungsdaten für das angegebene Ziel festlegen.boolean

Ereignisse

MethodePfadBeschreibungAntwort
GET/eventServer-Sent-Events-Stream. Erstes Ereignis ist server.connected, dann Bus-EreignisseServer-Sent-Events-Stream

Dokumentation

MethodePfadBeschreibungAntwort
GET/docOpenAPI-3.1-SpezifikationHTML-Seite mit OpenAPI-Spezifikation
Strg+I