{
"$schema": "https://cmn.dev/schemas/v1/spore-core.json",
"id": "agent-first-http",
"name": "Agent-First HTTP",
"version": "0.10.0",
"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": [
"Compile the CLI from afdata's closed-world registry — the root, four command groups, 23 leaf commands and 34 legal shapes in one declaration — so combinations that were runtime errors become disjoint shapes the parser rejects; clap and two hand-rolled argv scanners are deleted",
"Report the origin's response Content-Type verbatim on FetchResult, so callers stop reconstructing it from body_file's extension, which silently loses every type outside the extension table",
"Make takeover backend-agnostic and add Chrome as an opt-in backend: the install preflight, capability gate, and image probe now follow the selected --browser instead of naming Brave, whose pin rested on the since-obsolete premise that Linux arm64 had no Chrome; Brave stays the default on its own merits",
"Stop passing --disable-gpu to Chromium, which switched off the GPU process and took WebGL with it, making every host read as automation; --enable-unsafe-swiftshader permits the software fallback instead, so hardware GL still wins wherever it exists",
"Drop the forced --disable-blink-features=AutomationControlled, which bought nothing and made Chromium show an unsupported-flag banner on the one path a human is watching, and widen container fonts from about 46 to about 486 families so a captured browser stops fingerprinting as a bare server and stops rendering CJK as tofu",
"Refresh the container pins the drift check had been failing the gate on: chrome-for-testing 151.0.7922.47 to .71, and KasmVNC 1.4.0 to 1.5.0",
"Upgrade Agent-First Data to 0.29.0 and resolve it from crates.io in standalone CI, deleting the sibling-repository checkout every job previously needed"
],
"bonds": [
{
"relation": "depends_on",
"uri": "cmn://agentfirstkit.com/b3.GdSUU8ZExR7bmDoeQe9VhEgpfdPw22o7pM13PwQAznSL",
"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"
]
}
}