agent-first-http 0.7.0

Give an AI agent its own isolated browser to actually open a URL — running JavaScript when the page needs it and returning the page as files the agent can read — so it works from the real page instead of a search guess, an empty app shell, or a login wall, all without touching the browser you use every day.
Documentation
{
  "$schema": "https://cmn.dev/schemas/v1/spore-core.json",
  "id": "agent-first-http",
  "name": "Agent-First HTTP",
  "version": "0.7.0",
  "domain": "agentfirstkit.com",
  "key": "ed25519.BwbSzqdDYyMN1pPW5snRk3afrJAovHn8aueMvDpfNKVw",
  "synopsis": "Give an AI agent its own isolated browser to actually open a URL — running JavaScript when the page needs it and returning the page as files the agent can read — so it works from the real page instead of a search guess, an empty app shell, or a login wall, all without touching the browser you use every day.",
  "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": [
    "Redact AFDATA _secret fields by default in envelope output; revealing requires an explicit flag",
    "Add --reveal-token-secret to container install and inspect to opt into printing the host token",
    "Rename the panel handoff to takeover: takeover_url, --takeover-quality-percent, and a /takeover/handoff endpoint with an SDK takeover_handoff client",
    "Add --raw to container logs for unprocessed output",
    "Handle --version and --help as structured output via afdata",
    "Reframe README and docs around the isolated-browser model and the takeover/reveal surface"
  ],
  "bonds": [
    {
      "relation": "depends_on",
      "uri": "cmn://agentfirstkit.com/b3.2evoUgQ3aJHXXc3MHmhJkGEg2rMRLdvKtQKZBDno4UM4",
      "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"
    ]
  }
}