Consume this site in three ways

Every path below ends at the same place: a verified decision about what this origin allows.

1. The compliant agent example

git clone https://github.com/denyn1/aifeed-protocol
cd aifeed-protocol
node examples/agent/compliant-agent.js https://demo.aifeed.md --use retrieval --fetch

Exit code 0 means verified; 1 means unverified or denied.

2. The SDK

npm install @aifeed/verify
const sdk = require('@aifeed/verify');
const base = 'https://demo.aifeed.md/.well-known/';
const manifest = await sdk.fetchText(base + 'ai.json');
const signature = await sdk.fetchText(base + 'ai-signature.json');
const out = sdk.verifyAll({ manifestText: manifest.text, manifestBytes: manifest.buffer,
  signatureText: signature.text, domain: 'demo.aifeed.md' });
console.log(out.result);

3. Raw HTTP with content negotiation

curl -H 'Accept: text/aifeed+markdown' https://demo.aifeed.md/ | head -40
curl -H 'Accept: text/mako+markdown'  https://demo.aifeed.md/ | head -40
curl https://demo.aifeed.md/.well-known/aifeed-index.json | head -30

The verification chain

  1. TLS and domain match: the manifest's identity.domain equals the host.
  2. Ed25519 over JCS-canonical bytes with the aifeed.v0.2 separation.
  3. Optional DNS anchor: _aifeed.demo.aifeed.md carries the same public key.
  4. Permission decisions read from the signed permissions table.
  5. Revocation re-check before restricted uses.