Vedi un mandato in anteprima, poi applicalo
Compila un mandato con apply: false, leggi le concessioni che produrrebbe e il suo previewDigest, poi applica esattamente ciò che si è visto.
mandates.compile
Compila un mandato con apply: false, leggi le concessioni che produrrebbe e il suo previewDigest, poi applica esattamente ciò che si è visto.
mandates.compileFai 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.
Un mandato è lo statuto di un agente come codice e applicarlo cambia subito ciò che Intralock ammette. Vuoi leggere prima le concessioni e vuoi che l'applicazione fallisca se il mandato o la costituzione sono cambiati dopo la lettura. Il digest dell'anteprima lega le due cose.
policies.approve il minimo che basta; va bene anche uno scope Tools più ampiopolicies.approve, per il passo di applicazioneimd, Cedar o Rego (un sottoinsieme di uguaglianza)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.
Invia il sorgente con apply impostato su false. Il mandato viene compilato in concessioni e l'artefatto firmato viene archiviato, ma lo snapshot del workspace non cambia. simulate è il gemello in sola lettura che restituisce la differenza rispetto alla costituzione in vigore.
revoked e withheld, così se ne legge l'effetto.mandates.compilemandates-compile
curl -sS -X POST https://api.intramedial.com/api/v1/acp/mandates/compile \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"apply": false
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/mandates/compile", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
source: "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
format: "imd",
apply: false,
}),
});
const body = await res.json();
console.log(body.mandate.grants, body.applied, body.previewDigest);import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/mandates/compile",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"apply": False,
},
timeout=30,
)
body = res.json()
print(body["mandate"]["grants"], body["applied"], body["previewDigest"])Leggi mandate.grants e conserva previewDigest. Copre le concessioni compilate e la costituzione, non il testo sorgente.
Invia lo stesso sorgente con previewDigest. Se nel frattempo il mandato o la costituzione sono cambiati, la chiamata viene rifiutata con 409.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/mandates/compile \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"previewDigest": "9c1e5a07d4b3"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/mandates/compile", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
source: "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
format: "imd",
previewDigest: "9c1e5a07d4b3",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/mandates/compile",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"source": "mandate billing-writes\nallow write on repo:payments/main for did:web:acme.example:agent:billing",
"format": "imd",
"previewDigest": "9c1e5a07d4b3",
},
timeout=30,
)
print(res.status_code, res.json())Copiato da: /docs/mandates-compile
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.
Esegui una lente installata sui dati inviati, leggine i rilievi e conserva il risultato archiviato con il suo digest.
lenses.runTogli o aggiungi una concessione in una copia della policy, sondala e leggi ogni verdetto prima e dopo la modifica.
drills.counterfactualPrendi la chiave test gratis, attesta un hash con content.attest e verifica la ricevuta firmata che torna.
coordination.admitUna 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.