Genera un conflict audit
Invia nove dataset, ciascuno con una dichiarazione di completezza, poi leggi le otto metriche e le raccomandazioni ordinate per passare le risorse da observe a enforce.
conflict.audit-latest
Invia nove dataset, ciascuno con una dichiarazione di completezza, poi leggi le otto metriche e le raccomandazioni ordinate per passare le risorse da observe a enforce.
conflict.audit-latestFai 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.
Vuoi sapere dove gli agenti si scontrano e quali risorse dovrebbero passare da observe a enforce. Il motore ricava otto metriche dai dataset forniti e una metrica risulta incompleta a meno che i suoi dataset siano completi.
policies.propose il minimo che basta; va bene anche uno scope Tools più ampioidempotencyKey di al massimo 128 caratteri, nuova per ogni inputpolicies.propose, per generare un rapportoIl 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 la finestra, una idempotencyKey, una voce completeness per ciascuno dei nove dataset e i dataset come array espliciti, anche se vuoti. La stessa chiave con input diverso viene rifiutata con 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())La route latest restituisce il rapporto più recente, o 404 se non ne esiste alcuno. L'id del rapporto deriva dal suo digest, quindi gli stessi input danno lo stesso rapporto. Una metrica risulta incomplete a meno che ogni dataset che usa sia dichiarato 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"])Ogni raccomandazione propone di passare da observe a enforce per delle risorse. Una sotto 0.65 di confidenza è gated e non può essere adottata; gateReason ne spiega il motivo e limitations elenca ciò che manca.
L'adozione è un flusso separato. Una conferma richiede un motivo e la frase ADOPT <workspaceId>, e un'applicazione richiede il token monouso che restituisce e un servizio adopter.
Copiato da: /docs/conflict-audit-latest
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.
Elenca i rilevatori, esegui lease-overlap, leggi i conflitti che cita con le relative evidenze, poi i casi presentati per la revisione.
detection.runTogli o aggiungi una concessione in una copia della policy, sondala e leggi ogni verdetto prima e dopo la modifica.
drills.counterfactualLeggi il registro per raffiche, picchi e silenzi negli eventi di lease e credenziali ed esegui il controllo dal tuo scheduler.
watchdog.checkUna 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.