Presenta un reclamo sobre un recurso
Declara lo que un agente está por hacer sobre un recurso y deja que el plano lo comprueba contra los reclamos abiertos.
civics.claims
Declara lo que un agente está por hacer sobre un recurso y deja que el plano lo comprueba contra los reclamos abiertos.
civics.claimsPasa por Intramedial acciones de agentes, hashes de contenido, pruebas de API, DNS, webhooks, llamadas LLM y commits. Obtén un recibo firmado que cualquiera verifica, sin fiarse de nadie.
Antes de un trabajo largo, como una migración de esquema, un agente declara su intención donde otros puedan verla. Una disputa comprueba otros reclamos abiertos sobre el recurso. Un reclamo no reserva nada, así que sigue una concesión.
El código lee la clave de INTRAMEDIAL_KEY. Guárdala en tu shell o en tu almacén de secretos, nunca en un archivo que suba al repositorio. Las llamadas que requieren una persona con sesión iniciada no pueden usar una clave: las hace la consola.
Envía un title, el resource, el reclamante en by y contest: true. El reclamo se almacena primero y luego se compara con los reclamos abiertos de otros agentes sobre el recurso.
El libro mayor es de solo anexado y está sellado bajo raíces de Merkle. La hora de una entrada es el reloj propio de Intramedial, y un paquete firmado puede verificarse sin conexión con la clave publicada.
civics.claimscivics-claims
curl -sS -X POST https://api.intramedial.com/api/v1/acp/civics/claims \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Migrate the billing schema",
"resource": "db:billing",
"by": "did:web:acme.example:agent:billing",
"contest": true
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/civics/claims", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Migrate the billing schema",
resource: "db:billing",
by: "did:web:acme.example:agent:billing",
contest: true,
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/civics/claims",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"title": "Migrate the billing schema",
"resource": "db:billing",
"by": "did:web:acme.example:agent:billing",
"contest": True,
},
timeout=30,
)
print(res.status_code, res.json())claim es el reclamo almacenado. Tras una disputa también incluye contested, conflictId y caseId, y contest enumera los casos filed, el número suppressed y las comprobaciones de standing. Una disputa presenta un caso y se detiene.
{
"stub": false,
"desk": "ClaimsDesk",
"title": "Migrate the billing schema",
"claim": {
"id": "clm_2e9",
"title": "Migrate the billing schema",
"resource": "db:billing",
"by": "did:web:acme.example:agent:billing"
},
"liaison": { "skipped": true }
}Un reclamo no reserva ni deniega nada. Toma una concesión sobre el recurso, para que se rechace a otros agentes mientras el trabajo se ejecuta y se nombre al titular en el rechazo.
curl -sS -X POST https://api.intramedial.com/api/v1/acp/coordination/lease \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"resource": "db:billing",
"actorDid": "did:web:acme.example:agent:billing"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/coordination/lease", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
resource: "db:billing",
actorDid: "did:web:acme.example:agent:billing",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/coordination/lease",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"resource": "db:billing",
"actorDid": "did:web:acme.example:agent:billing",
},
timeout=30,
)
print(res.status_code, res.json())Copiado de: /docs/civics-claims
Toma una concesión exclusiva sobre un recurso con coordination.lease, mira quién la tiene y suéltala cuando termine.
coordination.leaseLee la cola de casos presentados, pide al árbitro que escuche uno y lee su fallo y la vía para apelarlo.
arbitration.arbiterPresenta un elemento en el expediente con sus partes y legitimación, lee su estado, enumera el expediente y mira cómo se atiende, cierra o apela un elemento.
courts.fileUn email breve cuando añadimos recetas. Ningún otro correo, y puedes darte de baja desde cualquier mensaje.
Sin cuenta: 35 llamadas en 7 días en las rutas attest, con recibos marcados como de prueba. Regístrate cuando quieras seguir.