Przejdź do głównej zawartości

Serwer

Interakcja z serwerem aicippy-code za pośrednictwem protokołu HTTP.

Komenda aicippy-code serve uruchamia bezgłowy serwer HTTP, który udostępnia punkt końcowy OpenAPI, z którego może korzystać klient aicippy-code.


Użycie

Okno terminala
aicippy-code serve [--port <number>] [--hostname <string>] [--cors <origin>]

Opcje

FlagaOpisDomyślne
--portPort nasłuchiwania4096
--hostnameNazwa hosta do nasłuchiwania127.0.0.1
--mdnsWłącz wykrywanie mDNSfalse
--mdns-domainNiestandardowa nazwa domeny dla usługi mDNSaicippy-code.local
--corsDodatkowe originy przeglądarki do dozwolenia[]

--cors można przekazać wiele razy:

Okno terminala
aicippy-code serve --cors http://localhost:5173 --cors https://app.example.com

Uwierzytelnianie

Ustaw AICIPPY_CODE_SERVER_PASSWORD, aby chronić serwer za pomocą podstawowego uwierzytelniania HTTP. Domyślną nazwą użytkownika jest aicippy-code lub ustaw AICIPPY_CODE_SERVER_USERNAME, aby ją zastąpić. Dotyczy to zarówno aicippy-code serve, jak i aicippy-code web.

Okno terminala
AICIPPY_CODE_SERVER_PASSWORD=your-password aicippy-code serve

Jak to działa

Kiedy uruchomisz aicippy-code, uruchomi się TUI i serwer. Gdzie jest TUI klient komunikujący się z serwerem. Serwer udostępnia specyfikację OpenAPI 3.1 punkt końcowy. Ten punkt końcowy jest również używany do generowania SDK.

Ta architektura umożliwia obsługę wielu klientów przez aicippy-code i programową interakcję z kodem otwartym.

Możesz uruchomić aicippy-code serve, aby uruchomić samodzielny serwer. Jeśli masz aicippy-code TUI działa, aicippy-code serve uruchomi nowy serwer.


Połączenie z istniejącym serwerem

Po uruchomieniu TUI losowo przypisuje port i nazwę hosta. Zamiast tego możesz przekazać --hostname i --port flagi. Następnie użyj tego, aby połączyć się z serwerem.

Punktu końcowego /tui można użyć do sterowania TUI przez serwer. Można na przykład wstępnie wypełnić lub uruchomić monit. Ta konfiguracja jest używana przez wtyczki aicippy-code IDE.


Specyfikacja

Serwer publikuje specyfikację OpenAPI 3.1, którą można obejrzeć pod adresem:

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

Na przykład http://localhost:4096/doc. Użyj specyfikacji, aby wygenerować klientów lub sprawdzić typy żądań i odpowiedzi. Możesz też wyświetlić go w eksploratorze Swagger.


API

Serwer aicippy-code udostępnia następujące interfejsy API.


Globalne

MethodPathDescriptionResponse
GET/global/healthUzyskaj stan i wersję serwera{ healthy: true, version: string }
GET/global/eventGet global events (SSE stream)Event stream

Projekt

MethodPathDescriptionResponse
GET/projectLista wszystkich projektówProject[]
GET/project/currentPobierz bieżący projektProject

Ścieżka i VCS

MethodPathDescriptionResponse
GET/pathPobierz bieżącą ścieżkęPath
GET/vcsUzyskaj informacje VCS dla bieżącego projektuVcsInfo

Instancja

MethodPathDescriptionResponse
POST/instance/disposeUsuń bieżącą instancjęboolean

Konfiguracja

MethodPathDescriptionResponse
GET/configGet config infoConfig
PATCH/configUpdate configConfig
GET/config/providersLista dostawców i modeli domyślnych{ providers: Dostawca[], default: { [key: string]: string } }

Dostawca

MethodPathDescriptionResponse
GET/providerLista wszystkich dostawców{ all: Dostawca[], default: {...}, connected: string[] }
GET/provider/authUzyskaj metody uwierzytelniania dostawcy{ [providerID: string]: ProviderAuthMethod[] }
POST/provider/{id}/oauth/authorizeAutoryzuj dostawcę za pomocą protokołu OAuthProviderAuthAuthorization
POST/provider/{id}/oauth/callbackObsługa wywołania zwrotnego OAuth dla dostawcyboolean

Sesje

