CLS steht für Closed-Loop System. Nova behandelt Browser-Aktionen damit als prüfbare Zustandsübergänge: Eine Handlung ist nicht verlässlich, nur weil ein Klick, eine Eingabe oder ein Submit abgeschickt wurde.
CLS gehört zu Momenten, in denen ein Agent Seitenzustand verändert. Nova kann Voraussetzungen prüfen, die Handlung ausführen, das Ergebnis beobachten und melden, ob die erwartete Nachbedingung bestätigt, widerlegt oder noch unklar ist.
Das verhindert falschen Erfolg. Wenn die Seite das gewünschte Ergebnis bestätigt, kann der Agent vom neuen Zustand aus weiterarbeiten. Wenn ein Fehler sichtbar wird, das Ergebnis unklar bleibt oder die Handlung die Seite nie erreicht hat, muss der nächste Schritt reparieren, erneut beobachten oder sicher stoppen.
CLS verbindet Ausführung mit Gedächtnis. TOB liefert beobachtete Evidenz, OK liefert aktuelle Dienstfakten, PKS kann aus verifizierten Erfolgen und Fehlschlägen lernen, und ETM kann das Ergebnis nutzen, wenn ein Aufgabenlauf wirklich abgeschlossen werden soll.
Kurz gesagt
- Dispatch ist kein Beweis, dass eine Browser-Aktion erfolgreich war.
- Commit-Point-Handlungen brauchen Voraussetzungen und Nachbedingungen, wenn sie senden, absenden, einloggen, Zustand wechseln oder einen Dienst verändern.
- CLS trennt Pre-Dispatch-Blocks von Unklarheit nach Dispatch, damit Agenten riskante Handlungen nicht blind wiederholen.
- Verifizierte Ergebnisse können Aufgabenfortschritt, PKS-Health, ALP-Prüfung und spätere Orientierung stützen.
- CLS erteilt keine Erlaubnis von allein; Nova-Sicherheitsgates und Nutzerkontrolle gelten weiter.
Was CLS prüft
CLS prüft die Teile einer Handlung, die leicht verwechselt werden, wenn ein Agent nur den Werkzeugerfolg sieht.
- Voraussetzungen Vor Dispatch muss die aktuelle Seite noch zum erwarteten Ausgangszustand passen. Wenn die Voraussetzung nicht stimmt, soll die Handlung nicht laufen.
- Dispatch Nova meldet, ob die Handlung die Seite wirklich erreicht hat. Ein Block vor Dispatch ist etwas anderes als ein Klick, der ausgelöst wurde, aber nicht das erwartete Ergebnis erzeugt hat.
- Nachbedingungen Nach Dispatch prüft Nova Erfolgs-, Fehler- und Ambiguitätssignale. Hier wird aus „gesendet“ entweder „bestätigt“, „fehlgeschlagen“ oder „unklar“.
- Retry-Sicherheit CLS sagt dem Agenten, ob er wiederholen darf, nicht wiederholen soll oder zuerst die Nachbedingung prüfen muss, weil eine Wiederholung die Handlung doppeln könnte.
- Ziel-Resume Wenn ein Closed-Loop-Ziel aktiv ist, kann Nova den aktuellen Schritt anzeigen, damit ein Agent nach Kontextkompression nicht raten muss, wo er stand.
- Lernfeedback Verifizierte Ergebnisse sind stärkere Evidenz für Aufgabenabschluss, PKS-Health und späteres Lernen als ein roher Werkzeugerfolg.
Wann brauche ich CLS?
Nutze CLS für Handlungen, bei denen das Ergebnis Zustand verändert und ein blinder Retry riskant wäre: Nachricht senden, Formular abschicken, Login bestätigen, Modell oder Workspace wechseln, ein zugangsrelevantes Overlay entfernen oder einen Aufgabenschritt abschließen, der nur nach sichtbarem Nachweis zählen soll.
CLS-Modell für Agenten
Für einen Agenten beantwortet CLS vier Fragen: Welches Ziel ist aktiv, welcher Zustand muss vor der Handlung gelten, welches Ergebnis beweist Erfolg oder Fehlschlag, und was passiert, wenn das Ergebnis unklar ist?
- Ziel
- Ein dauerhaftes Arbeitsziel auf einem Target. Es kann geordnete Schritte enthalten und erscheint bei aktiver Arbeit als
goalContext. - Schritt
- Eine Handlung innerhalb eines Ziels. Ein Schritt kann geplant, ausgelöst, in Prüfung, erledigt, unklar, fehlgeschlagen, blockiert oder abgebrochen sein.
- Transition Contract
- Der strukturierte Vertrag für eine bedeutsame Handlung: Voraussetzungen, Aktionsart, Nachbedingungen, Retry-Policy und Ambiguitäts-Policy.
- Assertion
- Eine maschinenprüfbare Bedingung, zum Beispiel ob ein Fakt existiert, einem Wert entspricht, sich geändert hat oder verschwunden ist. Assertions können als all, any oder forbidden gruppiert werden.
- Guarded Commit
- Das Ergebnisobjekt, das dem Agenten sagt, was CLS getan hat: Dispatch-Status, Verifikationsstatus, Retry-Hinweis, fehlgeschlagene Assertions und Timing.
- Action Dispatch
- Der Punkt, an dem die Seite wirklich berührt wurde. Wenn
actionDispatchedtrue ist, kann ein Retry einen Submit, Send oder Zustandswechsel doppeln. - Postcondition-first Retry
- Eine Wiederherstellungsregel für nicht-idempotente Handlungen: erst das Ergebnis prüfen, dann entscheiden, ob ein weiterer Dispatch sicher ist.
So nutzen Agenten CLS-Infos
CLS gibt Agenten einen Prüfkreislauf um wichtige Handlungen. Der Agent liest die Seite, bindet oder übernimmt das Ziel, nutzt eine geschützte Handlung und lässt danach den zurückgegebenen Zustand über den nächsten Schritt entscheiden.
-
Seite und Zielkontext lesen
Der Agent startet mit
nova.perceive. WenngoalContextvorhanden ist, liest er den aktiven Schritt vor der Handlung. -
Ziel erstellen oder abfragen, wenn Arbeit mehrere Schritte hat
Für mehrstufige Arbeit kann
nova.goal_registerdas aktive Closed-Loop-Ziel erstellen, abfragen, schließen oder annotieren. -
Guarded Commit Tool für bedeutsame Handlungen nutzen
Für typische Commit Points bevorzugt der Agent
nova.guarded_send_message,nova.guarded_submit_form,nova.guarded_login,nova.guarded_switch_modelodernova.guarded_switch_sandbox. -
Transition Contract liefern, wenn rohe Eingabewerkzeuge genutzt werden
Wenn der Agent
nova.click_selectorodernova.type_selectorfür einen Commit Point nutzt, sendet ertransitionContractmit Voraussetzungen und Nachbedingungen. -
Dispatch und Verifikation getrennt lesen
Der Agent prüft
actionDispatched,guardedCommit.dispatchStatus,guardedCommit.verificationStatusundguardedCommit.retryAdvice. - Nur von verifiziertem Zustand aus fortsetzen Verifizierter Erfolg kann weiterlaufen. Verifizierter Fehlschlag, blockierte Voraussetzung oder unklarer Ausgang verlangen Reparatur, weitere Beobachtung oder sicheren Stopp.
Wann CLS-Zustand gilt
CLS-Zustand ist nur im aktuellen Target- und Handlungskontext belastbar. Ein früheres Ergebnis ist keine Erlaubnis, denselben Seitenzustand nach Navigation, Reload, Nutzerinteraktion oder einer anderen Agentenhandlung weiter anzunehmen.
goalContext=null
- Bedeutung
- Nova hat für das aktuelle Target oder den aktuellen Owner kein aktives Closed-Loop-Ziel.
- Erforderliche Evidenz
- Im Seitenlesen erscheint kein
goalContext. Zielabfragen können trotzdem terminale oder verwaiste Zustände wiecompleted,failed,abortedoderorphanedzeigen. - Agentenverhalten
- Normale Seitenbeobachtung nutzen oder ein Ziel erstellen, wenn die Arbeit dauerhafte Schrittverfolgung braucht.
- Darf fortsetzen
- Nur bei einfachen Handlungen.
goalContext.state=active
- Bedeutung
- Ein Closed-Loop-Ziel ist aktiv und kann fortgesetzt werden.
- Erforderliche Evidenz
- Aktuelle
goalId,summary,currentStepund optionalstepStatussind für den Agenten sichtbar. - Agentenverhalten
- Vom aktuellen Schritt fortsetzen, nicht aus Erinnerung oder geratenem Plan.
- Darf fortsetzen
- Ja, nach Seitenprüfung.
blocked_precondition
- Bedeutung
- Die Handlung wurde nicht ausgelöst, weil der erwartete Startzustand nicht galt.
- Erforderliche Evidenz
- Die Antwort hat
actionDispatched=falseundguardedCommit.preconditionVerdict=failedoder einen passenden Reason Code. - Agentenverhalten
- Seitenzustand reparieren oder Vertrag aktualisieren. Nicht behaupten, dass die Handlung passiert ist.
- Darf fortsetzen
- Nein.
actionDispatched=true
- Bedeutung
- Die Handlung hat die Seite erreicht. Das Ergebnis braucht trotzdem Nachbedingungsprüfung.
- Erforderliche Evidenz
- Die Antwort sagt
actionDispatched=true, möglicherweise mitguardedCommit.verificationStatus. - Agentenverhalten
- Nicht-idempotente Sends, Submits oder Login-Commits nicht blind wiederholen.
- Darf fortsetzen
- Nur nach Verifikation.
verified_success
- Bedeutung
- Beobachtete Seite oder Dienstzustand erfüllt die Erfolgs-Nachbedingung.
- Erforderliche Evidenz
- Das Guarded-Ergebnis liefert
guardedCommit.verificationStatus=verified_success. - Agentenverhalten
- Zielschritt weiterführen, Aufgabe fortsetzen und das Ergebnis als stärkere Evidenz für Lernen nutzen.
- Darf fortsetzen
- Ja.
verified_fail
- Bedeutung
- Nach Dispatch wurde ein verbotener oder fehlgeschlagener Ausgang beobachtet.
- Erforderliche Evidenz
- Das Guarded-Ergebnis liefert
verified_failoder top-levelreasonCode=guarded_commit.postcondition_failed. - Agentenverhalten
- Schritt als fehlgeschlagen behandeln und vom sichtbaren Fehlerzustand aus reparieren.
- Darf fortsetzen
- Nein.
indeterminate
- Bedeutung
- Nova konnte Erfolg oder Fehlschlag aus den verfügbaren Signalen nicht beweisen.
- Erforderliche Evidenz
- Das Ergebnis enthält
indeterminateReasonwieambiguous_signal,page_navigated,timeoutodereval_error. - Agentenverhalten
- Dem
retryAdvicefolgen. Bei nicht-idempotenten Handlungen die Nachbedingung vor jedem Retry prüfen. - Darf fortsetzen
- Noch nicht.
blocked_goal|blocked_coordinator
- Bedeutung
- Target oder Ziel ist reserviert, passt nicht oder ist nicht in einem dispatchbaren Zustand.
- Erforderliche Evidenz
- Dispatch-Status oder Reason Code zeigt
blocked_goal,blocked_coordinator,guarded_commit.coordinator_busyoderguarded_commit.dispatch_prepare_rejected. - Agentenverhalten
- Warten, Ziel abfragen oder Nachbedingungen erneut prüfen, bevor ein Retry passiert.
- Darf fortsetzen
- Nein.
Fehler- und Guard-Bedingungen
Diese harten Kanten sollten Agenten und Integrationen vom CLS-Vertrag erwarten.
| Bedingung | Beobachtetes Signal | Agentenverhalten |
|---|---|---|
| Commit Point ohne Vertrag | Ein roher Klick oder submit-artiges Tippen wird als Commit Point erkannt und hat kein transitionContract; der Reason Code ist guarded_commit.missing_contract. |
Guarded-Makro nutzen oder transitionContract.postconditions liefern. Die Handlung wird vor Dispatch blockiert. |
| Unbekanntes Vertragsfeld | Unbekannte Felder in transitionContract, postconditions oder Assertion Sets erzeugen invalid params. |
Request-Form korrigieren statt anzunehmen, dass Extra-Felder ignoriert werden. |
| Leere Nachbedingungen | Commit-Point-Verträge ohne nicht-leere success-, forbidden- oder ambiguous-Buckets schlagen geschlossen fehl. |
Mindestens eine beobachtbare Ergebnisbedingung definieren, bevor Dispatch erlaubt wird. |
| Voraussetzung fehlgeschlagen | Reason Code guarded_commit.precondition_failed und actionDispatched=false. |
Seite reparieren oder neu lesen. Handlung erst wiederholen, wenn der Startzustand stimmt. |
| Voraussetzung nicht auswertbar | Reason Code guarded_commit.precondition_error. |
Fail-closed behandeln. Assertion vereinfachen oder bessere Faktquelle sammeln. |
| Coordinator belegt | Reason Code guarded_commit.coordinator_busy und oft retryAfterMs=1000. |
Auf die laufende geschützte Handlung warten, bevor erneut versucht wird. |
| Nachbedingung fehlgeschlagen | Top-level Status kann failed mit reasonCode=guarded_commit.postcondition_failed werden. |
Sichtbaren Fehler behandeln; den Schritt nicht als abgeschlossen melden. |
| Unklarer Ausgang nach Dispatch | Top-level Status kann partial mit Reason Codes wie guarded_commit.ambiguous_signal, guarded_commit.page_navigated, guarded_commit.frame_destroyed, guarded_commit.eval_error, guarded_commit.no_signal_yet oder guarded_commit.timeout werden. |
Dem retryAdvice folgen und die Nachbedingung prüfen, bevor nicht-idempotente Handlungen wiederholt werden. |
Agentenbeispiel
Das Beispiel zeigt CLS als Vertrag: Der Agent beschreibt das Handlungsziel, Nova prüft die Nachbedingung, und die Antwort sagt, ob der nächste Schritt fortsetzen darf.
Guarded-Action-Request
{
"tool": "nova.guarded_send_message",
"arguments": {
"targetId": "active",
"text": "Please summarize the selected article.",
"transitionContract": {
"postconditions": {
"success": {
"any": [
{
"factKey": "chat.streamActive.started",
"operator": "eq",
"expected": true
},
{
"factKey": "chat.assistantTurnCreated",
"operator": "eq",
"expected": true
}
]
}
}
}
}
}
Relevante Antwortfelder
{
"structuredContent": {
"ok": true,
"status": "ok",
"actionDispatched": true,
"guardedCommit": {
"dispatchStatus": "dispatched",
"verificationStatus": "verified_success",
"retryAdvice": "do_not_retry",
"outcomeVerdict": "satisfied"
}
}
}
Agenteninterpretation
{
"treatAs": "verified action outcome",
"mayContinue": true,
"doNotRepeat": "actionDispatched is true and the send is non-idempotent",
"memorySignal": "success can support task progress and future learning"
}
MCP-Vertrag
Das ist die nüchterne Schicht unter der Erklärung. Sie beschreibt CLS-Felder, die Agenten und Integratoren als Vertragssignale lesen sollen, nicht als freien Beschreibungstext.
Ausführungsregel: Keine Commit-Point-Handlung ist abgeschlossen, bevor ihre aktuelle Nachbedingung beobachtet wurde oder Unsicherheit explizit sichtbar ist.
| Variable | Typ / Werte | Standard | Wirkung |
|---|---|---|---|
goalContext |
object oder null in Wahrnehmungsantworten | null, wenn kein aktives Ziel passt | Resume-Anker für das aktive Closed-Loop-Ziel auf dem aktuellen Target. |
goalContext.goalId / summary |
string; string | berechnet | Identifiziert das aktuelle Ziel und gibt dem Agenten einen kompakten, menschenlesbaren Zielanker. |
goalContext.mode |
agent_driven | runtime_assisted | fully_autonomous | agent_driven beim Erstellen eines Ziels | Zeigt, wie stark Zielarbeit vom Agenten oder von Laufzeitassistenz getragen wird. |
goalContext.state |
active | active, wenn sichtbar | Perception liefert nur aktiven Zielkontext zum Fortsetzen. Zielabfragen können auch terminale Zustände zeigen. |
goalContext.currentStep / totalSteps |
Integer; Integer | berechnet | Zeigt, wo der Agent innerhalb des aktiven Schrittplans steht. |
goalContext.stepStatus |
planned | ready | blocked | dispatched | verifying | done | ambiguous | failed | aborted | null | null, wenn kein Schritt existiert | Sagt dem Agenten, ob der aktuelle Schritt noch geplant, schon ausgelöst, in Prüfung, erledigt oder blockiert ist. |
goalContext.stepAction |
string oder null | null | Menschenlesbare Handlungsbeschreibung für den aktuellen Schritt. |
nova.goal_register |
MCP-Tool | in CLS-fähigen Nova-Sitzungen verfügbar | Erstellt, liest, schließt oder annotiert Closed-Loop-Ziele. |
op |
create | query | close | annotate | erforderlich | Wählt die Goal-Register-Operation. |
targetId |
string | create defaultet auf active; query optional; Interaktionstools defaulten auf active, wenn weggelassen | Ordnet ein Ziel oder eine Handlung dem gemeinten Browser-Tab oder Sandbox-Target zu. |
agentId |
string | optional bei Guarded-Action-Tools | Kennzeichnet den aufrufenden Agenten für Guarded-Makros und claim-bewusste Ausführung. Es ist Agentenmetadatum, kein sichtbarer Seitenzustand. |
goalId |
string | erforderlich für close/annotate und gezielte query | Identifiziert das Ziel, das gelesen, geschlossen oder annotiert wird. |
summary |
string | erforderlich für create | Definiert die Zielzusammenfassung, die später in goalContext erscheint. |
mode |
agent_driven | runtime_assisted | fully_autonomous | agent_driven | Legt den Ausführungsstil des Ziels fest. |
preconditions |
Assertion Set | optional beim Erstellen eines Ziels | Speichert Ziel-Voraussetzungen, die beim Öffnen des Ziels bereits gelten sollen. |
ownerAgentId / sidecarSessionId |
string; string | optional | Bindet ein Ziel an Agenten-Owner oder Sidecar-Sitzung für sichereres Resume und Handoff. Wenn weggelassen, wird keine Owner- oder Session-Bindung gesetzt. |
leaseMs |
Integer 1000-600000 | 120000 | Begrenzt, wie lange eine Ziel-Lease ohne Fortschritt aktiv bleiben darf. |
steps |
Array, max. 50 | optional | Definiert einen geordneten Schrittplan für das Ziel. |
steps[].actionDesc |
string | pro Schritt erforderlich | Benennt einen Zielschritt für Agenten-Resume und Aktivitätsanzeige. |
steps[].contract |
transitionContract object |
optional | Speichert den Closed-Loop-Vertrag für diesen Schritt. |
includeSteps / includeEvents / eventsLimit |
boolean; boolean; Integer 1-200 | true; false; 50 | Steuert, wie viel Schritt- und Event-Detail eine Zielabfrage zurückgibt. |
state |
completed | failed | aborted | erforderlich für close | Schließt ein Ziel mit einem terminalen Zustand. |
content / source |
string; string | content für annotate erforderlich; source defaultet auf agent | Fügt einem Ziel ein Annotation-Event hinzu. |
legacy aliases |
preconditionsJson, steps[].contractJson, ownerAgent, ownerSession, leaseTimeoutMs | aus Kompatibilitätsgründen akzeptiert | Kompatibilitätsnamen für ältere Clients. Neue Integrationen sollten strukturierte Felder bevorzugen und strukturierte und Legacy-Formen nicht mischen. |
transitionContract |
object an Click-/Type-/Guarded-Tools | für erkannte Commit Points erforderlich; von Guarded-Makros automatisch erzeugt | Definiert Voraussetzungen, Nachbedingungen, Retry-Policy, Ambiguitäts-Policy und Stabilitätseinstellungen für eine zustandsändernde Handlung. |
transitionContract.actionKind |
dismiss_overlay | send_message | submit_form | select_option | custom | custom bei rohen Verträgen; makrospezifisch bei Guarded-Tools | Wählt aktionsspezifische Stabilitätsstandards. |
transitionContract.preconditions |
Assertion Set: all / any / forbidden | optional | Bedingungen, die vor Dispatch ausgewertet werden. Fehlgeschlagene Voraussetzungen blockieren die Handlung. |
transitionContract.postconditions.success / forbidden / ambiguous |
Assertion Sets | mindestens ein nicht-leerer Bucket für Commit Points | Definiert, welche beobachteten Ergebnisse als Erfolg, Fehlschlag oder Ambiguität zählen. |
assertion.factKey / operator / expected / frameId |
string; eq | not_eq | neq | exists | not_exists | contains | gt | lt | gte | lte; JSON; string oder null | factKey und operator erforderlich | Einzelne maschinenprüfbare Bedingung innerhalb von Voraussetzungen oder Nachbedingungen. |
transitionContract.retryPolicy |
idempotent | non_idempotent | no_retry | non_idempotent | Steuert, ob ein erneuter Dispatch sicher sein kann. Sends, Submits und Logins sind meist nicht-idempotent. |
transitionContract.ambiguityPolicy |
signal | retry_once | abort | signal | Steuert, wie ambige Nachbedingungs-Treffer den Retry-Hinweis beeinflussen. |
transitionContract.stabilityWindowMs / stabilityMs |
Integer 500-30000; Integer 0-5000 | aktionsspezifische Template-Standards | Optionales Beobachtungsfenster und Haltezeit. Runtime begrenzt Werte auf geschützte Grenzen. |
actionDispatched |
boolean | berechnet | True erst, nachdem die Seite wirklich berührt wurde. Bei true dürfen Agenten Sends/Submits nicht blind doppeln. |
guardedCommit.transitionId |
string | generiert | Korrelierter Identifier für eine geschützte Transition durch Dispatch und Verifikation. |
guardedCommit.dispatchStatus |
dispatched | blocked_precondition | blocked_goal | blocked_coordinator | berechnet | Sagt, ob die Handlung ausgelöst wurde oder vor Seitenkontakt blockiert blieb. |
guardedCommit.verificationStatus |
verified_success | verified_fail | indeterminate | skipped | pending | berechnet | Ergebnis-Klassifikation nach der Handlung. |
guardedCommit.indeterminateReason |
no_signal_yet | ambiguous_signal | page_navigated | frame_destroyed | timeout | eval_error | null | null | Erklärt, warum CLS Erfolg oder Fehlschlag nicht beweisen konnte. |
guardedCommit.retryAdvice |
safe_to_retry | do_not_retry | check_postcondition_first | berechnet | Leitet Wiederherstellung nach Fehlschlag oder Unklarheit. |
guardedCommit.preconditionVerdict / outcomeVerdict |
satisfied | failed | unknown | null | berechnet | Zeigt, ob das geprüfte Voraussetzung- oder Nachbedingungs-Set bestanden hat. |
guardedCommit.failedAssertions[] |
factKey, op, expected, observed, passed, error | nur bei fehlgeschlagenen oder unbekannten Assertions | Zeigt, welche Assertion Block, Fehlschlag oder Unklarheit verursacht hat. |
guardedCommit.startedAt / completedAt / durationMs |
Integer-Zeitstempel; Integer-Dauer | berechnet | Zeigt, wann die geschützte Verifikation begann, wann sie endete und wie lange sie dauerte. |
stage / verifyState / retryAdvice |
string; verified | likely | uncertain | failed; Retry-Hinweis oder null | berechnet, wenn vom Tool unterstützt | Kompakte Top-Level-Orientierung, wo das Tool stoppte, wie stark Ad-hoc-Verifikation war und ob Recovery Vorsicht braucht. |
status / reasonCode / retryable / retryAfterMs |
Top-level Antwortsignale | berechnet | Kompakte Tool-Ergebnisfelder für blockierte, teilweise, fehlgeschlagene oder retryfähige Ausgänge. |
Agenten-Werkzeuge
MCP-Tools für Agenten. Diese Variablen und Werkzeugnamen sind für Agenten und Integratoren gedacht. Sie sind keine normalen Bedienbefehle für Menschen in der Oberfläche.
| Variable | Bedeutung |
|---|---|
nova.goal_register |
Ein Ziel festhalten |
nova.guarded_send_message |
Nachricht mit Ergebnisprüfung senden |
nova.guarded_submit_form |
Formular mit Ergebnisprüfung absenden |
nova.guarded_switch_model |
Modellwechsel mit Ergebnisprüfung ausführen |
nova.guarded_switch_sandbox |
Sandbox-Wechsel mit Ergebnisprüfung ausführen |
nova.guarded_login |
Geschützte Anmeldung ausführen |
nova.perceive |
Liest die aktuelle Seite und kann den aktiven Closed-Loop-Zielkontext liefern. |
nova.click_selector |
Klickt einen Selektor oder eine CTA-Referenz; Commit-Point-Klicks können einen Transition Contract nutzen und ein Guarded-Commit-Ergebnis zurückgeben. |
nova.type_selector |
Tippt in einen Selektor; Submit-artiges Tippen kann einen Transition Contract nutzen und ein Guarded-Commit-Ergebnis zurückgeben. |