Gerar um conflict audit
Envie nove conjuntos de dados, cada um com uma declaração de completude, e leia as oito métricas e as recomendações classificadas para mover recursos de observe para enforce.
conflict.audit-latest
Envie nove conjuntos de dados, cada um com uma declaração de completude, e leia as oito métricas e as recomendações classificadas para mover recursos de observe para enforce.
conflict.audit-latestPasse 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.
Você quer saber onde os agentes colidem e quais recursos devem passar de observe para enforce. O motor deriva oito métricas dos conjuntos de dados que você fornece, e uma métrica aparece como incompleta a menos que seus conjuntos estejam completos.
policies.propose o menor que funciona; um escopo Tools mais amplo também serveidempotencyKey de no máximo 128 caracteres, nova para cada entradapolicies.propose, para gerar um relatórioO 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 a janela, uma idempotencyKey, uma entrada de completeness para cada um dos nove conjuntos de dados e os conjuntos como arrays explícitos, mesmo vazios. A mesma chave com entrada diferente é recusada com 409.
conflict.audit-latestconflict-audit-latest
curl -sS -X POST https://api.intramedial.com/api/v1/acp/conflict-audit/generate \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"windowStart": "2026-10-02T09:00:00.000Z",
"windowEnd": "2026-11-01T09:00:00.000Z",
"idempotencyKey": "audit-2026-11-01",
"completeness": {
"registeredAgents": "complete",
"shadowIdentities": "unknown",
"shadowActions": "unknown",
"admissions": "incomplete",
"leases": "complete",
"waiters": "incomplete",
"ledgerEvents": "complete",
"detectorFindings": "complete",
"frtFindings": "unknown"
},
"registeredAgents": [],
"shadowIdentities": [],
"shadowActions": [],
"admissions": [],
"leases": [],
"waiters": [],
"ledgerEvents": [],
"detectorFindings": [],
"frtFindings": []
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/conflict-audit/generate", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
windowStart: "2026-10-02T09:00:00.000Z",
windowEnd: "2026-11-01T09:00:00.000Z",
idempotencyKey: "audit-2026-11-01",
completeness: {
registeredAgents: "complete",
shadowIdentities: "unknown",
shadowActions: "unknown",
admissions: "incomplete",
leases: "complete",
waiters: "incomplete",
ledgerEvents: "complete",
detectorFindings: "complete",
frtFindings: "unknown",
},
registeredAgents: [],
shadowIdentities: [],
shadowActions: [],
admissions: [],
leases: [],
waiters: [],
ledgerEvents: [],
detectorFindings: [],
frtFindings: [],
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/conflict-audit/generate",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"windowStart": "2026-10-02T09:00:00.000Z",
"windowEnd": "2026-11-01T09:00:00.000Z",
"idempotencyKey": "audit-2026-11-01",
"completeness": {
"registeredAgents": "complete",
"shadowIdentities": "unknown",
"shadowActions": "unknown",
"admissions": "incomplete",
"leases": "complete",
"waiters": "incomplete",
"ledgerEvents": "complete",
"detectorFindings": "complete",
"frtFindings": "unknown",
},
"registeredAgents": [],
"shadowIdentities": [],
"shadowActions": [],
"admissions": [],
"leases": [],
"waiters": [],
"ledgerEvents": [],
"detectorFindings": [],
"frtFindings": [],
},
timeout=30,
)
print(res.status_code, res.json())A rota latest devolve o relatório mais novo, ou 404 antes de existir algum. O id do relatório vem do seu digest, então as mesmas entradas dão o mesmo relatório. Uma métrica aparece como incomplete a menos que todos os conjuntos que ela usa sejam declarados complete.
curl -sS https://api.intramedial.com/api/v1/acp/conflict-audit/latest \
-H "Authorization: Bearer $INTRAMEDIAL_KEY"const res = await fetch("https://api.intramedial.com/api/v1/acp/conflict-audit/latest", {
headers: { Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`, },
});
const body = await res.json();
const { report } = body;
for (const rec of report.recommendations) {
const { from, to, gated, gateReason } = rec.proposedAction;
console.log(rec.resourceUrns.join(", "), from, "to", to, gated ? "gated: " + gateReason : "open");
}
console.log(report.limitations);import os, requests
res = requests.get(
"https://api.intramedial.com/api/v1/acp/conflict-audit/latest",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
body = res.json()
report = body["report"]
for rec in report["recommendations"]:
p = rec["proposedAction"]
print(", ".join(rec["resourceUrns"]), p["from"], "to", p["to"], "gated: " + p["gateReason"] if p["gated"] else "open")
print(report["limitations"])Cada recomendação propõe mover recursos de observe para enforce. Uma com confiança abaixo de 0,65 fica gated e não pode ser adotada; gateReason diz por quê, e limitations lista o que falta.
A adoção é um fluxo separado. Uma confirmação precisa de um motivo e da frase ADOPT <workspaceId>, e uma aplicação precisa do token de uso único que ela devolve e de um serviço adopter.
Copiado de: /docs/conflict-audit-latest
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.
Liste os detectores, execute lease-overlap, leia os conflitos que ele cita com sua evidência e depois leia os casos que registrou para revisão.
detection.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.counterfactualLeia o livro-razão em busca de picos, rajadas e silêncio nos eventos de lease e credencial e execute a verificação a partir do seu próprio agendador.
watchdog.checkUm 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.