Endpointy

Edycja aplikacji

Zmień aplikację na podstawie polecenia, tak jak robi to edytor.

POSThttps://www.setherion.com/api/v1/projects/{id}/edit

Plan: Każdy plan

Wykonuje tę samą edycję, co wpisanie polecenia w edytorze Setherion. To ta sama trasa, która stoi za polem w edytorze, więc obowiązują te same kredyty, te same zasady planu i te same kontrole bezpieczeństwa, a wynik jest zapisywany i dodawany do historii aplikacji jak każda inna edycja.

Musisz mieć prawo do edycji aplikacji: jest twoja, masz w jej przestrzeni roboczej rolę editor lub admin albo została ci udostępniona z rolą editor.

Kredyty są pobierane z konta, które płaci za aplikację, czyli z konta jej twórcy, niekoniecznie z twojego. Jeśli przestrzeń robocza aplikacji ogranicza to, ile możesz wydać, ten limit też obowiązuje.

Zmiana jest zapisana, ale nie jest online, dopóki aplikacja nie zostanie opublikowana. Gdy przyjdzie na to pora, wywołaj Publikowanie aplikacji.

Żądanie

bash
curl -X POST https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/edit \
  -H "Authorization: Bearer $SETHERION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "prompt": "Make the buttons green and add an opening hours section" }'
PoleTypZnaczenie
promptstring, wymaganeCo zmienić, w dowolnym języku. Spacje wokół są ignorowane. Do 4 000 znaków.
modelstring, opcjonalneauto, gdy je pominiesz: Setherion wybiera w ramach twojego planu, tak jak w edytorze. Model, którego twój plan nie obejmuje, jest zastępowany najlepszym z tych, które obejmuje, a nie odrzucany.

Aplikacja musi już mieć kod. Aplikacja, która nigdy nie została zbudowana, odpowiada 409.

Odpowiedź przychodzi, gdy edycja jest skończona

Edycja trwa od jednej do kilku minut, a żądanie pozostaje otwarte, dopóki się nie zakończy. Edycja, która trwa dłużej niż około 13 minut, jest przerywana przez serwer.

Gdy pracuje, Setherion wysyła spację co 10 sekund, żeby nic między tobą a nami nie zamknęło cichego połączenia. Spacje przed JSON-em nadal są poprawnym JSON-em: przeczytaj całą treść, a dopiero potem ją sparsuj.

Gdy edycja już się rozpocznie, status to 200 bez względu na to, co się stanie, a ok mówi, jak poszło. Nagłówek odpowiedzi X-Setherion-Run zawiera runId edycji od pierwszej chwili, jeszcze przed treścią.

Zamknięcie połączenia nie zatrzymuje edycji

Jeśli twój klient się podda lub połączenie zostanie zerwane, edycja toczy się dalej i trafia do aplikacji tak, jakby żądanie czekało do końca, a jej kredyty są zużyte. Zachowaj nagłówek X-Setherion-Run i zapytaj, gdzie jest edycja, przez Śledzenie edycji. Żeby zatrzymać edycję w połowie, kliknij Stop w edytorze Setherion, na karcie, która pokazuje jej działanie.

Odpowiedź

Zakończona edycja:

json
{
  "ok": true,
  "runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
  "projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
  "changed": {
    "added": ["src/components/OpeningHours.tsx"],
    "modified": ["src/App.tsx", "src/index.css"],
    "removed": []
  }
}
PoleTypZnaczenie
okbooleantrue, gdy edycja się skończyła i została zapisana.
runIdstringIdentyfikator edycji. Pomijany, gdy Setherion nie potrafił go ustalić.
projectIdstringAplikacja, którą zmieniła. Pomijany, gdy Setherion nie potrafił go ustalić.
changedobjectPliki, które edycja dodała, zmieniła i usunęła, każda grupa jako posortowana lista ścieżek. Pomijany, gdy Setherion nie potrafił tego ustalić, co nie znaczy, że nic się nie zmieniło.
buildsfalseWystępuje tylko wtedy, gdy edytowana aplikacja już się nie buduje. Edycja została zapisana, a jej kredyty wracają. Brak tego pola nie jest obietnicą, że aplikacja się buduje.
refundedCreditsnumberIle kredytów wróciło, jeśli jakieś wróciły.

