Tester d’abord un changement de droit
Retirez ou ajoutez un droit dans une copie de la politique, sondez-la et lisez chaque verdict avant et après le changement.
drills.counterfactual
Retirez ou ajoutez un droit dans une copie de la politique, sondez-la et lisez chaque verdict avant et après le changement.
drills.counterfactualFaites passer actions d’agents, hash de contenu, contrôles d’API, requêtes DNS, webhooks, appels LLM et commits git par Intramedial. Obtenez un reçu signé vérifiable par tous – sans nous croire.
Vous allez retirer un droit et voulez savoir quel agent perd quoi. Intralock évalue chaque sonde par rapport à la politique actuelle et à une copie où votre changement est appliqué. Aucun modèle ne tourne, et rien ne change dans l’espace de travail.
policies.propose le plus étroit qui marche ; un scope Tools plus large aussipolicies.propose, nécessaire pour lancer un exerciceLe code lit la clé depuis INTRAMEDIAL_KEY. Gardez-la dans votre shell ou votre coffre à secrets, jamais dans un fichier que vous commitez. Les appels qui exigent une personne connectée ne peuvent pas utiliser de clé : c’est la console qui les fait.
pack_counterfactual est intégré. Il retire le droit g-house et sonde did:a en lecture de repo:main, pour que vous voyiez la forme de la réponse avant d’écrire la vôtre. Avec un workflow d’exercice lié et sans forceInline, la réponse est queued: true avec 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())Chaque sonde a un before et un after. Une autorisation nomme son grantId ; un refus donne une reason comme no_grant ou cycle, et un detail. before et after décrivent la première sonde.
{
"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
}Envoyez grantIds à retirer, ou addGrants pour des droits hypothétiques, et les probes qui comptent. Un droit hypothétique qui formerait un cycle est ignoré, pas appliqué.
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())Copié de: /docs/drills-counterfactual
Le registre est en ajout seul et scellé sous des racines de Merkle. L’heure d’une entrée est l’horloge propre d’Intramedial, et un bundle signé peut être vérifié hors ligne avec la clé publiée.
Compilez un mandat avec apply: false, lisez les droits qu’il accorderait et son previewDigest, puis appliquez exactement ce que vous avez prévisualisé.
mandates.compileExécutez les six scénarios Intralock fixes, lisez le résultat de chacun, et fixez une cadence pour que l’exercice se répète seul.
drills.frtExécutez une lentille installée sur les données que vous envoyez, lisez ses constats et gardez le résultat stocké avec son condensé.
lenses.runUn court e-mail quand nous ajoutons des recettes. Rien d’autre, et désabonnement possible depuis chaque message.
Sans compte : 35 appels sur 7 jours sur les routes attest, avec des reçus marqués test. Inscrivez-vous quand vous voulez continuer.