Pré-visualizar um mandate e depois aplicá-lo
Compile um mandate com apply: false, leia as concessões que ele faria e seu previewDigest, e depois aplique exatamente o que pré-visualizou.
mandates.compile
Compile um mandate com apply: false, leia as concessões que ele faria e seu previewDigest, e depois aplique exatamente o que pré-visualizou.
mandates.compilePasse ações de agentes, hashes de conteúdo, checagens de API, DNS, webhooks, chamadas de LLM e commits git pela Intramedial. Receba um recibo assinado que todos verificam – sem confiar em nós.
Um mandate é a carta de um agente como código, e aplicá-lo muda de imediato o que o Intralock admite. Você quer ler as concessões antes e quer que a aplicação falhe se o mandate ou a constituição mudou depois de você olhar. O digest da pré-visualização vincula os dois.
policies.approve o menor que funciona; um escopo Tools mais amplo também servepolicies.approve, para a etapa de aplicaçãoimd, Cedar ou Rego (um subconjunto de igualdade)O código lê a chave de INTRAMEDIAL_KEY. Guarde-a no seu shell ou no seu cofre de segredos, nunca em um arquivo que você faz commit. Chamadas que exigem uma pessoa logada não podem usar chave: o console as faz.
Envie o código-fonte com apply igual a false. O mandate compila em concessões e o artefato assinado é armazenado, mas o snapshot do workspace não muda. simulate é o gêmeo somente leitura que devolve a diferença em relação à constituição em vigor.
revoked e withheld, para você ler o efeito.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"])Leia mandate.grants e guarde previewDigest. Ele cobre as concessões compiladas e a constituição, não o texto-fonte.
Envie o mesmo código-fonte com previewDigest. Se o mandate ou a constituição mudou desde então, a chamada é recusada com 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
O livro-razão é somente de acréscimo e selado sob raízes Merkle. A hora de uma entrada é o relógio da própria Intramedial, e um bundle assinado pode ser conferido offline com a chave publicada.
Execute uma lente instalada sobre os dados que você enviar, leia seus achados e guarde o resultado armazenado com seu digest.
lenses.runRemova ou adicione uma concessão em uma cópia da política, teste-a e leia cada veredito antes e depois da mudança.
drills.counterfactualPegue a chave de teste grátis, ateste um hash com content.attest e verifique o recibo assinado que volta.
coordination.admitUm e-mail curto quando somamos receitas. Nenhum outro e-mail, e você cancela por qualquer mensagem.
Sem conta: 35 chamadas em 7 dias nas rotas attest, com recibos marcados como teste. Cadastre-se quando quiser seguir adiante.