KNOLO / HUBPublishknolo.dev → Runtime
REFERENCE / REGISTRY API

Registry HTTP API

The CLI contract is a tiny JSON manifest plus a public Blob URL. Full detail lives in docs/registry-api.md and docs/cli-contract.md.

01Manifest

GET /api/v1/packs/:publisher/:slug/:version (or /latest) returns name, version, sha256, optional stateRoot, url, license, sizeBytes, and yanked. Responses send Cache-Control: no-store. A 200 increments packs.pulls after the response. Yanked versions return 410 with the same identity fields so a lockfile can still name the bytes.

GET /api/v1/packs/acme/refund-policy/1.2.0
GET /api/v1/packs/acme/refund-policy/latest

02Discovery

GET /api/v1/packs searches listed packs (q, format, license, agents, official, verified, sort). GET /api/v1/packs/:publisher/:slug returns the listing plus latest manifest. GET /api/v1/publishers/:handle returns the profile and its packs. Signed-in users star a listing with POST /api/v1/packs/:publisher/:slug/star. None of these proxy Blob bytes.

GET /api/v1/packs?q=refunds&format=V5
GET /api/v1/packs/acme/refund-policy
GET /api/v1/publishers/acme

03Write APIs accept Bearer kno_ tokens

Upload, complete, verify, drafts, release, and yank accept a GitHub session or Authorization: Bearer kno_… (scope publish). Minting tokens (POST /api/v1/tokens) is GitHub-session only. 401 Sign in required on a write call usually means the Authorization header is missing the Bearer scheme or the token is revoked — not that Hub requires a browser login for that route. Artifact url must be a public Blob URL; private stores fail verification with 403.

04Hub does not execute agent metadata

Verification inspects agent registry data. The playground queries locally. Neither path runs tools, applies prompts, or honors grants. A host that wants those policies must opt in explicitly after mounting the artifact itself.