agent-first-http 0.9.0

Give your AI agent its own private browser — so it reads the real page, past logins and bot walls, without ever touching yours.
Documentation
{
  "$schema": "https://cmn.dev/schemas/v1/spore-core.json",
  "id": "agent-first-http",
  "name": "Agent-First HTTP",
  "version": "0.9.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": [
    "Unify CLI discovery: version and help share one pre-parser, bare --help returns a compact AFDATA JSON result scoped to a single command level, --recursive expands the full tree, and --output plain|yaml|markdown selects human or documentation views",
    "Stop advertising clap's help pseudo-subcommand and return a structured invalid_argument error when a command is missing, instead of dumping plain-text usage",
    "Rewrite every flag's help into a short summary plus a detail paragraph so compact structured help stays small while plain and markdown output keep the full caveats",
    "Add a global --output-to split|stdout|stderr; the default split sends results to stdout and errors to stderr, while stdout and stderr collapse all events onto one ordered stream",
    "Rename the human-takeover capability to takeover_url_secret with a handoff_secret query parameter, redacted by default and revealed only by the explicit panel, fetch --takeover, and handoff results",
    "Redact credential-bearing URLs across all tool-originated output: userinfo passwords and token-shaped query parameters in every *_url field, network.json request URLs, console source URLs, observation page and frame URLs, storage URLs, and the host's recent-requests ring",
    "Bump every artifact to schema_version 2 with self-describing field names: observation page_url and frame_url, network request_url with monotonic timing fields, console timestamp_epoch_ms and source_url, storage page_url, and host_ready listen_address",
    "Raise the agent-first-data floor to 0.26.1 and refresh pinned dependencies including base64 0.23 and chrome-for-testing 151.0.7922.47",
    "Mount the spore alone at /workspace in the Docker test harness with an optional sibling agent-first-data mount, so the gate no longer assumes a monorepo layout"
  ],
  "bonds": [
    {
      "relation": "depends_on",
      "uri": "cmn://agentfirstkit.com/b3.3JvaoXaDbsCT6z16jtvCD1oGrPZEsEXGn6g1CWqKCpJF",
      "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"
    ]
  }
}