=== AI Status Widget — powered by is-down.ai ===
Contributors: isdownai
Tags: status, uptime, chatgpt, claude, ai
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.4.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Live status of ChatGPT, Claude, Gemini and 35+ other AI platforms on your site — cards, badges and grids via shortcodes and a Gutenberg block.

== Description ==

AI Status Widget shows your readers whether an AI platform is up, degraded or down, right inside your posts and pages. Status data comes from [is-down.ai](https://is-down.ai/), an independent real-time monitor for AI tools.

**Why site owners use it**

* Answer "is it down or is it just me?" inside your own content.
* Zero page-speed cost: status is served from a local cache; your pages never wait for a remote request.
* Optional live auto-refresh in the visitor's browser.
* A visual shortcode generator — build any widget without reading docs.

**What you can embed**

* `[ai_status tool="chatgpt"]` — a status card for one platform.
* `[chatgpt_status]`, `[claude_status]`, `[gemini_status]`, … — a ready-made shortcode for every tracked platform.
* `[ai_status tool="chatgpt" style="panel"]` — a full detail panel: the plain-language verdict, uptime history chart with daily bars, uptime percentages, response time, user reports, components grouped with operational counts, active incidents and the monitoring methodology.
* `[ai_status_grid tools="chatgpt,claude,gemini" columns="3"]` — a responsive grid.
* `[ai_status_grid style="panel"]` — a complete AI status dashboard on your own site.
* `[ai_incidents tool="chatgpt"]` renders that platform's "Recent incidents" timeline, with severity, date and duration for each entry. Per-platform by design, and plain text by design, so entries carry no links.
* `[ai_report tool="chatgpt"]` renders a "Report a problem" section: the platform's live status, a one-click report form (no access, errors, slow, login) and a live "reports in the last hour" counter. Reports are counted with the crowd-sourced outage reports on is-down.ai. The panel style includes the form automatically (turn it off with report="0").
* An "AI Status" Gutenberg block with a platform picker.

Styles: `card` (default), `inline` (fits inside a sentence), `badge` (compact pill), `panel` (full detail — most of what the platform's is-down.ai page shows). Options: response time, link to the platform's status page, per-widget auto-refresh opt-out.

**The shortcode generator**

Settings → AI Status Widget opens a visual builder: pick a platform (with its live status dot), choose a style with thumbnails, toggle options, and copy the shortcode (or the PHP snippet for theme files). The live preview is rendered by the exact same code as the frontend.

**Attribution**

Every widget ends with a small, muted "status by is-down.ai" line linking to the source of the data. The link is part of the deal that keeps the data free for everyone, so it has no off switch in this build.

Note for the WordPress.org plugin directory: directory guideline 10 does not allow credit links that are enabled by default. If this plugin is ever submitted to the directory, the attribution must be changed to opt-in. This build is distributed directly by is-down.ai under the license above.

**Performance & fair use**

* One shared fetch per site of the is-down.ai all-services API, at most once per minute (default cache lifetime 120s), with ETag revalidation.
* Refreshes run in the background (WP-Cron); rendering never blocks on the network.
* If is-down.ai is unreachable, the last known status is shown with its "checked … ago" time; before any data exists, a quiet placeholder renders instead.

== Installation ==

1. Plugins → Add New → Upload Plugin → choose `ai-status-widget.zip` → Install Now → Activate.
2. Open Settings → AI Status Widget.
3. Build a shortcode in the generator and paste it into any post, page or shortcode-capable widget area.

== Frequently Asked Questions ==

= Is it free? =

Yes. The plugin is GPL and the is-down.ai status API it reads is public.

= What data does the plugin send about my site or my visitors? =

Nothing in the background. The plugin only *fetches* public status data; the outgoing request identifies the plugin version and your site URL (standard User-Agent practice, used in aggregate to count installs); no visitor data, analytics or tracking of any kind. The one exception is visitor-initiated: when a visitor presses "Report a problem" and picks a category, that single report is sent from their browser to is-down.ai. See the Privacy section for what is stored.

= Where does the status data come from? =

From [is-down.ai](https://is-down.ai/), which combines each provider's official status feed with its own reachability checks. Methodology: https://is-down.ai/methodology/

= Which platforms are supported? =

ChatGPT, Claude, Gemini, DeepSeek, Grok, Copilot, Character.AI, Perplexity, Mistral, Poe, Meta AI, Qwen, Cursor, GitHub Copilot, Windsurf, Lovable, v0, Midjourney, Stability AI, Ideogram, Runway, Luma, ElevenLabs, Suno, Groq, Together AI, Replicate, Cohere, Hugging Face, Kimi, MiniMax, Sora, Replit, OpenRouter, NotebookLM, Manus, Kling AI, HeyGen, Bolt.new — the full list lives in the All Shortcodes tab.

= Can I remove the is-down.ai attribution line? =

No — it is the license of the widget and the credit for the data. If you need a white-label integration, contact is-down.ai.

= Does it slow my site down? =

No. Widgets render from a local cache; the cache refreshes in the background. The optional auto-refresh script is ~2 KB and loads only on pages that contain a widget.

== Privacy ==

This plugin does not collect, store or transmit any personal data. It makes outbound HTTPS requests from your server to `https://is-down.ai` to fetch public status data (identifying itself with the plugin version and site URL). If auto-refresh is enabled, visitors' browsers request the same public status endpoint directly from is-down.ai; that request carries no identifiers beyond a normal HTTP request. No cookies, no localStorage, no fingerprinting.

Outage reports are the one visitor-initiated exception: when a visitor presses "Report a problem" and picks a category, their browser sends that report (the platform slug and the category, nothing typed) directly to is-down.ai. To count reports and limit abuse, is-down.ai stores only one-way hashed identifiers derived from a salt that rotates daily, an optional two-letter country code, and the hostname of the reporting site. No IP address, no user agent, no identity is ever stored, and nothing is stored on your site.

== Changelog ==

= 1.4.3 =
* [ai_report] grew from a button into a full section: a status-tinted header with the platform's live status pill, the report form, a live "reports in the last hour" counter (your visitor's own report shows up in the number right away), and a context line linking the platform's is-down.ai status page.
* Honest outcomes: a failed submission now shows an error line and unlocks the chips instead of pretending success. Only a recorded report (or an already-reported reply) shows the thanks pill.
* New on is-down.ai itself: an "Outage reports" admin page (AI Services menu) lists the latest reports with their source site, so arriving widget reports are visible at a glance.

= 1.4.2 =
* Redesigned the "Report a problem" UI. The standalone [ai_report] card now shows its title and category chips right away (no extra click); inside detail panels the button gained a chevron and clearer hover and focus states; the chips got a full state set and all of them lock while a report is sending; the confirmation is now a quiet green check pill.

= 1.4.1 =
* The shortcode generator gained a "Report a problem" style: pick a platform, see the live preview, copy [ai_report tool="..."].

= 1.4.0 =
* New [ai_report] shortcode: a standalone "Report a problem" button for one platform. Visitor reports go straight from their browser to is-down.ai and are counted with the site's crowd-sourced outage reports. No personal data is stored: is-down.ai keeps only one-way hashed, daily-rotating identifiers plus the reporting site's hostname.
* Detail panels now include the "Report a problem" block by default; add report="0" to [ai_status] or [ai_status_grid] to hide it.
* The report button works even when auto-refresh is disabled.

= 1.3.1 =
* [ai_incidents] is now per-platform: tool="..." is required and every list shows one platform's incidents. The mixed all-platforms mode is gone.

= 1.3.0 =
* New [ai_incidents] shortcode: a standalone "Recent incidents" timeline (limit, days and title attributes). Entries are plain text with no links and show severity, start date, duration or an "ongoing" pill.
* The shortcode generator gained a "Recent incidents" style with its own options and live preview.

= 1.2.0 =
* 10 new platforms: Kimi, MiniMax, Sora, Replit, OpenRouter, NotebookLM, Manus, Kling AI, HeyGen and Bolt.new, each with its own convenience shortcode (for example [sora_status], [replit_status], [kimi_status]).

= 1.1.2 =
* The credit line is now centered under the widget and always states that the widget is provided by is-down.ai.

= 1.1.1 =
* Panel style is now fluid (80% of its container, full width on small screens and in grids).
* Smarter attribution line: the credit now names the platform and links with descriptive anchors ("Is ChatGPT down right now?", "ChatGPT status on is-down.ai") instead of a generic "powered by".

= 1.1.0 =
* Redesigned panel style: status-tinted header with status pill, stat tiles, daily uptime history bars with per-day tooltips, uptime percentages over 7/30/90-day windows, methodology footnote, automatic dark-mode support.

= 1.0.0 =
* Initial release: 29 platforms, card/inline/badge/panel/grid styles, per-platform shortcodes, Gutenberg block, visual shortcode generator, background caching with graceful degradation, hardened against untrusted API responses.
