Dropstone Docs

Server

Berinteraksi dengan dropstone server melalui HTTP.

Perintah dropstone serve menjalankan server HTTP headless yang mengekspos endpoint OpenAPI yang dapat digunakan oleh klien Dropstone.


Penggunaan

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

Opsi

FlagDeskripsiDefault
--portPort untuk mendengarkan4096
--hostnameHostname untuk mendengarkan127.0.0.1
--mdnsAktifkan penemuan mDNSfalse
--mdns-domainNama domain khusus untuk layanan mDNSdropstone.local
--corsAsal browser tambahan yang diizinkan[]

--cors dapat dilewatkan beberapa kali:

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

Autentikasi

Atur DROPSTONE_SERVER_PASSWORD untuk melindungi server dengan HTTP basic auth. Nama pengguna default adalah dropstone, atau atur DROPSTONE_SERVER_USERNAME untuk menggantinya. Ini berlaku untuk dropstone serve dan dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Cara kerjanya

dropstone serve mengekspos kemampuan Dropstone melalui endpoint HTTP OpenAPI 3.1. Endpoint yang sama digunakan untuk menghasilkan SDK.

Gunakan server ketika Anda ingin menjalankan Dropstone secara terprogram: dari skrip, pipeline CI, atau integrasi Anda sendiri. Sesi interaktif dan server bersifat independen. Menjalankan dropstone serve memulai server standalone yang segar terlepas dari apakah Anda memiliki sesi interaktif yang terbuka.

Anda dapat mengganti alamat bind dengan flag --hostname dan --port.


Spesifikasi

Server menerbitkan spesifikasi OpenAPI 3.1 yang dapat dilihat di:

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

Misalnya, http://localhost:4096/doc. Gunakan spesifikasi untuk menghasilkan klien atau memeriksa jenis permintaan dan respons. Atau lihat di penjelajah Swagger.


API

Server dropstone mengekspos API berikut.


Global

MethodPathDeskripsiRespons
GET/global/healthDapatkan kesehatan dan versi server{ healthy: true, version: string }
GET/global/eventDapatkan acara global (aliran SSE)Aliran acara

Proyek

MethodPathDeskripsiRespons
GET/projectDaftar semua proyekProject[]
GET/project/currentDapatkan proyek saat iniProject

Path & VCS

MethodPathDeskripsiRespons
GET/pathDapatkan path saat iniPath
GET/vcsDapatkan info VCS untuk proyek saat iniVcsInfo

Konfigurasi

MethodPathDeskripsiRespons
GET/configDapatkan info konfigurasiConfig
PATCH/configPerbarui konfigurasiConfig

Sesi

MethodPathDeskripsiCatatan
GET/sessionDaftar semua sesiMengembalikan Session[]
POST/sessionBuat sesi barubody: { parentID?, title? }, mengembalikan Session
GET/session/statusDapatkan status sesi untuk semua sesiMengembalikan { [sessionID: string]: SessionStatus }
GET/session/:idDapatkan detail sesiMengembalikan Session
DELETE/session/:idHapus sesi dan semua datanyaMengembalikan boolean
PATCH/session/:idPerbarui properti sesibody: { title? }, mengembalikan Session
GET/session/:id/childrenDapatkan sesi anak dari sesiMengembalikan Session[]
GET/session/:id/todoDapatkan daftar todo untuk sesiMengembalikan Todo[]
POST/session/:id/initAnalisis aplikasi dan buat AGENTS.mdbody: { messageID, providerID, modelID }, mengembalikan boolean
POST/session/:id/forkFork sesi yang ada pada pesanbody: { messageID? }, mengembalikan Session
POST/session/:id/abortBatalkan sesi yang sedang berjalanMengembalikan boolean
GET/session/:id/diffDapatkan diff untuk sesi iniquery: messageID?, mengembalikan FileDiff[]
POST/session/:id/summarizeRingkas sesibody: { providerID, modelID }, mengembalikan boolean
POST/session/:id/revertKembalikan pesanbody: { messageID, partID? }, mengembalikan boolean
POST/session/:id/unrevertPulihkan semua pesan yang dikembalikanMengembalikan boolean
POST/session/:id/permissions/:permissionIDRespons permintaan izinbody: { response, remember? }, mengembalikan boolean

Pesan

MethodPathDeskripsiCatatan
GET/session/:id/messageDaftar pesan dalam sesiquery: limit?, mengembalikan { info: Message, parts: Part[]}[]
POST/session/:id/messageKirim pesan dan tunggu responsbody: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, mengembalikan { info: Message, parts: Part[]}
GET/session/:id/message/:messageIDDapatkan detail pesanMengembalikan { info: Message, parts: Part[]}
POST/session/:id/prompt_asyncKirim pesan secara asinkron (tanpa menunggu)body: sama dengan /session/:id/message, mengembalikan 204 No Content
POST/session/:id/commandJalankan perintah slashbody: { messageID?, agent?, model?, command, arguments }, mengembalikan { info: Message, parts: Part[]}
POST/session/:id/shellJalankan perintah shellbody: { agent, model?, command }, mengembalikan { info: Message, parts: Part[]}

Perintah

MethodPathDeskripsiRespons
GET/commandDaftar semua perintahCommand[]

File

MethodPathDeskripsiRespons
GET/find?pattern=<pat>Cari teks dalam fileArray objek kecocokan dengan path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Temukan file dan direktori berdasarkan namastring[] (paths)
GET/find/symbol?query=<q>Temukan simbol workspaceSymbol[]
GET/file?path=<path>Daftar file dan direktoriFileNode[]
GET/file/content?path=<p>Baca fileFileContent
GET/file/statusDapatkan status untuk file yang dilacakFile[]

Parameter query /find/file

  • query (diperlukan): string pencarian (fuzzy match)
  • type (opsional): batasi hasil ke "file" atau "directory"
  • directory (opsional): ganti root proyek untuk pencarian
  • limit (opsional): hasil maksimal (1–200)
  • dirs (opsional): flag legacy ("false" mengembalikan hanya file)

LSP, Formatter & MCP

MethodPathDeskripsiRespons
GET/lspDapatkan status server LSPLSPStatus[]
GET/formatterDapatkan status formatterFormatterStatus[]
GET/mcpDapatkan status server MCP{ [name: string]: MCPStatus }
POST/mcpTambahkan server MCP secara dinamisbody: { name, config }, mengembalikan objek status MCP

Agen

MethodPathDeskripsiRespons
GET/agentDaftar semua agen yang tersediaAgent[]

Logging

MethodPathDeskripsiRespons
POST/logTulis entri log. Body: { service, level, message, extra? }boolean

Auth

MethodPathDeskripsiRespons
PUT/auth/:idAtur kredensial autentikasi untuk target yang diberikan.boolean

Acara

MethodPathDeskripsiRespons
GET/eventAliran acara yang dikirim server. Acara pertama adalah server.connected, kemudian acara busAliran acara yang dikirim server

Dokumentasi

MethodPathDeskripsiRespons
GET/docSpesifikasi OpenAPI 3.1Halaman HTML dengan spesifikasi OpenAPI
Ctrl+I