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
| Flag | Deskripsi | Default |
|---|
--port | Port untuk mendengarkan | 4096 |
--hostname | Hostname untuk mendengarkan | 127.0.0.1 |
--mdns | Aktifkan penemuan mDNS | false |
--mdns-domain | Nama domain khusus untuk layanan mDNS | dropstone.local |
--cors | Asal 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
| Method | Path | Deskripsi | Respons |
|---|
GET | /global/health | Dapatkan kesehatan dan versi server | { healthy: true, version: string } |
GET | /global/event | Dapatkan acara global (aliran SSE) | Aliran acara |
Proyek
| Method | Path | Deskripsi | Respons |
|---|
GET | /project | Daftar semua proyek | Project[] |
GET | /project/current | Dapatkan proyek saat ini | Project |
Path & VCS
| Method | Path | Deskripsi | Respons |
|---|
GET | /path | Dapatkan path saat ini | Path |
GET | /vcs | Dapatkan info VCS untuk proyek saat ini | VcsInfo |
Konfigurasi
| Method | Path | Deskripsi | Respons |
|---|
GET | /config | Dapatkan info konfigurasi | Config |
PATCH | /config | Perbarui konfigurasi | Config |
Sesi
| Method | Path | Deskripsi | Catatan |
|---|
GET | /session | Daftar semua sesi | Mengembalikan Session[] |
POST | /session | Buat sesi baru | body: { parentID?, title? }, mengembalikan Session |
GET | /session/status | Dapatkan status sesi untuk semua sesi | Mengembalikan { [sessionID: string]: SessionStatus } |
GET | /session/:id | Dapatkan detail sesi | Mengembalikan Session |
DELETE | /session/:id | Hapus sesi dan semua datanya | Mengembalikan boolean |
PATCH | /session/:id | Perbarui properti sesi | body: { title? }, mengembalikan Session |
GET | /session/:id/children | Dapatkan sesi anak dari sesi | Mengembalikan Session[] |
GET | /session/:id/todo | Dapatkan daftar todo untuk sesi | Mengembalikan Todo[] |
POST | /session/:id/init | Analisis aplikasi dan buat AGENTS.md | body: { messageID, providerID, modelID }, mengembalikan boolean |
POST | /session/:id/fork | Fork sesi yang ada pada pesan | body: { messageID? }, mengembalikan Session |
POST | /session/:id/abort | Batalkan sesi yang sedang berjalan | Mengembalikan boolean |
GET | /session/:id/diff | Dapatkan diff untuk sesi ini | query: messageID?, mengembalikan FileDiff[] |
POST | /session/:id/summarize | Ringkas sesi | body: { providerID, modelID }, mengembalikan boolean |
POST | /session/:id/revert | Kembalikan pesan | body: { messageID, partID? }, mengembalikan boolean |
POST | /session/:id/unrevert | Pulihkan semua pesan yang dikembalikan | Mengembalikan boolean |
POST | /session/:id/permissions/:permissionID | Respons permintaan izin | body: { response, remember? }, mengembalikan boolean |
Pesan
| Method | Path | Deskripsi | Catatan |
|---|
GET | /session/:id/message | Daftar pesan dalam sesi | query: limit?, mengembalikan { info: Message, parts: Part[]}[] |
POST | /session/:id/message | Kirim pesan dan tunggu respons | body: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, mengembalikan { info: Message, parts: Part[]} |
GET | /session/:id/message/:messageID | Dapatkan detail pesan | Mengembalikan { info: Message, parts: Part[]} |
POST | /session/:id/prompt_async | Kirim pesan secara asinkron (tanpa menunggu) | body: sama dengan /session/:id/message, mengembalikan 204 No Content |
POST | /session/:id/command | Jalankan perintah slash | body: { messageID?, agent?, model?, command, arguments }, mengembalikan { info: Message, parts: Part[]} |
POST | /session/:id/shell | Jalankan perintah shell | body: { agent, model?, command }, mengembalikan { info: Message, parts: Part[]} |
Perintah
| Method | Path | Deskripsi | Respons |
|---|
GET | /command | Daftar semua perintah | Command[] |
File
| Method | Path | Deskripsi | Respons |
|---|
GET | /find?pattern=<pat> | Cari teks dalam file | Array objek kecocokan dengan path, lines, line_number, absolute_offset, submatches |
GET | /find/file?query=<q> | Temukan file dan direktori berdasarkan nama | string[] (paths) |
GET | /find/symbol?query=<q> | Temukan simbol workspace | Symbol[] |
GET | /file?path=<path> | Daftar file dan direktori | FileNode[] |
GET | /file/content?path=<p> | Baca file | FileContent |
GET | /file/status | Dapatkan status untuk file yang dilacak | File[] |
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)
| Method | Path | Deskripsi | Respons |
|---|
GET | /lsp | Dapatkan status server LSP | LSPStatus[] |
GET | /formatter | Dapatkan status formatter | FormatterStatus[] |
GET | /mcp | Dapatkan status server MCP | { [name: string]: MCPStatus } |
POST | /mcp | Tambahkan server MCP secara dinamis | body: { name, config }, mengembalikan objek status MCP |
Agen
| Method | Path | Deskripsi | Respons |
|---|
GET | /agent | Daftar semua agen yang tersedia | Agent[] |
Logging
| Method | Path | Deskripsi | Respons |
|---|
POST | /log | Tulis entri log. Body: { service, level, message, extra? } | boolean |
Auth
| Method | Path | Deskripsi | Respons |
|---|
PUT | /auth/:id | Atur kredensial autentikasi untuk target yang diberikan. | boolean |
Acara
| Method | Path | Deskripsi | Respons |
|---|
GET | /event | Aliran acara yang dikirim server. Acara pertama adalah server.connected, kemudian acara bus | Aliran acara yang dikirim server |
Dokumentasi
| Method | Path | Deskripsi | Respons |
|---|
GET | /doc | Spesifikasi OpenAPI 3.1 | Halaman HTML dengan spesifikasi OpenAPI |