Für einen Write eine menschliche Freigabe verlangen
Lassen Sie einen abgelehnten Write in der Freigabewarteschlange warten, bis eine angemeldete Person ihn freigibt, und versuchen Sie es dann mit dem Token erneut.
coordination.approve
Lassen Sie einen abgelehnten Write in der Freigabewarteschlange warten, bis eine angemeldete Person ihn freigibt, und versuchen Sie es dann mit dem Token erneut.
coordination.approveLeiten Sie Agent-Aktionen, Inhalts-Hashes, API-Checks, DNS-Abfragen, Webhooks, LLM-Aufrufe und Git-Commits über Intramedial – für einen signierten Beleg, den jeder prüft, ohne uns zu vertrauen.
Manche Writes sollen nicht allein auf Zuruf eines Agenten durchgehen. Admission lehnt einen Write ohne Token ab und hinterlässt eine Anfrage; ein Administrator oder berechtigter Genehmiger entscheidet darüber, und die Freigabe stellt ein Token für diesen Akteur, diese Ressource und dieses Verb aus.
Der Code liest den Schlüssel aus INTRAMEDIAL_KEY. Halten Sie ihn in Ihrer Shell oder Ihrem Secret Store, nie in einer Datei, die Sie committen. Aufrufe, die eine angemeldete Person brauchen, können keinen Schlüssel verwenden: Die Konsole führt sie aus.
Melden Sie einen Write ohne Token. Admission lehnt ihn ab, und die approvalId in der Antwort benennt die Anfrage, die in der Warteschlange auf die Entscheidung einer Person wartet.
Die Entscheidung kommt als approval zurück, mit ihrem Status.
{
"approval": {
"id": "apr_7f3a",
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
},
:
}coordination.approvecoordination-approve
curl -sS -X POST https://api.intramedial.com/api/v1/acp/coordination/admit \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/coordination/admit", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
actorDid: "did:web:acme.example:agent:billing",
resource: "repo:payments/main",
action: "write",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/coordination/admit",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
},
timeout=30,
)
print(res.status_code, res.json())Ein angemeldeter Genehmiger liest die Anfrage in der Konsole und gibt sie frei. Ein Schlüssel oder ein Agent kann nicht entscheiden; dies ist der Body, den die Konsole sendet.
{
"id": "apr_7f3a",
"reason": "expected batch"
}Der Agent wiederholt mit dem Token als confirmationToken. Es ist einmalig verwendbar und an Akteur, Ressource und Verb gebunden.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/coordination/admit \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
"confirmationToken": "…"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/coordination/admit", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
actorDid: "did:web:acme.example:agent:billing",
resource: "repo:payments/main",
action: "write",
confirmationToken: "…",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/coordination/admit",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
"confirmationToken": "…",
},
timeout=30,
)
print(res.status_code, res.json())Kopiert aus: /docs/coordination-approve
Das Ledger ist Append-only und unter Merkle-Roots versiegelt. Die Zeit eines Eintrags ist Intramedials eigene Uhr, und ein signiertes Bundle lässt sich offline mit dem veröffentlichten Schlüssel prüfen.
Öffnen Sie eine Dual-Control-Anfrage für einen festen Scope, lassen Sie einen zweiten Administrator ihren Digest freigeben und führen Sie dann die abgesicherte Aktion aus.
dual.control-scopesGratis-Testschlüssel holen, Hash mit content.attest attestieren, den signierten Beleg prüfen.
coordination.admitLassen Sie den Schreibzugriff eines Agenten auf ein Repository über Intralock zu und posten Sie das Urteil als Check-Run oder Status auf den Commit.
github.enforceEine kurze E-Mail, wenn wir neue Rezepte ergänzen. Sonst keine Mail, und Sie melden sich aus jeder Nachricht ab.
Kein Konto nötig: 35 Aufrufe in 7 Tagen auf den Attest-Routen, Belege als Testbelege markiert. Registrieren Sie sich, wenn Sie weitermachen wollen.