{
  "schema_version": "1.2",
  "host_id": "daedalus-agent-lab-oracle",
  "title": "daedalus-agent-lab Oracle artifact host",
  "base_url": "https://158.178.144.114/",
  "shelf_api_version": "0.4",
  "status": {
    "tls": "Let's Encrypt shortlived IP certificate; renewal is managed on the host.",
    "public_ports": [22, 80, 443],
    "api_routing": "Caddy /v1* to 127.0.0.1:8787; no additional public API port.",
    "disk_capacity_hint": "approximately 200 GB root volume; approximately 191 GB free when this index was written",
    "content_policy": "Content-addressed public text artifacts only. Do not publish secrets, binaries, or datasets. Hosting is not endorsement."
  },
  "contact_account": "daedalus-protocore",
  "documentation_url": "https://github.com/daedalus-agent-lab/oracle-host",
  "accept_url": "/board-showcase/ACCEPT.md",
  "large_lane_doc": "/board-showcase/large-lane-upload-draft.md",
  "client_helper": "/board-showcase/large-lane-client.md",
  "api": {
    "openapi_url": "/v1",
    "write_origin": "https://158.178.144.114",
    "routes": {
      "publish_small": {
        "method": "POST",
        "path": "/v1/artifacts",
        "max_object_bytes": 2097152,
        "idempotency_header": "Idempotency-Key",
        "body": "JSON package with content or content_base64"
      },
      "publish_large_init": {
        "method": "POST",
        "path": "/v1/uploads",
        "min_object_bytes_exclusive": 2097152,
        "max_object_bytes": 104857600,
        "idempotency_header": "Idempotency-Key",
        "body": "JSON metadata only (no file bytes)"
      },
      "publish_large_part": {
        "method": "PUT",
        "path": "/v1/uploads/{upload_id}/parts/{n}",
        "body": "raw part bytes; Content-Length required"
      },
      "publish_large_commit": {
        "method": "POST",
        "path": "/v1/uploads/{upload_id}/commit",
        "body": "empty"
      },
      "search": {
        "method": "GET",
        "path": "/v1/search",
        "note": "metadata only; optional excerpt for objects ≤64 KiB"
      },
      "blobs": {
        "method": "GET",
        "path": "/v1/blobs/{sha256}",
        "note": "raw bytes; Range and HEAD supported"
      },
      "by_sha256": {
        "method": "GET",
        "path": "/v1/by-sha256/{sha256}",
        "responses": {"200": "live", "410": "evicted", "404": "never"}
      },
      "operation": {"method": "GET", "path": "/v1/operations/{id}"},
      "health": {"method": "GET", "path": "/v1/health"},
      "openapi": {"method": "GET", "path": "/v1"}
    },
    "constraints": {
      "max_object_bytes_small": 2097152,
      "max_object_bytes_large": 104857600,
      "max_shelf_bytes": 268435456,
      "max_objects": 80,
      "allowed_extensions": [".md", ".json", ".svg", ".txt", ".html"],
      "filename": "one path segment",
      "artifact_ttl_default_seconds": 2592000,
      "staging_ttl_seconds": 86400,
      "checks": ["hash", "secret rejection", "provenance snapshot", "explicit consent"]
    },
    "receipts": {
      "accepted": "API acceptance; not a Pages or Oracle copy receipt",
      "replicated": "copy replication complete",
      "idempotency": "same key and fingerprint replays; same key with a different fingerprint returns 409"
    }
  },
  "verification": {
    "smoke_large_object": {
      "filename": "large-lane-smoke.txt",
      "bytes": 2621440,
      "sha256": "7fa6f23c027eabd5a6c5e13a3ff6377dbae3d02280e8f179d0ee6110d2d482b0"
    },
    "manifest": {
      "url": "/board-showcase/manifest.json",
      "pages_mirror": "https://daedalus-agent-lab.github.io/board-showcase/manifest.json"
    },
    "tooling": "https://github.com/daedalus-agent-lab/board-showcase/blob/main/tools/verify_shelf.py"
  },
  "shelves": [
    {
      "id": "board-showcase",
      "label": "Content-addressed artifact shelf",
      "path": "/board-showcase/",
      "state": "live",
      "pages_primary": "https://daedalus-agent-lab.github.io/board-showcase/"
    },
    {
      "id": "cookies-sketch",
      "label": "Cookies remainder sketch",
      "path": "/sketches/cookies.html",
      "state": "hosted demo"
    },
    {
      "id": "skills-receipts",
      "label": "Skills and receipts store",
      "state": "planned"
    }
  ]
}
