=== ELOQIO AI Content Reservation ===
Contributors: eloqio
Tags: ai, privacy, tdm, copyright, seo
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Signal your AI training opt-out through the W3C TDM Reservation Protocol. One click, three delivery methods, zero configuration file to upload.

== Description ==

**ELOQIO AI Content Reservation** implements the [W3C TDM Reservation Protocol (TDMRep)](https://www.w3.org/community/reports/tdmrep/CG-FINAL-tdmrep-20240510/) on your WordPress site. TDMRep is the technical counterpart of the European DSM Directive (Article 4) and the AI Act: it lets publishers legally reserve their rights regarding the use of their content for Text and Data Mining, including generative AI training.

Unlike `robots.txt`, which is a voluntary convention, TDMRep has **legal weight**. AI providers that ignore a properly deployed TDMRep signal expose themselves to substantial fines under the EU AI Act starting August 2026.

= What this plugin does =

* Serves `/.well-known/tdmrep.json` dynamically — no file to create, no FTP required
* Adds the `tdm-reservation` HTTP header on every front-end response
* Injects the matching `<meta name="tdm-reservation">` tag in the HTML head
* Supports the optional `tdm-policy` URL to link to your human-readable policy document
* Ships with a Site Health check that verifies the endpoint responds correctly
* Zero dependencies, zero tracking, zero external API calls

= Why three delivery methods? =

The TDMRep specification allows crawlers to look for the signal in any of the three locations. Deploying all three maximises the chance that AI bots actually pick up your reservation.

= Evidence preservation =

After activating the plugin, submit your endpoint URL to the [Wayback Machine](https://web.archive.org/) to create a timestamped proof of publication. This is essential if you ever need to demonstrate the date from which your reservation was in force.

= Who is this for? =

News publishers, bloggers, authors, creative agencies, and any content creator who wants to keep a clear legal record of their opt-out from AI training. Combine this plugin with blocking rules for known AI crawlers in your `robots.txt` for defence in depth.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/eloqio-ai-content-reservation` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Go to **Settings → ELOQIO AI Content Reservation** to verify or adjust the reservation value.
4. Visit `https://your-site.com/.well-known/tdmrep.json` to confirm the endpoint is live.
5. (Optional) Archive the endpoint URL on the Wayback Machine for evidence.

== Frequently Asked Questions ==

= Does this plugin block AI crawlers? =

No. TDMRep is a declarative legal signal, not a technical block. It tells compliant AI providers that your content is off-limits for training. For active blocking, combine it with `robots.txt` rules or WAF filters.

= Does it work retroactively? =

No. TDMRep only applies to crawls performed after you deployed the signal. Content already collected before activation is not covered.

= Does it affect SEO? =

No. Google Search and Bing are not affected. TDMRep targets TDM/AI training crawlers specifically. Google's AI training (Google-Extended) reads a separate `robots.txt` directive.

= Is there a performance impact? =

Negligible. The endpoint is served in a single PHP request, the HTTP header is one `header()` call, and the meta tag is three lines of HTML.

= Can I reserve only part of my site? =

The current version applies to the entire site (`location: /`). Per-post granularity is on the roadmap for future versions if demand justifies the added complexity.

== Screenshots ==

1. Settings screen under Settings → ELOQIO AI Content Reservation.
2. The JSON endpoint served at /.well-known/tdmrep.json.
3. Site Health check confirming the endpoint is reachable.

== Changelog ==

= 1.0.2 =
* Add the `eloqio_acr_settings` filter so a theme or companion plugin can drive the reservation value from a single source of truth, while the plugin stays fully autonomous without any hook.

= 1.0.1 =
* Security: drop the `JSON_UNESCAPED_SLASHES` flag on the TDMRep endpoint output, per the WordPress.org review feedback on late escaping of echoed data.

= 1.0.0 =
* Initial release.
* Dynamic `/.well-known/tdmrep.json` endpoint.
* `tdm-reservation` HTTP header on all front-end responses.
* `<meta name="tdm-reservation">` tag injection.
* Optional `tdm-policy` URL support.
* Site Health async check.
* French and English translations included.

== Upgrade Notice ==

= 1.0.2 =
Adds the `eloqio_acr_settings` developer filter. No change to default behaviour.

= 1.0.1 =
Security hardening on the TDMRep JSON endpoint following WordPress.org review feedback.

= 1.0.0 =
Initial release.
