Controlla i lease con una lente di governance
Esegui una lente installata sui dati inviati, leggine i rilievi e conserva il risultato archiviato con il suo digest.
lenses.run
Esegui una lente installata sui dati inviati, leggine i rilievi e conserva il risultato archiviato con il suo digest.
lenses.runFai 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.
Hai lease, un mandato o un testo e vuoi applicarvi una regola fissa. Una lente è deterministica, non usa alcun modello e vede solo i dati inviati.
Il 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 l'installId e l'input; per lease_overlap è un elenco di lease.
lenses.runlenses-run
curl -sS -X POST https://api.intramedial.com/api/v1/acp/lenses/run \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"installId": "install_7c2e",
"input": {
"leases": [
{
"id": "l1",
"resource": "repo:payments/main",
"holder": "did:web:acme.example:agent:billing",
"start": "2026-11-01T09:00:00Z",
"end": "2026-11-01T10:00:00Z"
},
{
"id": "l2",
"resource": "repo:payments/main",
"holder": "did:web:acme.example:agent:refunds",
"start": "2026-11-01T09:30:00Z",
"end": "2026-11-01T10:30:00Z"
}
]
}
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/lenses/run", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
installId: "install_7c2e",
input: {
leases: [
{
id: "l1",
resource: "repo:payments/main",
holder: "did:web:acme.example:agent:billing",
start: "2026-11-01T09:00:00Z",
end: "2026-11-01T10:00:00Z",
},
{
id: "l2",
resource: "repo:payments/main",
holder: "did:web:acme.example:agent:refunds",
start: "2026-11-01T09:30:00Z",
end: "2026-11-01T10:30:00Z",
},
],
},
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/lenses/run",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"installId": "install_7c2e",
"input": {
"leases": [
{
"id": "l1",
"resource": "repo:payments/main",
"holder": "did:web:acme.example:agent:billing",
"start": "2026-11-01T09:00:00Z",
"end": "2026-11-01T10:00:00Z",
},
{
"id": "l2",
"resource": "repo:payments/main",
"holder": "did:web:acme.example:agent:refunds",
"start": "2026-11-01T09:30:00Z",
"end": "2026-11-01T10:30:00Z",
},
],
},
},
timeout=30,
)
print(res.status_code, res.json())status è pass senza rilievi e fail altrimenti. Ogni rilievo ha un code, un message e un path, e l'evidenza indica entrambi i lease. La stessa regola sullo stesso input dà lo stesso digest.
{
"result": {
"id": "result_3f9a",
"installId": "install_7c2e",
"definitionId": "lens_builtin_lease_overlap",
"version": 1,
"definitionDigest": "sha256:5b1d0c9e7a42",
"inputDigest": "sha256:e07a93b1c6d8",
"status": "fail",
"findings": [{ "code": "lease.overlap", "message": "overlapping leases for repo:payments/main", "path": "$.leases" }],
"evidence": [{ "kind": "lease_overlap", "path": "$.leases", "detail": { "resource": "repo:payments/main", "left": "l1", "right": "l2" } }],
"digest": "sha256:a2c4e8f016b3",
"executedAt": "2026-11-01T09:12:00.000Z"
}
}Il risultato è archiviato. results lo restituisce per resultId, oppure elenca ogni risultato di un'installazione.
Copiato da: /docs/lenses-run
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.
Compila un mandato con apply: false, leggi le concessioni che produrrebbe e il suo previewDigest, poi applica esattamente ciò che si è visto.
mandates.compileElenca i rilevatori, esegui lease-overlap, leggi i conflitti che cita con le relative evidenze, poi i casi presentati per la revisione.
detection.runPrendi un lease esclusivo su una risorsa con coordination.lease, vedi chi lo detiene e rilascialo a lavoro finito.
coordination.leaseUna 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.