Dropstone Docs

Server

Interagisci con il server dropstone tramite HTTP.

Il comando dropstone serve esegue un server HTTP headless che espone un endpoint OpenAPI che un client Dropstone può utilizzare.


Utilizzo

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

Opzioni

FlagDescrizionePredefinito
--portPorta su cui ascoltare4096
--hostnameNome host su cui ascoltare127.0.0.1
--mdnsAbilita il rilevamento mDNSfalse
--mdns-domainNome di dominio personalizzato per il servizio mDNSdropstone.local
--corsOrigini browser aggiuntive da consentire[]

--cors può essere passato più volte:

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

Autenticazione

Imposta DROPSTONE_SERVER_PASSWORD per proteggere il server con autenticazione HTTP basic. Il nome utente predefinito è dropstone, oppure imposta DROPSTONE_SERVER_USERNAME per sovrascriverlo. Questo si applica sia a dropstone serve che a dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Come funziona

dropstone serve espone le capacità di Dropstone su un endpoint HTTP OpenAPI 3.1. Lo stesso endpoint viene utilizzato per generare l'SDK.

Utilizza il server quando desideri guidare Dropstone a livello di programmazione: da uno script, da una pipeline CI, o da un'integrazione personalizzata. La sessione interattiva e il server sono indipendenti. L'esecuzione di dropstone serve avvia un server standalone nuovo indipendentemente dal fatto che tu abbia una sessione interattiva aperta.

Puoi sovrascrivere l'indirizzo di binding con i flag --hostname e --port.


Specifica

Il server pubblica una specifica OpenAPI 3.1 che può essere visualizzata su:

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

Ad esempio, http://localhost:4096/doc. Utilizza la specifica per generare client o ispezionare i tipi di richiesta e risposta. Oppure visualizzala in un explorer Swagger.


API

Il server dropstone espone le seguenti API.


Globale

MetodoPercorsoDescrizioneRisposta
GET/global/healthOttieni lo stato e la versione del server{ healthy: true, version: string }
GET/global/eventOttieni gli eventi globali (flusso SSE)Flusso di eventi

Progetto

MetodoPercorsoDescrizioneRisposta
GET/projectElenca tutti i progettiProject[]
GET/project/currentOttieni il progetto correnteProject

Percorso e VCS

MetodoPercorsoDescrizioneRisposta
GET/pathOttieni il percorso correntePath
GET/vcsOttieni le informazioni VCS per il progetto correnteVcsInfo

Configurazione

MetodoPercorsoDescrizioneRisposta
GET/configOttieni le informazioni di configurazioneConfig
PATCH/configAggiorna la configurazioneConfig

Sessioni

MetodoPercorsoDescrizioneNote
GET/sessionElenca tutte le sessioniRestituisce Session[]
POST/sessionCrea una nuova sessionebody: { parentID?, title? }, restituisce Session
GET/session/statusOttieni lo stato della sessione per tutte le sessioniRestituisce { [sessionID: string]: SessionStatus }
GET/session/:idOttieni i dettagli della sessioneRestituisce Session
DELETE/session/:idElimina una sessione e tutti i suoi datiRestituisce boolean
PATCH/session/:idAggiorna le proprietà della sessionebody: { title? }, restituisce Session
GET/session/:id/childrenOttieni le sessioni figlie di una sessioneRestituisce Session[]
GET/session/:id/todoOttieni l'elenco todo per una sessioneRestituisce Todo[]
POST/session/:id/initAnalizza l'app e crea AGENTS.mdbody: { messageID, providerID, modelID }, restituisce boolean
POST/session/:id/forkEsegui il fork di una sessione esistente a un messaggiobody: { messageID? }, restituisce Session
POST/session/:id/abortInterrompi una sessione in esecuzioneRestituisce boolean
GET/session/:id/diffOttieni il diff per questa sessionequery: messageID?, restituisce FileDiff[]
POST/session/:id/summarizeRiassumi la sessionebody: { providerID, modelID }, restituisce boolean
POST/session/:id/revertRipristina un messaggiobody: { messageID, partID? }, restituisce boolean
POST/session/:id/unrevertRipristina tutti i messaggi ripristinatiRestituisce boolean
POST/session/:id/permissions/:permissionIDRispondi a una richiesta di permessobody: { response, remember? }, restituisce boolean

Messaggi

MetodoPercorsoDescrizioneNote
GET/session/:id/messageElenca i messaggi in una sessionequery: limit?, restituisce { info: Message, parts: Part[]}[]
POST/session/:id/messageInvia un messaggio e attendi la rispostabody: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, restituisce { info: Message, parts: Part[]}
GET/session/:id/message/:messageIDOttieni i dettagli del messaggioRestituisce { info: Message, parts: Part[]}
POST/session/:id/prompt_asyncInvia un messaggio in modo asincrono (senza attesa)body: uguale a /session/:id/message, restituisce 204 No Content
POST/session/:id/commandEsegui un comando slashbody: { messageID?, agent?, model?, command, arguments }, restituisce { info: Message, parts: Part[]}
POST/session/:id/shellEsegui un comando shellbody: { agent, model?, command }, restituisce { info: Message, parts: Part[]}

Comandi

MetodoPercorsoDescrizioneRisposta
GET/commandElenca tutti i comandiCommand[]

File

MetodoPercorsoDescrizioneRisposta
GET/find?pattern=<pat>Cerca testo nei fileArray di oggetti corrispondenti con path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Trova file e directory per nomestring[] (percorsi)
GET/find/symbol?query=<q>Trova simboli dell'area di lavoroSymbol[]
GET/file?path=<path>Elenca file e directoryFileNode[]
GET/file/content?path=<p>Leggi un fileFileContent
GET/file/statusOttieni lo stato per i file tracciatiFile[]

Parametri di query /find/file

  • query (obbligatorio): stringa di ricerca (corrispondenza fuzzy)
  • type (facoltativo): limita i risultati a "file" o "directory"
  • directory (facoltativo): sovrascrivi la radice del progetto per la ricerca
  • limit (facoltativo): risultati massimi (1–200)
  • dirs (facoltativo): flag legacy ("false" restituisce solo file)

LSP, Formatter e MCP

MetodoPercorsoDescrizioneRisposta
GET/lspOttieni lo stato del server LSPLSPStatus[]
GET/formatterOttieni lo stato del formatterFormatterStatus[]
GET/mcpOttieni lo stato del server MCP{ [name: string]: MCPStatus }
POST/mcpAggiungi il server MCP dinamicamentebody: { name, config }, restituisce l'oggetto di stato MCP

Agent

MetodoPercorsoDescrizioneRisposta
GET/agentElenca tutti gli agent disponibiliAgent[]

Logging

MetodoPercorsoDescrizioneRisposta
POST/logScrivi voce di log. Body: { service, level, message, extra? }boolean

Autenticazione

MetodoPercorsoDescrizioneRisposta
PUT/auth/:idImposta le credenziali di autenticazione per il target specificato.boolean

Eventi

MetodoPercorsoDescrizioneRisposta
GET/eventFlusso di eventi inviati dal server. Il primo evento è server.connected, quindi gli eventi del busFlusso di eventi inviati dal server

Documentazione

MetodoPercorsoDescrizioneRisposta
GET/docSpecifica OpenAPI 3.1Pagina HTML con specifica OpenAPI
Ctrl+I