Previsualiza un mandato y luego aplícalo
Compila un mandato con apply: false, lee los permisos que otorgaría y su previewDigest, y luego aplica exactamente lo que previsualizó.
mandates.compile
Compila un mandato con apply: false, lee los permisos que otorgaría y su previewDigest, y luego aplica exactamente lo que previsualizó.
mandates.compilePasa por Intramedial acciones de agentes, hashes de contenido, pruebas de API, DNS, webhooks, llamadas LLM y commits. Obtén un recibo firmado que cualquiera verifica, sin fiarse de nadie.
Un mandato es la carta de un agente como código, y aplicarlo cambia de inmediato lo que Intralock admite. Quieres leer primero los permisos y quieres que la aplicación falle si el mandato o la constitución cambiaron después de que los vio. El digest de la vista previa vincula ambos.
policies.approve el mínimo que sirve; un scope de Tools más amplio también valepolicies.approve, para el paso de aplicarimd, Cedar o Rego (un subconjunto de igualdad)El código lee la clave de INTRAMEDIAL_KEY. Guárdala en tu shell o en tu almacén de secretos, nunca en un archivo que suba al repositorio. Las llamadas que requieren una persona con sesión iniciada no pueden usar una clave: las hace la consola.
Envía el código fuente con apply en false. El mandato se compila en permisos y se guarda el artefacto firmado, pero la instantánea del espacio de trabajo no cambia. simulate es el gemelo de solo lectura que devuelve la diferencia con la constitución vigente.
revoked y withheld, para que puedas leer el efecto.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"])Lee mandate.grants y conserva previewDigest. Cubre los permisos compilados y la constitución, no el texto fuente.
Envía el mismo código fuente con previewDigest. Si el mandato o la constitución cambiaron desde entonces, la llamada se rechaza 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())Copiado de: /docs/mandates-compile
El libro mayor es de solo anexado y está sellado bajo raíces de Merkle. La hora de una entrada es el reloj propio de Intramedial, y un paquete firmado puede verificarse sin conexión con la clave publicada.
Ejecuta un lens instalado sobre los datos que envíe, lee sus hallazgos y conserva el resultado almacenado con su digest.
lenses.runQuita o agrega un permiso en una copia de la política, sondéala y lee cada veredicto antes y después del cambio.
drills.counterfactualObtén la clave de prueba gratis, atestigua un hash con content.attest y verifica el recibo firmado que vuelve.
coordination.admitUn email breve cuando añadimos recetas. Ningún otro correo, y puedes darte de baja desde cualquier mensaje.
Sin cuenta: 35 llamadas en 7 días en las rutas attest, con recibos marcados como de prueba. Regístrate cuando quieras seguir.