MethodPathDescriptionNotes
GET/sessionLista wszystkich sesjiZwraca Session[]
POST/sessionUtwórz nową sesjętreść: { parentID?, title? }, zwraca Session
GET/session/statusUzyskaj status sesji dla wszystkich sesjiZwraca { [sessionID: string]: Status sesji }
GET/session/:idUzyskaj szczegóły sesjiZwraca Session
DELETE/session/:idUsuń sesję i wszystkie jej daneZwraca boolean
PATCH/session/:idAktualizuj właściwości sesjitreść: { title? }, zwraca Session
GET/session/:id/childrenPobierz sesje podrzędne sesjiZwraca Session[]
GET/session/:id/todoPobierz listę rzeczy do zrobienia dla sesjiZwraca Todo[]
POST/session/:id/initPrzeanalizuj aplikację i utwórz AGENTS.mdtreść: { messageID, providerID, modelID }, zwraca boolean
POST/session/:id/forkRozwiń istniejącą sesję w wiadomościtreść: { messageID? }, zwraca Session
POST/session/:id/abortPrzerwij trwającą sesjęZwraca boolean
POST/session/:id/shareUdostępnij sesjęZwraca Session
DELETE/session/:id/shareAnuluj udostępnianie sesjiZwraca Session
GET/session/:id/diffPobierz różnicę dla tej sesjizapytanie: messageID?, zwraca FileDiff[]
POST/session/:id/summarizePodsumuj sesjętreść: { providerID, modelID }, zwraca boolean
POST/session/:id/revertPrzywróć wiadomośćtreść: { messageID, partID? }, zwraca boolean
POST/session/:id/unrevertPrzywróć wszystkie przywrócone wiadomościZwraca boolean
POST/session/:id/permissions/:permissionIDOdpowiedz na prośbę o pozwolenietreść: { response, remember? }, zwraca boolean

Wiadomości

MethodPathDescriptionNotes
GET/session/:id/messageLista wiadomości w sesjizapytanie: limit?, zwraca { info: Wiadomość, parts: Część[]}[]
POST/session/:id/messageWyślij wiadomość i poczekaj na odpowiedźtreść: { messageID?, model?, agent?, noReply?, system?, tools?, parts }, zwraca { info: Wiadomość, parts: Część[]}
GET/session/:id/message/:messageIDUzyskaj szczegóły wiadomościZwraca { info: Wiadomość, parts: Część[]}
POST/session/:id/prompt_asyncWyślij wiadomość asynchronicznie (bez czekania)treść: taka sama jak /session/:id/message, zwraca 204 No Content
POST/session/:id/commandWykonaj slash commandtreść: { messageID?, agent?, model?, command, arguments }, zwraca { info: Wiadomość, parts: Część[]}
POST/session/:id/shellUruchom polecenie shelltreść: { agent, model?, command }, zwraca { info: Wiadomość, parts: Część[]}

Polecenia

MetodaŚcieżkaOpisOdpowiedź
GET/commandLista wszystkich poleceńCommand[]

Pliki

MethodPathDescriptionResponse
GET/find?pattern=<pat>Szukaj tekstu w plikachTablica obiektów dopasowania z path, lines, line_number, absolute_offset, submatches
GET/find/file?query=<q>Znajdź pliki i katalogi według nazwystring[] (ścieżki)
GET/find/symbol?query=<q>Find workspace symbolsSymbol[]
GET/file?path=<path>Lista plików i katalogówFileNode[]
GET/file/content?path=<p>Read a fileFileContent
GET/file/statusUzyskaj status śledzonych plikówFile[]

/find/file query parameters

  • query (required) — search string (fuzzy match)
  • type (optional) — limit results to "file" or "directory"
  • directory (opcjonalnie) — zastąp katalog główny projektu dla wyszukiwania
  • limit (optional) — max results (1–200)
  • dirs (optional) — legacy flag ("false" returns only files)

Narzędzia (Eksperymentalne)

MethodPathDescriptionResponse
GET/experimental/tool/idsLista wszystkich identyfikatorów narzędziToolIDs
GET/experimental/tool?provider=<p>&model=<m>Lista narzędzi ze schematami JSON dla modeluToolList

LSP, Formatery i MCP

MethodPathDescriptionResponse
GET/lspUzyskaj status serwera LSPLSPStatus[]
GET/formatterGet formatter statusFormatterStatus[]
GET/mcpUzyskaj status serwera MCP{ [name: string]: MCPStatus }
POST/mcpDodaj dynamicznie serwer MCPtreść: { name, config }, zwraca obiekt stanu MCP

Agenci

MethodPathDescriptionResponse
GET/agentLista wszystkich dostępnych agentówAgent[]

Logowanie

MethodPathDescriptionResponse
POST/logWrite log entry. Body: { service, level, message, extra? }boolean

TUI

MethodPathDescriptionResponse
POST/tui/append-promptDołącz tekst do promptuboolean
POST/tui/open-helpOtwórz okno pomocyboolean
POST/tui/open-sessionsOtwórz selektor sesjiboolean
POST/tui/open-themesOtwórz selektor motywówboolean
POST/tui/open-modelsOtwórz selektor modeluboolean
POST/tui/submit-promptPrześlij bieżący promptboolean
POST/tui/clear-promptWyczyść promptboolean
POST/tui/execute-commandWykonaj polecenie ({ command })boolean
POST/tui/show-toastPokaż toast ({ title?, message, variant })boolean
GET/tui/control/nextPoczekaj na następne żądanie kontroliObiekt żądania kontroli
POST/tui/control/responseRespond to a control request ({ body })boolean

Uwierzytelnianie

MethodPathDescriptionResponse
PUT/auth/:idUstaw dane uwierzytelniające. Treść musi pasować do schematu dostawcyboolean

Zdarzenia

MethodPathDescriptionResponse
GET/eventStrumień zdarzeń wysyłanych przez serwer. Pierwsze wydarzenie to server.connected, następnie wydarzenia autobusoweStrumień zdarzeń wysłanych przez serwer

Dokumentacja

MethodPathDescriptionResponse
GET/docSpecyfikacja OpenAPI 3.1Strona HTML ze specyfikacją OpenAPI