{"id":377865,"date":"2026-10-24T16:35:53","date_gmt":"2026-10-24T16:35:53","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gregius-data\/"},"modified":"2026-10-26T05:54:49","modified_gmt":"2026-10-26T05:54:49","slug":"gregius-data","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/gregius-data\/","author":23504801,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"6.9","requires_php":"8.2","requires_plugins":null,"header_name":"Gregius Data","header_author":"Hector Jarquin, Gregius","header_description":"Multi-provider AI orchestration for WordPress. RAG pipelines, agentic workflows, and vector search.","assets_banners_color":"e4e0ea","last_updated":"2026-10-26 05:54:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/gregius.com\/gregius-data","header_author_uri":"https:\/\/gregius.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":84,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"gregiusteam","date":"2026-10-24 16:35:31","revision":3763531},"1.0.1":{"tag":"1.0.1","author":"gregiusteam","date":"2026-10-26 05:54:49","revision":3765598}},"upgrade_notice":{"1.0.1":"<p>Supabase connections should re-run the schema SQL (or use the new &quot;Update Schema&quot; button) to install the two count functions and stamp schema version 1.0.1. Real-time sync is now enabled by default.<\/p>","1.0.0":"<p>Initial public release. After activation, configure your PostgreSQL connection, run schema setup, and choose synchronized post types before enabling retrieval and generation workflows.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3763531,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3763531,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3763531,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3763531,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3763531,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"gregius-data\/rag-assistant":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"gregius-data\/rag-assistant","version":"1.0.0","title":"RAG Assistant","category":"widgets","icon":"format-chat","description":"AI assistant using Retrieval-Augmented Generation (RAG) with semantic search and LLM.","keywords":["rag","assistant","ai","chat","semantic-search"],"supports":{"align":["wide","full"],"anchor":true,"className":true,"html":false,"color":{"background":true,"text":true,"link":true,"gradients":true,"__experimentalDefaultControls":{"background":true,"text":true}},"typography":{"fontSize":true,"lineHeight":true,"fontFamily":true,"fontWeight":true,"fontStyle":true,"textTransform":true,"textDecoration":true,"letterSpacing":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"margin":true,"padding":true,"blockGap":true,"__experimentalDefaultControls":{"padding":true,"blockGap":true}},"dimensions":{"minHeight":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}},"shadow":true,"interactivity":{"clientNavigation":false}},"attributes":{"blockId":{"type":"string","default":""},"connectionId":{"type":"string","default":""},"embeddingModelKey":{"type":"string","default":"hashingtf-murmur3-1024"},"llmModelId":{"type":"string","default":""},"agenticModelId":{"type":"string","default":""},"rerankModelId":{"type":"string","default":""},"evaluatorModelId":{"type":"string","default":""},"promptId":{"type":"number","default":0},"securityPromptId":{"type":"number","default":0},"evaluationPromptId":{"type":"number","default":0},"placeholder":{"type":"string","default":"Ask a question..."},"enableStreaming":{"type":"boolean","default":true},"requireLogin":{"type":"boolean","default":true}},"textdomain":"gregius-data","editorScript":"file:.\/index.js","viewScript":"file:.\/view.js","render":"file:.\/render.php","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewStyle":"file:.\/style.css"}},"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3763531,"resolution":"1","location":"assets","locale":"","width":1910,"height":1031},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3763531,"resolution":"10","location":"assets","locale":"","width":1910,"height":1031},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3763531,"resolution":"11","location":"assets","locale":"","width":1910,"height":1031},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3763531,"resolution":"12","location":"assets","locale":"","width":1910,"height":1031},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3763531,"resolution":"13","location":"assets","locale":"","width":1910,"height":1031},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3763531,"resolution":"14","location":"assets","locale":"","width":1910,"height":1031},"screenshot-15.png":{"filename":"screenshot-15.png","revision":3763531,"resolution":"15","location":"assets","locale":"","width":1910,"height":1031},"screenshot-16.png":{"filename":"screenshot-16.png","revision":3763531,"resolution":"16","location":"assets","locale":"","width":1910,"height":1031},"screenshot-17.png":{"filename":"screenshot-17.png","revision":3763531,"resolution":"17","location":"assets","locale":"","width":1910,"height":1031},"screenshot-18.png":{"filename":"screenshot-18.png","revision":3763531,"resolution":"18","location":"assets","locale":"","width":1910,"height":1031},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3763531,"resolution":"2","location":"assets","locale":"","width":1910,"height":1031},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3763531,"resolution":"3","location":"assets","locale":"","width":1910,"height":1031},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3763531,"resolution":"4","location":"assets","locale":"","width":1910,"height":1031},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3763531,"resolution":"5","location":"assets","locale":"","width":1910,"height":1031},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3763531,"resolution":"6","location":"assets","locale":"","width":1910,"height":1031},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3763531,"resolution":"7","location":"assets","locale":"","width":1910,"height":1031},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3763531,"resolution":"8","location":"assets","locale":"","width":1910,"height":1031},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3763531,"resolution":"9","location":"assets","locale":"","width":1910,"height":1031}},"screenshots":{"1":"One registry for every supported AI model \u2014 LLM, embeddings, rerank and evaluator.","2":"Register any supported model by type and provider, with its own key and limits.","3":"Monitor each connection: uptime, health checks and database extension status.","4":"Connect with PDO, or use Supabase over REST where no PHP extensions are available.","5":"Control the sync lifecycle: retry queue, real-time updates and post statuses.","6":"Choose which post types sync, and see drift measured per type as content changes.","7":"Point attachments at a vision-capable model to extract text from PDFs before sync.","8":"See coverage and drift for every embedding model attached to a connection.","9":"Attach any registered embedding model to the selected connection in one step.","10":"Generate vectors in batches for pending content, with live progress and a stop control.","11":"Every install ships with factory prompts \u2014 system, security and evaluation.","12":"The Evaluation prompt scores whether retrieved context actually answers the query.","13":"Enable enhanced search, tune dual retrieval and monitor health from one screen.","14":"Choose the connection and the embedding model that power semantic search.","15":"Filter logs by level, component, connection and date to trace any pipeline.","16":"Drop the RAG Assistant block into any page and point it at a PostgreSQL connection.","17":"Assign a model to each role \u2014 embedding, agentic, rerank, evaluator, answer.","18":"Set the placeholder, stream answers to the page and restrict it to logged-in users."}},"plugin_section":[],"plugin_tags":[2353,250171,28198,70446,140844],"plugin_category":[],"plugin_contributors":[267033,267032],"plugin_business_model":[],"class_list":["post-377865","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-embeddings","plugin_tags-postgresql","plugin_tags-rag","plugin_tags-semantic-search","plugin_contributors-gregiusteam","plugin_contributors-hectorjarquin","plugin_committers-gregiusteam"],"banners":{"banner":"https:\/\/ps.w.org\/gregius-data\/assets\/banner-772x250.png?rev=3763531","banner_2x":"https:\/\/ps.w.org\/gregius-data\/assets\/banner-1544x500.png?rev=3763531","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/gregius-data\/assets\/icon.svg?rev=3763531","icon":"https:\/\/ps.w.org\/gregius-data\/assets\/icon.svg?rev=3763531","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-1.png?rev=3763531","caption":"One registry for every supported AI model \u2014 LLM, embeddings, rerank and evaluator."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-2.png?rev=3763531","caption":"Register any supported model by type and provider, with its own key and limits."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-3.png?rev=3763531","caption":"Monitor each connection: uptime, health checks and database extension status."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-4.png?rev=3763531","caption":"Connect with PDO, or use Supabase over REST where no PHP extensions are available."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-5.png?rev=3763531","caption":"Control the sync lifecycle: retry queue, real-time updates and post statuses."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-6.png?rev=3763531","caption":"Choose which post types sync, and see drift measured per type as content changes."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-7.png?rev=3763531","caption":"Point attachments at a vision-capable model to extract text from PDFs before sync."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-8.png?rev=3763531","caption":"See coverage and drift for every embedding model attached to a connection."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-9.png?rev=3763531","caption":"Attach any registered embedding model to the selected connection in one step."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-10.png?rev=3763531","caption":"Generate vectors in batches for pending content, with live progress and a stop control."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-11.png?rev=3763531","caption":"Every install ships with factory prompts \u2014 system, security and evaluation."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-12.png?rev=3763531","caption":"The Evaluation prompt scores whether retrieved context actually answers the query."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-13.png?rev=3763531","caption":"Enable enhanced search, tune dual retrieval and monitor health from one screen."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-14.png?rev=3763531","caption":"Choose the connection and the embedding model that power semantic search."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-15.png?rev=3763531","caption":"Filter logs by level, component, connection and date to trace any pipeline."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-16.png?rev=3763531","caption":"Drop the RAG Assistant block into any page and point it at a PostgreSQL connection."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-17.png?rev=3763531","caption":"Assign a model to each role \u2014 embedding, agentic, rerank, evaluator, answer."},{"src":"https:\/\/ps.w.org\/gregius-data\/assets\/screenshot-18.png?rev=3763531","caption":"Set the placeholder, stream answers to the page and restrict it to logged-in users."}],"raw_content":"<!--section=description-->\n<p>Gregius Data is an open-source orchestration layer for AI workflows in WordPress.<\/p>\n\n<p>It connects WordPress content with PostgreSQL-backed retrieval and AI provider workflows using familiar WordPress patterns.<\/p>\n\n<p>WordPress remains the source of truth. PostgreSQL runs alongside as a secondary execution layer for retrieval and vector operations.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>RAG Workflow<\/strong> - Retrieval, governance, answer generation, and source attribution<\/li>\n<li><strong>Provider Architecture<\/strong> - Database backends and AI providers behind stable contracts<\/li>\n<li><strong>Selective Sync<\/strong> - Choose which post types are synchronized to PostgreSQL<\/li>\n<li><strong>Interaction and Logs<\/strong> - Operational visibility for request flows and outcomes<\/li>\n<li><strong>Orchestration Controls<\/strong> - Retrieval, model selection, and policy controls in one workflow<\/li>\n<li><strong>Integration Surface<\/strong> - REST API, WP-CLI, and hooks for extension and automation<\/li>\n<li><strong>RAG Assistant Block<\/strong> - Drop a retrieval-augmented chat assistant into any page with its own model and prompt controls<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Syncs your WordPress content to PostgreSQL (you choose what syncs)<\/li>\n<li>Runs retrieval operations from PostgreSQL-backed data<\/li>\n<li>Executes RAG generation with your configured AI provider (optional)<\/li>\n<li>Returns answer data with source metadata and governance context<\/li>\n<li>Captures interaction\/log details for monitoring and review<\/li>\n<\/ol>\n\n<p><strong>Your WordPress stays on MySQL.<\/strong> PostgreSQL runs alongside as a secondary execution layer.<\/p>\n\n<h4>Use Cases<\/h4>\n\n<ul>\n<li><strong>Grounded site assistants<\/strong> based on your published WordPress content<\/li>\n<li><strong>RAG-driven Q&amp;A experiences<\/strong> where source attribution is required<\/li>\n<li><strong>Recommendation engines<\/strong> that suggest relevant content using semantic similarity<\/li>\n<li><strong>Developer-oriented AI integrations<\/strong> using REST API, hooks, and WP-CLI<\/li>\n<\/ul>\n\n<h3>Contributors &amp; Developers<\/h3>\n\n<p>Gregius Data is open source software. The following people have contributed to this plugin.<\/p>\n\n<ul>\n<li><strong>Hector Jarquin<\/strong> \u2014 Lead developer and maintainer<\/li>\n<li><strong>Gregius<\/strong> \u2014 Product owner and sponsor<\/li>\n<\/ul>\n\n<p>Visit the contributor profiles on WordPress.org:\n* https:\/\/profiles.wordpress.org\/hectorjarquin\/\n* https:\/\/profiles.wordpress.org\/gregiusteam\/<\/p>\n\n<h3>Repository<\/h3>\n\n<p>Source code and build instructions:\nhttps:\/\/github.com\/gregius\/gregius-data<\/p>\n\n<p>This plugin uses composer for PHP dependency management and @wordpress\/scripts for asset compilation. Source JavaScript lives in <code>assets\/src\/<\/code> and compiles to <code>assets\/build\/<\/code>. All PHP source is human-readable.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>This plugin syncs publicly visible WordPress content (posts, pages, custom post types you select) to an external PostgreSQL database you control. No user data, passwords, or sensitive information is synced. Connection details are stored using standard WordPress options API.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to services you configure:<\/p>\n\n<ol>\n<li>PostgreSQL database provider (required):<\/li>\n<\/ol>\n\n<p>- You provide and control this database connection (self-hosted or managed provider). When using Supabase, the plugin connects to your project's servers (e.g. <code>*.supabase.co<\/code> for the REST API).<\/p>\n\n<ol>\n<li>AI provider APIs (optional):<\/li>\n<\/ol>\n\n<p>- OpenAI, Anthropic, Google Gemini, DeepSeek, Cohere, and TypeSafe are used only if you configure them. An account and API key are required for each provider.\n- Servers called: OpenAI (<code>api.openai.com<\/code>), Anthropic (<code>api.anthropic.com<\/code>), Google Gemini (<code>generativelanguage.googleapis.com<\/code>), DeepSeek (<code>api.deepseek.com<\/code>), Cohere (<code>api.cohere.com<\/code>), and TypeSafe (<code>api.typesafe.ai<\/code>).\n- Requests to generation\/embedding\/rerank workflows send request data to the provider you selected. Data is sent only when a workflow runs (a query, sync, embedding, or rerank operation) and only after you have configured that provider.\n- OpenAI Terms: https:\/\/openai.com\/policies\/terms-of-use\/ | Privacy: https:\/\/openai.com\/policies\/privacy-policy\/\n- Anthropic Terms: https:\/\/www.anthropic.com\/legal\/consumer-terms | Privacy: https:\/\/www.anthropic.com\/privacy\n- Google Gemini Terms: https:\/\/policies.google.com\/terms | Privacy: https:\/\/policies.google.com\/privacy\n- DeepSeek Terms: https:\/\/cdn.deepseek.com\/policies\/en-US\/deepseek-terms-of-use.html | Privacy: https:\/\/cdn.deepseek.com\/policies\/en-US\/deepseek-privacy-policy.html\n- Cohere Terms: https:\/\/cohere.com\/terms-of-use | Privacy: https:\/\/cohere.com\/privacy\n- TypeSafe Terms: https:\/\/typesafe.ai\/terms | Privacy: https:\/\/typesafe.ai\/privacy<\/p>\n\n<p>You are responsible for each configured provider's terms and privacy policy.<\/p>\n\n<!--section=installation-->\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.9 or higher (required for the Abilities API)<\/li>\n<li>PHP 8.2 or higher<\/li>\n<li>Connection mode (choose one): Supabase (managed, recommended) or Direct PostgreSQL 12+ with pgvector (self-hosted\/direct path; requires PDO + pdo_pgsql)<\/li>\n<li>Optional AI provider credentials for generation workflows<\/li>\n<\/ul>\n\n<h4>Database Setup<\/h4>\n\n<p><strong>Managed (Recommended):<\/strong>\n* <a href=\"https:\/\/supabase.com\">Supabase<\/a><\/p>\n\n<p><strong>Direct PostgreSQL (Alternative):<\/strong>\n* Install PostgreSQL 12+ with the pgvector extension\n* Run: <code>CREATE EXTENSION IF NOT EXISTS vector;<\/code><\/p>\n\n<h4>Plugin Installation<\/h4>\n\n<ol>\n<li>Navigate to Plugins<\/li>\n<li>Install and activate<\/li>\n<li>Navigate to Data<\/li>\n<\/ol>\n\n<h4>WP-CLI Commands<\/h4>\n\n<p>Core command examples:<\/p>\n\n<ul>\n<li><code>wp gregius-data list-connections<\/code><\/li>\n<li><code>wp gregius-data answer \"What is dementia care?\" --format=json<\/code><\/li>\n<li><code>wp gregius-data evaluation validate-config<\/code><\/li>\n<li><code>wp gregius-data evaluation run --framework=ragas<\/code><\/li>\n<\/ul>\n\n<p>Evaluation config templates are shipped inside the plugin under:<\/p>\n\n<ul>\n<li><code>wp-content\/plugins\/gregius-data\/includes\/cli\/resources\/evaluation\/<\/code><\/li>\n<\/ul>\n\n<p>Recommended writable local config location:<\/p>\n\n<ul>\n<li><code>wp-content\/uploads\/gregius-data\/config\/<\/code><\/li>\n<\/ul>\n\n<p>Evaluation artifacts are written outside the plugin directory by default so they are not lost on plugin updates:<\/p>\n\n<ul>\n<li><code>wp-content\/uploads\/gregius-data\/artifacts\/<\/code><\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20replace%20my%20mysql%20database%3F\"><h3>Does this replace my MySQL database?<\/h3><\/dt>\n<dd><p>No. WordPress stays on MySQL. PostgreSQL runs alongside as a secondary layer for retrieval operations. Your primary WordPress database is not replaced.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20postgresql%20is%20unavailable%3F\"><h3>What happens if PostgreSQL is unavailable?<\/h3><\/dt>\n<dd><p>The WordPress site itself remains available, but retrieval operations that depend on PostgreSQL are affected until the connection is restored.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20know%20sql%3F\"><h3>Do I need to know SQL?<\/h3><\/dt>\n<dd><p>No. The dashboard handles everything through a visual interface. You only need basic connection details (host, database name, credentials).<\/p><\/dd>\n<dt id=\"what%20data%20is%20synced%20to%20postgresql%3F\"><h3>What data is synced to PostgreSQL?<\/h3><\/dt>\n<dd><p>Only content from the post types you choose for synchronization.<\/p><\/dd>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>Supported providers include OpenAI, Anthropic, Google Gemini, DeepSeek, Cohere, and TypeSafe (evaluation) when configured.<\/p><\/dd>\n<dt id=\"do%20i%20need%20ai%20api%20keys%20to%20use%20the%20plugin%3F\"><h3>Do I need AI API keys to use the plugin?<\/h3><\/dt>\n<dd><p>No. PostgreSQL synchronization and retrieval infrastructure can be configured without AI API keys. API keys are only required when generation workflows are enabled.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20page%20builders%3F\"><h3>Does this work with page builders?<\/h3><\/dt>\n<dd><p>Yes. The plugin syncs final post content regardless of how it's created (Gutenberg, Classic Editor, Page Builders, etc.).<\/p><\/dd>\n<dt id=\"how%20much%20does%20managed%20postgresql%20hosting%20cost%3F\"><h3>How much does managed PostgreSQL hosting cost?<\/h3><\/dt>\n<dd><p>Supabase provides a free tier for evaluation. Paid costs depend on your usage and provider plan.<\/p><\/dd>\n<dt id=\"can%20i%20sync%20pdf%20attachments%20for%20retrieval%3F\"><h3>Can I sync PDF attachments for retrieval?<\/h3><\/dt>\n<dd><p>Yes. Enable the \"attachment\" post type in the Sync tab. A vision-capable model must be active first (the dashboard will guide you). Text is extracted from each eligible PDF and flows through the same search and vector pipeline as regular posts.<\/p><\/dd>\n<dt id=\"which%20models%20can%20extract%20text%20from%20documents%3F\"><h3>Which models can extract text from documents?<\/h3><\/dt>\n<dd><p>Google Gemini (native PDF input \u2014 recommended), OpenAI GPT-4o \/ GPT-4o-mini, and Anthropic Claude models. DeepSeek does not support document or vision input.<\/p><\/dd>\n<dt id=\"does%20document%20extraction%20cost%20money%3F\"><h3>Does document extraction cost money?<\/h3><\/dt>\n<dd><p>Yes. Each eligible PDF is sent to your configured vision model once; unchanged files are not re-extracted. Cost depends on the model and file size \u2014 Gemini's native PDF text extraction is typically the most cost-effective.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Supabase (PostgREST) sync parity: metadata tracking, validation counts, and drift alerts operate through the provider layer<\/li>\n<li>Simultaneous synchronization to every active connection (direct PostgreSQL and Supabase together)<\/li>\n<li>Attachments sync their mime type and parent column on both backends; detached or deleted attachments are removed from every active connection<\/li>\n<li>Postmeta drift counts mirror the WordPress-side meta key filtering on both backends<\/li>\n<li>Dashboard validation reads a pre-aggregated read model for fast drift status on load<\/li>\n<li>Real-time sync is enabled by default and governs post-save sync<\/li>\n<li>Dedicated schema versioning with a Supabase schema-update flow<\/li>\n<li>Supabase count functions for postmeta and cleaning-needed validation<\/li>\n<li>The schema update banner compares against a dedicated schema version<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Selective WordPress to PostgreSQL synchronization for chosen post types<\/li>\n<li>Retrieval and semantic search workflows over PostgreSQL-backed data<\/li>\n<li>Vector and embeddings management workflows<\/li>\n<li>RAG orchestration with source-aware response metadata<\/li>\n<li>Multi-provider AI support (OpenAI, Anthropic, Google Gemini, DeepSeek, Cohere, TypeSafe)<\/li>\n<li>Connection health checks and schema setup tooling<\/li>\n<li>Retry queue for failed synchronization operations<\/li>\n<li>Admin dashboard modules: Models, Connections, Sync, Vectors, Prompts, Search, and Logs<\/li>\n<li>REST API, WP-CLI commands, and hooks for developer integrations<\/li>\n<\/ul>","raw_excerpt":"Give WordPress developers a foundation to build AI-powered features.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/377865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=377865"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gregiusteam"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=377865"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=377865"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=377865"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=377865"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=377865"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=377865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}