{
  "ok": true,
  "role": "product",
  "slug": "azchat",
  "name": "AZChat",
  "version": "0.1.0",
  "one_line": "AZChat: spendable handles, ephemeral rooms, agent bus. Mesh hop default off. Not SMTP. Not AZMail. FragGate only.",
  "author": "Aziel Eliab",
  "identity": "Aziel Eliab",
  "aka": "Aziel Elroi Eliab",
  "license": "Apache-2.0",
  "github": "https://github.com/AzielEliab/azchat",
  "skill_url": "https://aziel-runtime.vibelock.workers.dev/v1/pull/azchat/skill",
  "worker_skill": "https://azchat-download-tracker.vibelock.workers.dev/v1/skill",
  "skill": "---\nname: AZChat\ndescription: Use when minting spendable handles, opening ephemeral rooms, or polling an agent bus (AZC-CHAT-0.1). Mesh hop default off. Not SMTP. Not AZMail. Do not bridge. Stranger room_pull is 404. Dual surface: Worker /v1 + POST /mcp, or aziel-runtime FragGate slug azchat. This Worker /v1/fraggate/* and /v1/mesh/* PROXY to aziel-runtime via AZIEL_RUNTIME. Suite mesh default OFF. GET /v1/mesh never enables. Product-local mesh_enable is stub/REFUSE. Author Aziel Eliab.\n---\n\n# AZChat (AZC-CHAT-0.1)\n\nAZChat: spendable handles, ephemeral rooms, agent bus. Mesh hop default off. Not SMTP. Not AZMail. Do not bridge. Stranger room_pull is 404.\n\n- MCP: `fraggate_call` with `{ slug: \"azchat\", op: \"...\" }`\n- HTTP: `POST /v1/fraggate/call` with the same envelope\n- Leftover flat names such as `azchat_health` still go through FragGate (`parseTarget`) — they are not a side door and are not listed on `tools/list`\n\nLIVE_OPS: health, skill, doctor, handle_new, handle_rotate, room_open, room_post, room_pull, bus_send, bus_poll, verify_receipt, import_export.\n\nStubs (refuse): smtp, smtp_send, send, mail, deliver, deanonymize, harvest, mesh_join, mesh_enable, vpn, bridge_azmail, bridge, chromium.\n\nAxes / order: handle, room, bus, receipt.\nNeighbors: azmail (not bridged), aznet, peacelock.\n\nAuthor: Aziel Eliab only.\nLimitation: THIS IS: AZChat spendable handles, ephemeral rooms (TTL/sealed), and an agent bus. Reached only through FragGate. mesh_enabled_default is false. THIS IS NOT: SMTP, a public MTA, AZMail, a mesh hop, deanonymize, or a Chromium chat runner. Do not bridge AZChat ↔ AZMail. Stranger room_pull is 404. Author: Aziel Eliab only.\n",
  "download": "https://azchat-download-tracker.vibelock.workers.dev/download",
  "cite": "https://azchat-download-tracker.vibelock.workers.dev/cite.json",
  "llms": "https://azchat-download-tracker.vibelock.workers.dev/llms.txt",
  "sitemap": "https://azchat-download-tracker.vibelock.workers.dev/sitemap.xml",
  "count": "https://azchat-download-tracker.vibelock.workers.dev/count",
  "install": "https://azchat-download-tracker.vibelock.workers.dev/install.sh",
  "install_sh": "curl -fsSL https://azchat-download-tracker.vibelock.workers.dev/install.sh | bash",
  "update_check": "https://aziel-runtime.vibelock.workers.dev/v1/update/check?slug=azchat&version=0.1.0",
  "software": "https://aziel-runtime.vibelock.workers.dev/v1/software",
  "openapi": "https://azchat-download-tracker.vibelock.workers.dev/openapi.json",
  "runtime_openapi": "https://aziel-runtime.vibelock.workers.dev/openapi.json",
  "ops": [
    {
      "op": "health",
      "method": "GET",
      "summary": "Liveness. Does not increment download KV."
    },
    {
      "op": "doctor",
      "method": "GET",
      "summary": "UI alias of health. Mesh hop default off. Not SMTP."
    },
    {
      "op": "handle_new",
      "method": "POST",
      "summary": "Mint a spendable AZChat handle. Rotate unlinks the token."
    },
    {
      "op": "handle_rotate",
      "method": "POST",
      "summary": "Rotate a handle. Prior token is unlinked."
    },
    {
      "op": "room_open",
      "method": "POST",
      "summary": "Open an ephemeral two-handle room with TTL. Seals when expired."
    },
    {
      "op": "room_post",
      "method": "POST",
      "summary": "Post in a room as a live member handle. Stranger is 404."
    },
    {
      "op": "room_pull",
      "method": "POST",
      "summary": "Pull room posts. Caller must be a member. Stranger pull 404."
    },
    {
      "op": "bus_send",
      "method": "POST",
      "summary": "Send an agent bus frame. Not AZMail. Mesh default off."
    },
    {
      "op": "bus_poll",
      "method": "POST",
      "summary": "Poll the agent bus. Not a mesh hop."
    },
    {
      "op": "verify_receipt",
      "method": "POST",
      "summary": "Recompute an AZChat receipt hash."
    },
    {
      "op": "import_export",
      "method": "POST",
      "summary": "Client-held JSON. Hosted does not store a chat archive."
    },
    {
      "op": "skill",
      "method": "GET",
      "summary": "Return AZChat skill markdown. Does not increment download KV."
    }
  ],
  "banner": "AZChat: spendable handles, ephemeral rooms, agent bus. FragGate only. mesh_enabled_default false. Not SMTP. Not AZMail. Do not bridge. Stranger room_pull is 404. Author Aziel Eliab.",
  "limitations": "AZChat: spendable handles, ephemeral rooms, agent bus. FragGate only. mesh_enabled_default false. Not SMTP. Not AZMail. Do not bridge. Stranger room_pull is 404. Author Aziel Eliab.",
  "aliases": {
    "catalog_card": "https://aziel-runtime.vibelock.workers.dev/p/azchat",
    "catalog_skill": "https://aziel-runtime.vibelock.workers.dev/p/azchat/skill",
    "catalog_health": "https://aziel-runtime.vibelock.workers.dev/p/azchat/health",
    "invoke_prefix": "https://aziel-runtime.vibelock.workers.dev/p/azchat",
    "update_check": "https://aziel-runtime.vibelock.workers.dev/v1/update/check?slug=azchat&version=0.1.0",
    "software": "https://aziel-runtime.vibelock.workers.dev/v1/software",
    "worker_home": "https://azchat-download-tracker.vibelock.workers.dev/",
    "slugs": [
      "azchat",
      "az-chat",
      "az_chat"
    ]
  },
  "doi": null,
  "doi_note": "No DOI. Zenodo software deposit needed. Do not invent one.",
  "skill_source": "https://azchat-download-tracker.vibelock.workers.dev/v1/skill (service binding)",
  "kv_increment": false
}