Edycja, która zepsuła budowanie aplikacji:

json
{
  "ok": true,
  "runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
  "projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
  "changed": { "added": [], "modified": ["src/App.tsx"], "removed": [] },
  "builds": false,
  "refundedCredits": 10
}

Edycja, która się nie odbyła:

json
{ "ok": false, "error": "This edit costs 10 credits and you have 3.", "outOfCredits": true }

outOfCredits występuje i ma wartość true tylko wtedy, gdy konto płacące za edycję nie ma już kredytów. Każde inne odrzucenie ma ok: false i error, i nic więcej.

Dlaczego edycja może odpowiedzieć ok: false

Te odpowiedzi przychodzą ze statusem 200, bo edycja już się rozpoczęła.

  • This edit costs 10 credits and you have 3. z outOfCredits: true. Liczba to cena tej edycji i twoje saldo. W cudzej aplikacji zdanie brzmi This app's owner has no credits left this month, so this edit cannot run. i nigdy nie podaje ich salda.
  • You have used 40 of the 100 credits a month this workspace allows you on its owner's plan. Ask an admin to raise it. z outOfCredits: true, gdy właściciel przestrzeni roboczej ograniczył to, ile możesz wydać.
  • You're working faster than our safety limit allows (120 an hour). You can carry on in about 12 minutes. Edycje i budowania są ograniczone do 120 na godzinę na konto.
  • The edit stopped before it finished. Nothing was charged for it. Przebieg zakończył się przed ukończeniem.
  • The edit could not start. lub The edit failed: ..., gdy coś zawiodło po naszej stronie. Spróbuj jeszcze raz.

Śledzenie edycji

GEThttps://www.setherion.com/api/v1/projects/{id}/edit?run={runId}

Plan: Każdy plan

Gdzie jest edycja, dla klienta, który przestał czekać albo w ogóle nie czekał. Za darmo i bezpiecznie jest pytać mniej więcej co minutę.

bash
curl "https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/edit?run=b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61" \
  -H "Authorization: Bearer $SETHERION_API_KEY"
json
{
  "ok": true,
  "status": "done",
  "runId": "b3f0e2d1-6a47-4c8e-9d15-0f2b7a3c8e61",
  "projectId": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
  "startedAt": "2026-10-16T15:13:02.118Z"
}
statusokZnaczenie
runningtrueNadal pracuje. Zapytaj ponownie za mniej więcej minutę.
donetrueSkończona i zapisana w aplikacji. Opublikuj ją, gdy przyjdzie na to pora. Z cutShort: true została zapisana zaraz po napisaniu kodu, bez ostatnich poprawek.
stoppedfalseZatrzymana przed ukończeniem. W aplikacji nic się nie zmieniło.
failedfalseNie powiodła się. W aplikacji nic się nie zmieniło.
stalledfalseNie ruszyła się od kilku minut i prawdopodobnie się zatrzymała. Otwórz aplikację w Setherion, żeby zobaczyć, dokąd doszła.

Odpowiedź z false zawiera też zdanie error, a edycję można wysłać ponownie. Ta odpowiedź nie wymienia plików, które się zmieniły: robi to tylko własna odpowiedź edycji.

Statuserror
400Say which edit, in "run": the runId its POST answered.
404No such app on this account. lub No such edit on this app.

Błędy przed rozpoczęciem edycji

StatusKiedy
400prompt jest pominięty, pusty lub dłuższy niż 4 000 znaków.
401Klucz jest pominięty, błędny lub unieważniony.
404Nie ma takiej aplikacji albo twój klucz nie może jej edytować. Dotyczy to też aplikacji, którą możesz tylko oglądać.
409Aplikacja nie ma jeszcze kodu. Najpierw zbuduj ją w Setherion.
Dokładne zdania
Statuserror
400Say what to change, in "prompt".
400Keep "prompt" under 4,000 characters.
404No such app on this account.
409This app has no code yet. Build it in Setherion first, then edit it here.

Czy ta strona była pomocna?

Dołącz do społeczności

Pytania, pomysły i to, co budują inni.