Prévisualiser un mandat, puis l’appliquer
Compilez un mandat avec apply: false, lisez les droits qu’il accorderait et son previewDigest, puis appliquez exactement ce que vous avez prévisualisé.
mandates.compile
Compilez un mandat avec apply: false, lisez les droits qu’il accorderait et son previewDigest, puis appliquez exactement ce que vous avez prévisualisé.
mandates.compileFaites passer actions d’agents, hash de contenu, contrôles d’API, requêtes DNS, webhooks, appels LLM et commits git par Intramedial. Obtenez un reçu signé vérifiable par tous – sans nous croire.
Un mandat est la charte d’un agent sous forme de code, et l’appliquer change aussitôt ce qu’Intralock admet. Vous voulez lire les droits d’abord, et vous voulez que l’application échoue si le mandat ou la constitution a changé après votre lecture. Le condensé d’aperçu lie les deux.
policies.approve le plus étroit qui marche ; un scope Tools plus large aussipolicies.approve, pour l’étape d’applicationimd, Cedar ou Rego (un sous-ensemble d’égalité)Le code lit la clé depuis INTRAMEDIAL_KEY. Gardez-la dans votre shell ou votre coffre à secrets, jamais dans un fichier que vous commitez. Les appels qui exigent une personne connectée ne peuvent pas utiliser de clé : c’est la console qui les fait.
Envoyez la source avec apply à false. Le mandat est compilé en droits et l’artefact signé est stocké, mais l’instantané de l’espace de travail ne change pas. simulate est son jumeau en lecture seule : il renvoie la différence avec la constitution en vigueur.
revoked et withheld, pour que vous puissiez lire l’effet.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"])Lisez mandate.grants et conservez previewDigest. Il couvre les droits compilés et la constitution, pas le texte source.
Envoyez la même source avec previewDigest. Si le mandat ou la constitution a changé depuis, l’appel est refusé avec 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())Copié de: /docs/mandates-compile
Le registre est en ajout seul et scellé sous des racines de Merkle. L’heure d’une entrée est l’horloge propre d’Intramedial, et un bundle signé peut être vérifié hors ligne avec la clé publiée.
Exécutez une lentille installée sur les données que vous envoyez, lisez ses constats et gardez le résultat stocké avec son condensé.
lenses.runRetirez ou ajoutez un droit dans une copie de la politique, sondez-la et lisez chaque verdict avant et après le changement.
drills.counterfactualObtenez la clé de test gratuite, attestez un hash avec content.attest et vérifiez le reçu signé renvoyé.
coordination.admitUn court e-mail quand nous ajoutons des recettes. Rien d’autre, et désabonnement possible depuis chaque message.
Sans compte : 35 appels sur 7 jours sur les routes attest, avec des reçus marqués test. Inscrivez-vous quand vous voulez continuer.