You list the operations a model is allowed to ask for, and tag each one with how risky it is. Lore’s server sits between the model and your app: it checks every request against that list and your policy, asks a person to approve the risky ones, lets your code do the work, then checks the result and writes a signed receipt. You don’t adopt our UI; you add a small library in whichever language you already use.
from lore_assist import AssistApprovalRequired, AssistClient, ControlMode, RiskTier, VerificationCode with AssistClient("https://YOUR_HOST/api/v1/assist", api_key="...") as client: session = client.start_session(transport="api", initial_route="/customers") plan = client.generate_plan(session.session_id, "Create a customer record for Acme Corp") step = plan.steps[1] # Approval is an explicit maker/checker handoff by default. try: receipt = client.run_step( session.session_id, plan.plan_id, step.step_id, plan_digest=plan.plan_digest, idempotency_key=step.idempotency_key, control_mode=ControlMode.SUBMIT, risk_tier=step.tier or RiskTier.STANDARD, execute=lambda authorization: create_customer_in_your_app("Acme Corp"), verification=VerificationCode.VERIFIED, ) except AssistApprovalRequired as required: send_to_operator(required.handoff) # the operator approves; the model never can raise print(receipt.request_id, receipt.approval_used)
{
"version": "1",
"operations": [
{ "id": "navigate", "riskTier": "read_only" },
{ "id": "updateSettings", "riskTier": "standard" },
{ "id": "createProject", "riskTier": "standard" },
{ "id": "deleteProject", "riskTier": "destructive" }
]
}
$ lore manifest validate operation-manifest.json
# ✓ valid — 4 operation(s)
$ lore manifest publish operation-manifest.json
# canonical, hashed$ curl "$LORE/api/v1/receipts/public-key" # → { keys: [{ keyId, publicKeyPem, active }] } $ curl -H "Authorization: Bearer $LORE_TOKEN" "$LORE/api/v1/receipts/<executionId>/export" > receipt.json $ lore receipts verify receipt.json --public-key lore-receipts.pem VALID: Ed25519 v2 signature verifies (keyId d6074a62f28213de)
lore memory connect sets up the Lore MCP server in your AI client.
Setup, capture clients, memory, context, State Bridge, manifests, SDKs, receipts, analytics, compliance, security and deployment. Docs are available to early-access customers; ask us for access.
Request docs access →Working reference apps wired to State Bridge.