# Cloudflare Pages custom headers (copied verbatim into dist/ by Astro).
#
# /_astro/* files carry a content hash in the filename, so they are immutable
# by construction — cache for a year. Demo/preview media is stable between
# re-renders; a day of edge/browser caching is safe (default was 4 hours).

/_astro/*
  Cache-Control: public, max-age=31536000, immutable

/demos/*
  Cache-Control: public, max-age=86400

/demos-long/*
  Cache-Control: public, max-age=86400

/demos-pinned/*
  Cache-Control: public, max-age=86400

/emoji/*
  Cache-Control: public, max-age=86400

/panel-test/*
  Cache-Control: public, max-age=86400

# Search engines must not INDEX the agent-facing Markdown content exports:
# llms-full.txt is a plaintext copy of every page and would compete with the
# HTML pages as the canonical copy of their own text. X-Robots-Tag, NOT a
# robots.txt Disallow — the two are mutually exclusive (a crawler can only see
# noindex on a URL it may fetch, and a robots-blocked URL that is linked from a
# crawlable page still gets indexed URL-only). noindex is engine-agnostic, and
# LLM agents ignore it, so agent access is untouched. /llms.txt (the index)
# carries no page content and stays indexable.
# NOTE: `_headers` rules reach these responses only because
# functions/_middleware.js returns `context.next()` untouched — Cloudflare
# does not apply `_headers` to responses a Pages Function constructs itself.

/llms-full.txt
  X-Robots-Tag: noindex

/llms-small.txt
  X-Robots-Tag: noindex

/_llms-txt/*
  X-Robots-Tag: noindex
