{
"$schema": "https://cmn.dev/schemas/v1/spore-core.json",
"id": "agent-first-http",
"name": "Agent-First HTTP",
"version": "0.7.3",
"domain": "agentfirstkit.com",
"key": "ed25519.BwbSzqdDYyMN1pPW5snRk3afrJAovHn8aueMvDpfNKVw",
"synopsis": "Give your AI agent its own private browser — so it reads the real page, past logins and bot walls, without ever touching yours.",
"intent": [
"Give AI agents a deterministic URL acquisition layer that reports status, final URL, headers, body artifacts, redirects, timing, and typed transport failures as structured JSONL instead of prose",
"Focus on pages and web resources that are hard for agents to acquire through a simple shell fetch: JavaScript-rendered, cookie- or session-bound, bot-walled, or XHR-injected pages a plain HTTP request cannot turn into usable artifacts",
"Preserve session identity for multi-step web workflows: scoped request defaults, concurrent requests, streaming bodies, downloads, and future browser-backed fetch state belong in one agent-readable session"
],
"license": "MIT",
"mutations": [
"Adopt AFDATA protocol v1 for all CLI output: success responses now wrap command data under a result key inside a {kind:\"result\", result, trace} envelope, and failures emit kind:\"error\" with a stable error.code instead of a flat object",
"Support protocol v1 CLI early-exit semantics so afhttp emits well-formed protocol envelopes even on fast-fail paths",
"Migrate the SDK to the afdata 0.16 API (builders-only event construction and the decode_protocol_event reader) and adopt the collapsed redaction/logging surface (Redactor + LogFilters)",
"Bump container browser backend pins: Chrome for Testing 150.0.7871.115 and Go 1.26.5"
],
"bonds": [
{
"relation": "depends_on",
"uri": "cmn://agentfirstkit.com/b3.CKaSTwynqtgjQQcFJFqw7MVBPyfe2ajaMotr7oReq5qL",
"id": "agent-first-data",
"reason": "All request/response fields use Agent-First Data suffix conventions, and runtime protocol/log events are emitted on stdout only"
}
],
"tree": {
"algorithm": "blob_tree_blake3_nfc",
"exclude_names": [
".git",
".cmn"
],
"follow_rules": [
".gitignore"
]
}
}