Dropstone Docs

Serveur

Interagir avec le serveur dropstone via HTTP.

La commande dropstone serve exécute un serveur HTTP sans interface qui expose un point de terminaison OpenAPI qu'un client Dropstone peut utiliser.


Utilisation

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

Options

DrapeauDescriptionDéfaut
--portPort d'écoute4096
--hostnameNom d'hôte d'écoute127.0.0.1
--mdnsActiver la découverte mDNSfalse
--mdns-domainNom de domaine personnalisé pour mDNSdropstone.local
--corsOrigines de navigateur supplémentaires[]

--cors peut être passé plusieurs fois :

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

Authentification

Définissez DROPSTONE_SERVER_PASSWORD pour protéger le serveur avec l'authentification HTTP basic. Le nom d'utilisateur par défaut est dropstone, ou définissez DROPSTONE_SERVER_USERNAME pour le remplacer. Cela s'applique à la fois à dropstone serve et à dropstone web.

DROPSTONE_SERVER_PASSWORD=your-password dropstone serve

Fonctionnement

dropstone serve expose les capacités de Dropstone via un point de terminaison HTTP OpenAPI 3.1. Le même point de terminaison est utilisé pour générer le SDK.

Utilisez le serveur lorsque vous souhaitez piloter Dropstone par programmation : à partir d'un script, d'un pipeline CI ou d'une intégration personnalisée. La session interactive et le serveur sont indépendants. L'exécution de dropstone serve démarre un serveur autonome indépendant, que vous ayez ou non une session interactive ouverte.

Vous pouvez remplacer l'adresse de liaison avec les drapeaux --hostname et --port.


Spécification

Le serveur publie une spécification OpenAPI 3.1 qui peut être consultée à :

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

Par exemple, http://localhost:4096/doc. Utilisez la spécification pour générer des clients ou inspecter les types de requête et de réponse. Ou consultez-la dans un explorateur Swagger.


APIs

Le serveur dropstone expose les APIs suivantes.


Global

MéthodeCheminDescriptionRéponse
GET/global/healthObtenir la santé et la version du serveur{ healthy: true, version: string }
GET/global/eventObtenir les événements globaux (flux SSE)Flux d'événements

Projet

MéthodeCheminDescriptionRéponse
GET/projectLister tous les projetsProject[]
GET/project/currentObtenir le projet actuelProject

Chemin & VCS

MéthodeCheminDescriptionRéponse
GET/pathObtenir le chemin actuelPath
GET/vcsObtenir les informations VCS du projet actuelVcsInfo

Config

MéthodeCheminDescriptionRéponse
GET/configObtenir les informations de configConfig
PATCH/configMettre à jour la configConfig

Sessions

MéthodeCheminDescriptionNotes
GET/sessionLister toutes les sessionsRetourne Session[]
POST/sessionCréer une nouvelle sessioncorps : { parentID?, title? }, retourne Session
GET/session/statusObtenir le statut de session pour toutes les sessionsRetourne { [sessionID: string]: SessionStatus }
GET/session/:idObtenir les détails de la sessionRetourne Session
DELETE/session/:idSupprimer une session et toutes ses donnéesRetourne boolean
PATCH/session/:idMettre à jour les propriétés de la sessioncorps : { title? }, retourne Session
GET/session/:id/childrenObtenir les sessions enfants d'une sessionRetourne Session[]
GET/session/:id/todoObtenir la liste de tâches pour une sessionRetourne Todo[]
POST/session/:id/initAnalyser l'application et créer AGENTS.mdcorps : { messageID, providerID, modelID }, retourne boolean
POST/session/:id/forkDupliquer une session existante à un messagecorps : { messageID? }, retourne Session
POST/session/:id/abortAbandonner une session en coursRetourne boolean
GET/session/:id/diffObtenir le diff pour cette sessionrequête : messageID?, retourne FileDiff[]
POST/session/:id/summarizeRésumer la sessioncorps : { providerID, modelID }, retourne boolean
POST/session/:id/revertAnnuler un messagecorps : { messageID, partID? }, retourne boolean
POST/session/:id/unrevertRestaurer tous les messages annulésRetourne boolean
POST/session/:id/permissions/:permissionIDRépondre à une demande de permissioncorps : { response, remember? }, retourne boolean

Messages

MéthodeCheminDescriptionNotes
GET/session/:id/messageLister les messages dans une sessionrequête : limit?, retourne { info: Message, parts: Part[]}[]
POST/session/:id/messageEnvoyer un message et attendre la réponsecorps : { messageID?, model?, agent?, noReply?, system?, tools?, parts }, retourne { info: Message, parts: Part[]}
GET/session/:id/message/:messageIDObtenir les détails du messageRetourne { info: Message, parts: Part[]}
POST/session/:id/prompt_asyncEnvoyer un message de manière asynchrone (sans attente)corps : identique à /session/:id/message, retourne 204 No Content
POST/session/:id/commandExécuter une commande slashcorps : { messageID?, agent?, model?, command, arguments }, retourne { info: Message, parts: Part[]}
POST/session/:id/shellExécuter une commande shellcorps : { agent, model?, command }, retourne { info: Message, parts: Part[]}

Commandes

MéthodeCheminDescriptionRéponse
GET/commandLister toutes les commandesCommand[]

Fichiers

MéthodeCheminDescriptionRéponse
GET/find?pattern=<pat>Rechercher du texte dans les fichiersTableau d'objets de correspondance avec path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Trouver des fichiers et répertoires par nomstring[] (chemins)
GET/find/symbol?query=<q>Trouver les symboles de l'espace de travailSymbol[]
GET/file?path=<path>Lister les fichiers et répertoiresFileNode[]
GET/file/content?path=<p>Lire un fichierFileContent
GET/file/statusObtenir le statut des fichiers suivisFile[]

Paramètres de requête /find/file

  • query (requis) : chaîne de recherche (correspondance floue)
  • type (optionnel) : limiter les résultats à "file" ou "directory"
  • directory (optionnel) : remplacer la racine du projet pour la recherche
  • limit (optionnel) : résultats max (1–200)
  • dirs (optionnel) : drapeau hérité ("false" retourne uniquement les fichiers)

LSP, Formatters & MCP

MéthodeCheminDescriptionRéponse
GET/lspObtenir le statut du serveur LSPLSPStatus[]
GET/formatterObtenir le statut du formateurFormatterStatus[]
GET/mcpObtenir le statut du serveur MCP{ [name: string]: MCPStatus }
POST/mcpAjouter un serveur MCP dynamiquementcorps : { name, config }, retourne l'objet de statut MCP

Agents

MéthodeCheminDescriptionRéponse
GET/agentLister tous les agents disponiblesAgent[]

Journalisation

MéthodeCheminDescriptionRéponse
POST/logÉcrire une entrée de journal. Corps : { service, level, message, extra? }boolean

Auth

MéthodeCheminDescriptionRéponse
PUT/auth/:idDéfinir les identifiants d'authentification pour la cible donnée.boolean

Événements

MéthodeCheminDescriptionRéponse
GET/eventFlux d'événements envoyés par le serveur. Le premier événement est server.connected, puis les événements du busFlux d'événements envoyés par le serveur

Docs

MéthodeCheminDescriptionRéponse
GET/docSpécification OpenAPI 3.1Page HTML avec spécification OpenAPI
Ctrl+I