Prova prima una modifica alle concessioni
Togli o aggiungi una concessione in una copia della policy, sondala e leggi ogni verdetto prima e dopo la modifica.
drills.counterfactual
Togli o aggiungi una concessione in una copia della policy, sondala e leggi ogni verdetto prima e dopo la modifica.
drills.counterfactualFai 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.
Stai per rimuovere una concessione e vuoi sapere quale agente perde cosa. Intralock valuta ogni sonda rispetto alla policy attuale e a una copia con la modifica applicata. Nessun modello è eseguito e nulla cambia nel workspace.
policies.propose il minimo che basta; va bene anche uno scope Tools più ampiopolicies.propose, richiesto per eseguire un'esercitazioneIl 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.
pack_counterfactual è integrato. Toglie la concessione g-house e sonda did:a che legge repo:main, così vedi la forma della risposta prima di scrivere la tua. Con un workflow di esercitazione collegato e senza forceInline, la risposta è queued: true con un workflowId.
drills.counterfactualdrills-counterfactual
curl -sS -X POST https://api.intramedial.com/api/v1/acp/drills/counterfactual \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"packId": "pack_counterfactual"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/drills/counterfactual", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
packId: "pack_counterfactual",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/drills/counterfactual",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"packId": "pack_counterfactual",
},
timeout=30,
)
print(res.status_code, res.json())Ogni sonda ha un before e un after. Un allow indica il suo grantId; un deny fornisce un reason come no_grant o cycle e un detail. before e after descrivono la prima sonda.
{
"packId": "pack_counterfactual",
"dropped": "g-house",
"droppedIds": ["g-house"],
"added": [],
"probes": [
{
"probe": { "principal": "did:a", "resource": "repo:main", "action": "read", "nowMs": 1793523600000 },
"before": { "allow": true, "grantId": "g-house", "protectedClass": "none" },
"after": { "allow": false, "reason": "no_grant", "detail": "did:a lacks read on repo:main" }
}
],
"llm": false
}Invia i grantIds da togliere, oppure addGrants per concessioni ipotetiche, e le probes che contano. Una concessione ipotetica che formerebbe un ciclo viene saltata, non applicata.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/drills/counterfactual \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"grantIds": [
"g-house"
],
"probes": [
{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write"
}
]
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/drills/counterfactual", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
grantIds: ["g-house"],
probes: [
{
actorDid: "did:web:acme.example:agent:billing",
resource: "repo:payments/main",
action: "write",
},
],
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/drills/counterfactual",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"grantIds": ["g-house"],
"probes": [
{
"actorDid": "did:web:acme.example:agent:billing",
"resource": "repo:payments/main",
"action": "write",
},
],
},
timeout=30,
)
print(res.status_code, res.json())Copiato da: /docs/drills-counterfactual
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.compileEsegui i sei scenari fissi di Intralock, leggi il risultato di ciascuno e imposta una cadenza perché l'esercitazione si ripeta da sola.
drills.frtEsegui una lente installata sui dati inviati, leggine i rilievi e conserva il risultato archiviato con il suo digest.
lenses.runUna 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.