Entwicklung
CLI-Automatisierungsvertrag
Erstelle zuverlässige Skripte mit versioniertem JSON, deterministischen Eingaben und stabilen Fehler- und Exit-Codes.
- --json
- --yes
- schema_version: 1
{
"schema_version": 1,
"ok": true,
"command": "project.bindings",
"result": { "bindings": [] }
}{
"schema_version": 1,
"ok": false,
"command": "operation.start",
"error": {
"code": "input_required",
"message": "...",
"details": {}
}
}Referenz
Automatisierungsstatus auf einen Blick
successDer Befehl wurde erfolgreich abgeschlossen oder eine interaktive Auswahl vor Arbeitsbeginn abgebrochen.input_requiredEine Pflichtangabe war bei nichtinteraktiver Ausführung nicht verfügbar.operation_failedDie Operation hat einen fehlgeschlagenen oder abgebrochenen Endzustand erreicht.Referenz
Stabile Exit- und Fehlercodes
Nutze den Prozessstatus für grobe Behandlung und den JSON-Fehlercode für gezielte Wiederherstellung.
| Exit | Stabiler Code | Bedeutung |
|---|---|---|
0 | success | Der Befehl wurde erfolgreich abgeschlossen oder eine interaktive Auswahl vor Arbeitsbeginn abgebrochen. |
1 | internal_failure / command_failed | Ein unerwarteter oder befehlsspezifischer Fehler ist aufgetreten. |
2 | invalid_usage | Argumente oder Befehlsverwendung sind ungültig. |
3 | authentication_failed | Authentifizierung fehlt, ist abgelaufen oder wurde abgelehnt. |
4 | input_required | Eine Pflichtangabe war bei nichtinteraktiver Ausführung nicht verfügbar. |
5 | local_failure | Lokale Datei, Werkzeug, Konfiguration oder Dateisystemaktion ist fehlgeschlagen. |
6 | gateway_failure | Das Gateway war nicht erreichbar oder lieferte eine ungültige Antwort. |
7 | remote_rejection | Der Remotedienst hat eine gültige Anfrage abgelehnt. |
8 | operation_failed | Die Operation hat einen fehlgeschlagenen oder abgebrochenen Endzustand erreicht. |
130 | interrupted | Der Prozess wurde unterbrochen; angenommene Serverarbeit wird nicht automatisch abgebrochen. |
Befehlsergebnisse
Felder je Befehl
Felder werden in Schemaversion 1 nur ergänzt. Unbekannte Felder sollten ignoriert werden.
| Befehl | Ergebnisfelder | Hinweise |
|---|---|---|
login / status | api_url, user_id, credential_source | Authentifizierungsdaten ohne Offenlegung des Tokens. |
logout | api_url, stored_token_removed, environment_authentication_active | Meldet Entfernung des gespeicherten Tokens und verbleibende Umgebungsanmeldung. |
project.bind | binding | cancelled, path | Gibt die Bindung oder einen Abbruch durch den Benutzer zurück. |
project.forget | path, removed[], cancelled | Bezeichnet entfernte Bindungen und einen möglichen Abbruch. |
project.bindings | bindings[] | Gibt alle passenden lokalen Bindungen zurück. |
project.sync | binding, mode, path, preview, applied, summary, media[], cancelled | Enthält Vorschau/Anwendung, Zusammenfassung, Medienänderungen und Abbruch. |
operation.start | cancelled, path, project_id, operation_id, execution_state, outcome, display_status, state_version, progress_percent, content_counts, allowed_actions, started_at, finished_at, updated_at, detached, output_target, sources_accepted, required_credits, available_credits, outputs[], written_outputs, unchanged_outputs | Bezeichnet die Operation und ob die Ausführung getrennt wurde. |
operation.watch | operation_id, project_id, execution_state, outcome, display_status, state_version, progress_percent, content_counts, allowed_actions, started_at, finished_at, updated_at, failures[], local_output_pending | Meldet Lebenszyklus, Fortschritt, Fehler und ausstehende lokale Ausgabe. |
operation.apply | cancelled, path, operation_id, project_id, execution_state, outcome, display_status, state_version, progress_percent, content_counts, allowed_actions, started_at, finished_at, updated_at, output_target, partial, outputs[], written_outputs, unchanged_outputs | Meldet geschriebene/unveränderte Ausgaben, ausgewählte Artefakt-IDs und den Zustand partieller Ergebnisse. |
Deterministische Eingabe
--json kann weiterhin auf stderr fragen. Ergänze --yes, um Rückfragen abzuschalten, und liefere jede nichtdeterministische Auswahl über Optionen, Konfiguration oder geschützte Umgebungsvariablen.
subft --json --yes operation start PATH --lang de --project-id PROJECT_ID --detach
Abbruch und Teilergebnisse
Ein interaktiver Abbruch beendet den Vorgang mit Exit-Code 0 und cancelled: true, bevor Änderungen übernommen werden. Strg-C beendet mit 130, ohne angenommene Serveraufgaben abzubrechen. Mit --yes erfordert unvollständige Ausgabe --allow-partial, und der Befehl beendet weiterhin ungleich null nach Anwendung verfügbarer Ergebnisse.
subft --json --yes operation apply OPERATION_ID PATH --allow-partial