Richiedi l'approvazione di una persona per una scrittura
Lascia una scrittura rifiutata in coda di approvazione finché una persona autenticata la approva, poi riprova con il token.
coordination.approve
Lascia una scrittura rifiutata in coda di approvazione finché una persona autenticata la approva, poi riprova con il token.
coordination.approveFai passare da Intramedial azioni di agenti, hash di contenuti, controlli API, lookup DNS, webhook, chiamate LLM e commit git. Ricevi una ricevuta firmata che chiunque verifica, senza fidarsi di noi.
Alcune scritture non devono passare sulla sola parola di un agente. L'ammissione rifiuta una scrittura senza token e lascia una richiesta; un amministratore o un approvatore autorizzato la decide e l'approvazione emette un token per quell'attore, risorsa e verbo.
Il codice legge la chiave da INTRAMEDIAL_KEY. Tienila nella shell o nel tuo secret store, mai in un file di cui fai commit. Le chiamate che richiedono una persona autenticata non possono usare una chiave: le effettua la console.
Dichiara una scrittura senza token. L'ammissione la rifiuta e l'approvalId nella risposta indica la richiesta in coda in attesa della decisione di una persona.
La decisione torna come approval, con il suo stato.
{
"approval": {
"id": "apr_7f3a",
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
: ,
: ,
: ,
: ,
: ,
: ,
: ,
: ,
:
},
:
}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())Un approvatore autenticato legge la richiesta nella console e la approva. Una chiave o un agente non possono decidere; questo è il corpo che invia la console.
{
"id": "apr_7f3a",
"reason": "expected batch"
}L'agente riprova con il token come confirmationToken. È monouso e legato all'attore, alla risorsa e al verbo.
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())Copiato da: /docs/coordination-approve
Il registro è append-only e sigillato sotto radici Merkle. L'ora di una voce è l'orologio di Intramedial e un bundle firmato puoi verificarlo offline con la chiave pubblicata.
Apri una richiesta di doppio controllo per un ambito fisso, fai approvare il suo digest a un secondo amministratore, poi esegui l'azione protetta.
dual.control-scopesPrendi la chiave test gratis, attesta un hash con content.attest e verifica la ricevuta firmata che torna.
coordination.admitAmmetti tramite Intralock la scrittura di un agente su un repository e pubblica il verdetto sul commit come check run o status.
github.enforceUna breve email quando aggiungiamo ricette. Nessun’altra posta, e ti disiscrivi da ogni messaggio.
Senza account: 35 chiamate in 7 giorni sulle route attest, con ricevute marcate come test. Iscriviti quando vuoi andare avanti.