From 96df209e283863938659a1177df97868e76528ec Mon Sep 17 00:00:00 2001 From: thejahid Date: Wed, 19 Nov 2025 18:43:56 +0600 Subject: [PATCH 1/5] feat(2487): ai-assistant docs --- allPlugins.json | 7 + .../configuration/_category_.json | 5 + .../configuration/integrations.mdx | 37 +++ craft-ai-assistant/configuration/prompts.mdx | 32 +++ craft-ai-assistant/configuration/settings.mdx | 34 +++ craft-ai-assistant/guides/_category_.json | 5 + craft-ai-assistant/guides/getting-started.mdx | 88 +++++++ craft-ai-assistant/intro.mdx | 247 ++++++++++++++++++ craft-ai-assistant/setup/_category_.json | 5 + craft-ai-assistant/setup/changelog.mdx | 24 ++ .../setup/installing-updating.mdx | 77 ++++++ docsTag.json | 6 + docusaurus.config.ts | 24 ++ src/pages/craft/index.tsx | 5 + src/pages/index.tsx | 5 + src/theme/Logo/index.tsx | 8 + static/icons/cards/ai-assistant.svg | 1 + static/icons/cards/calendar.svg | 2 +- static/icons/cards/freeform.svg | 2 +- static/icons/cards/index.ts | 1 + static/img/intro/aiassistant-dark.png | Bin 0 -> 8690 bytes static/img/intro/aiassistant-light.png | Bin 0 -> 8499 bytes static/logos/icons/ai.png | Bin 0 -> 3202 bytes vercel.json | 8 + versionsBadge.json | 4 + 25 files changed, 625 insertions(+), 2 deletions(-) create mode 100644 craft-ai-assistant/configuration/_category_.json create mode 100644 craft-ai-assistant/configuration/integrations.mdx create mode 100644 craft-ai-assistant/configuration/prompts.mdx create mode 100644 craft-ai-assistant/configuration/settings.mdx create mode 100644 craft-ai-assistant/guides/_category_.json create mode 100644 craft-ai-assistant/guides/getting-started.mdx create mode 100644 craft-ai-assistant/intro.mdx create mode 100644 craft-ai-assistant/setup/_category_.json create mode 100644 craft-ai-assistant/setup/changelog.mdx create mode 100644 craft-ai-assistant/setup/installing-updating.mdx create mode 100644 static/icons/cards/ai-assistant.svg create mode 100644 static/img/intro/aiassistant-dark.png create mode 100644 static/img/intro/aiassistant-light.png create mode 100644 static/logos/icons/ai.png diff --git a/allPlugins.json b/allPlugins.json index f217b4db..e03e9454 100644 --- a/allPlugins.json +++ b/allPlugins.json @@ -17,6 +17,13 @@ "metaImage": "img/social/calendar-craft.jpg", "metaDescription": "Calendar is an effective event management and calendaring plugin. Its user-friendly interface simplifies the creation of events with complex recurring rules and exclusions." }, + { + "name": "AI Assistant", + "slug": "/craft/ai-assistant", + "latestVersionSlug": "/craft/ai-assistant/v1", + "metaImage": "img/social/ai-assistant-craft.jpg", + "metaDescription": "AI Assistant is a plugin that helps you create content with AI. It's a tool that helps you create content with AI." + }, { "name": "Express Forms", "slug": "https://discontinued-docs.solspace.com/express-forms", diff --git a/craft-ai-assistant/configuration/_category_.json b/craft-ai-assistant/configuration/_category_.json new file mode 100644 index 00000000..d3571879 --- /dev/null +++ b/craft-ai-assistant/configuration/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Configuration", + "position": 3 +} + diff --git a/craft-ai-assistant/configuration/integrations.mdx b/craft-ai-assistant/configuration/integrations.mdx new file mode 100644 index 00000000..7a51e41f --- /dev/null +++ b/craft-ai-assistant/configuration/integrations.mdx @@ -0,0 +1,37 @@ +--- +sidebar_position: 2 +--- + +# Integrations + +AI Assistant supports multiple AI providers. Configure your integrations to enable AI-powered content generation. + +## Supported Providers + +- **OpenAI** - GPT models (GPT-4, GPT-3.5, etc.) +- **Google Gemini** - Gemini models +- **Anthropic** - Claude models +- **xAI** - Grok models +- **Replicate** - Various AI models + +## Setting Up an Integration + +1. Go to **AI Assistant → Integrations** +2. Click **New Integration** +3. Choose provider (OpenAI, Gemini, Anthropic, xAI, Replicate) +4. Set API key, model, and defaults +5. Save and test + +## Integration Settings + +Each integration can be configured with: + +- **Enable/Disable** - Toggle the integration on or off +- **API Key** - Your provider's API key +- **Model Selection** - Choose which model to use +- **Default Settings** - Set default parameters for the integration + +## Testing Integrations + +After configuring an integration, you can test it using the Quick AI Actions widget or by using the inline AI button on any enabled field. + diff --git a/craft-ai-assistant/configuration/prompts.mdx b/craft-ai-assistant/configuration/prompts.mdx new file mode 100644 index 00000000..54b2fa24 --- /dev/null +++ b/craft-ai-assistant/configuration/prompts.mdx @@ -0,0 +1,32 @@ +--- +sidebar_position: 3 +--- + +# Prompts + +Prompts are the instructions you give to the AI to generate content. AI Assistant includes built-in prompts and allows you to create custom prompts. + +## Built-in Prompts + +AI Assistant comes with several built-in prompts for common content generation tasks. These prompts are ready to use and can be customized. + +## Custom Prompts + +1. Go to **AI Assistant → Prompts** +2. Click **New Prompt** +3. Enter a name and prompt text +4. Optionally bind the prompt to a specific integration +5. Set sort order +6. Save + +## Prompt Binding + +You can bind a prompt to a specific integration. When a prompt is bound to an integration: + +- That integration will be used automatically when the prompt is selected +- The prompt will only appear when that integration is enabled + +## Sort Order + +Prompts can be ordered to appear in your preferred sequence. Set a sort order value (lower numbers appear first) to organize your prompts. + diff --git a/craft-ai-assistant/configuration/settings.mdx b/craft-ai-assistant/configuration/settings.mdx new file mode 100644 index 00000000..00449135 --- /dev/null +++ b/craft-ai-assistant/configuration/settings.mdx @@ -0,0 +1,34 @@ +--- +sidebar_position: 1 +--- + +# Settings + +AI Assistant settings allow you to configure which fields show the inline AI button and set up field-specific prompts. + +## Field Enablement + +1. Go to **AI Assistant → Settings** +2. Toggle which fields show the inline AI button +3. Save + +## Field-Specific Prompts + +You can preselect a prompt for each enabled field so the Generate modal opens with the right context: + +1. Go to **AI Assistant → Settings** +2. In the "Field Prompts" table, choose a prompt per field (or keep "Any") +3. Save Settings + +### Behavior on Entry Edit Pages + +- When you click the inline AI button, the modal will auto-select the field's prompt. +- This works for Craft fields (Plain Text, CKEditor, Redactor, TinyMCE, Assets) and for the built-in Title field (handle `title`). +- For Title specifically, the modal reads the selection from plugin settings, so it's honored even though Title isn't a custom Craft field. + +### Notes + +- Choosing "Any" means the modal won't preselect a specific prompt. +- If a prompt is bound to a particular integration, that integration is used automatically; otherwise the selected integration is used. +- Changes you make to the selected prompt inside an entry are not saved back to Settings; edit the mapping in **AI Assistant → Settings**. + diff --git a/craft-ai-assistant/guides/_category_.json b/craft-ai-assistant/guides/_category_.json new file mode 100644 index 00000000..1d5975db --- /dev/null +++ b/craft-ai-assistant/guides/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "User Guides", + "position": 4 +} + diff --git a/craft-ai-assistant/guides/getting-started.mdx b/craft-ai-assistant/guides/getting-started.mdx new file mode 100644 index 00000000..859f05d9 --- /dev/null +++ b/craft-ai-assistant/guides/getting-started.mdx @@ -0,0 +1,88 @@ +--- +sidebar_position: 1 +--- + +# Getting Started + +This guide will help you get started with AI Assistant for Craft CMS. + +## Installation + +1. Require the package: `composer require solspace/craft-aiassistant` +2. In Craft CP → Plugins, install "AI Assistant" +3. Configure providers in **AI Assistant → Integrations** +4. Enable fields in **AI Assistant → Settings** + +## Configuration + +### Setting Up Integrations + +1. Go to **AI Assistant → Integrations** +2. Click **New Integration** +3. Choose provider (OpenAI, Gemini, Anthropic, xAI, Replicate), set API key, model, and defaults +4. Save and test + +### Enabling Fields + +1. Go to **AI Assistant → Settings** +2. Toggle which fields show the inline AI button +3. Save + +### Configuring Prompts + +1. Go to **AI Assistant → Prompts** +2. Create custom prompts or view built-in prompts +3. Optionally bind a prompt to a specific integration + +### Field-Specific Prompts + +You can preselect a prompt for each enabled field so the Generate modal opens with the right context: + +1. Go to **AI Assistant → Settings** +2. In the "Field Prompts" table, choose a prompt per field (or keep "Any") +3. Save Settings + +## Usage + +### Using the Inline AI Button + +1. Open any entry with enabled fields; an inline AI button appears inside the input area +2. Click the button to open the modal +3. Pick a prompt, edit "Prompt Text" as needed +4. Optionally enable "Include input context" +5. Generate and review in the right column; Insert replaces the field's content + +### Quick AI Actions Widget + +- Add the "AI Assistant Quick Actions" widget on the dashboard +- Select a prompt, edit "Prompt Text," Generate, and Copy as needed + +## API Endpoints + +- `GET /admin/ai-assistant/api/integrations` +- `GET /admin/ai-assistant/api/prompts` +- `POST /admin/ai-assistant/api/generate-text` +- `POST /admin/ai-assistant/api/generate-image` (coming soon) + +## File Structure + +``` +aiassistant/ +├── src/ +│ ├── assets/ # JS/CSS + AssetBundle +│ ├── controllers/ # CP + API endpoints +│ ├── models/ # Integration, Prompt, Settings +│ ├── records/ # ActiveRecord for DB tables +│ ├── services/ # Business logic + helpers +│ ├── Integrations/ # Providers (OpenAI, Gemini, …) +│ ├── templates/ # Twig (modal, widget, CP screens) +│ ├── AiAssistant.php # Main plugin class +│ ├── icon-mask.svg +│ └── icon.svg +└── composer.json +``` + +## Support + +For issues and feature requests, please contact Solspace. + diff --git a/craft-ai-assistant/intro.mdx b/craft-ai-assistant/intro.mdx new file mode 100644 index 00000000..3d574980 --- /dev/null +++ b/craft-ai-assistant/intro.mdx @@ -0,0 +1,247 @@ +--- +sidebar_position: 1 +title: 'Overview' +slug: / +hide_table_of_contents: true +id: landing-page +--- + +import Player from 'react-player'; +import { FlexCards, Section } from '@site/src/components/docs'; +import SearchBar from '@theme/SearchBar'; +import NavbarSearch from '@theme/Navbar/Search'; + +import Icons from '@site/static/icons/cards'; +import OldIcons from '@site/static/icons/old'; +import { + Photo, + PrimaryButtonWithLink, + SimpleTextLink, + FlexButton, +} from '@site/src/components/utils'; + +# Overview + +
+
+
+ + for + +

+ AI-powered content assistance for Craft CMS with prompt management, multiple providers, and a rich in-field workflow. +

+
+ + + + + +
+ + + +
+
+
+ +
+
Docs
+
+ +
+
+ +
+ + + +## Key Features + +AI Assistant is loaded with features that make AI-powered content creation seamless and powerful. + + + +## Current Functionality + +AI Assistant provides a comprehensive set of features for AI-powered content creation: + +- [x] Inline AI button on supported fields (Title, Plain Text, CKEditor, Redactor, TinyMCE) +- [x] Two-column modal (Input Context left, Generated Text right) with rich HTML rendering +- [x] Lightswitch to include/exclude input context in the prompt +- [x] Correct HTML handling for CKEditor, TinyMCE, and Redactor when inserting back into the field +- [x] Prompt management (built-in and custom) with integration binding and sort order +- [x] Field-specific prompts per field with automatic modal preselection +- [x] Integration management for OpenAI, Google Gemini, Anthropic, xAI, and Replicate (enable/disable, API keys, model selection) +- [x] Quick AI Actions dashboard widget (select prompt, editable prompt text, generate, copy) +- [x] Craft-native UI components (lightswitch, notices), event-based widget registration +- [x] Responsive, larger modal with dynamic body height +- [x] Image generation for Assets fields + + +## Upcoming Features + +- [ ] Per-site settings and field rules +- [ ] Prompt variables and templating +- [ ] Batch content processing +- [ ] Analytics dashboard +- [ ] SEO content assistant +- [ ] Commerce integration +- [ ] Multi-language support + +## Package Information + +- **Package:** `solspace/craft-aiassistant` +- **Namespace:** `Solspace\AIAssistant` + +## Requirements + +- Craft CMS 5+ +- PHP 8.0+ +- Valid API key(s) for configured providers + +
+ +
+
+

Start exploring AI Assistant...

+

Check out these helpful links.

+
+ +
+
+ +
+ diff --git a/craft-ai-assistant/setup/_category_.json b/craft-ai-assistant/setup/_category_.json new file mode 100644 index 00000000..77a30a26 --- /dev/null +++ b/craft-ai-assistant/setup/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Installing & Updating", + "position": 2 +} + diff --git a/craft-ai-assistant/setup/changelog.mdx b/craft-ai-assistant/setup/changelog.mdx new file mode 100644 index 00000000..aa6f3198 --- /dev/null +++ b/craft-ai-assistant/setup/changelog.mdx @@ -0,0 +1,24 @@ +--- +sidebar_position: 2 +--- + +# Changelog + +All notable changes to AI Assistant will be documented here. + +## Version 1.0.0 + +### Added + +- Initial release +- Inline AI button on supported fields (Title, Plain Text, CKEditor, Redactor, TinyMCE) +- Two-column modal (Input Context left, Generated Text right) with rich HTML rendering +- Lightswitch to include/exclude input context in the prompt +- Correct HTML handling for CKEditor, TinyMCE, and Redactor when inserting back into the field +- Prompt management (built-in and custom) with integration binding and sort order +- Field-specific prompts per field with automatic modal preselection +- Integration management for OpenAI, Google Gemini, Anthropic, xAI, and Replicate (enable/disable, API keys, model selection) +- Quick AI Actions dashboard widget (select prompt, editable prompt text, generate, copy) +- Craft-native UI components (lightswitch, notices), event-based widget registration +- Responsive, larger modal with dynamic body height + diff --git a/craft-ai-assistant/setup/installing-updating.mdx b/craft-ai-assistant/setup/installing-updating.mdx new file mode 100644 index 00000000..6bbb8d4a --- /dev/null +++ b/craft-ai-assistant/setup/installing-updating.mdx @@ -0,0 +1,77 @@ +--- +sidebar_position: 1 +--- + +import { FlexCards } from '@site/src/components/docs'; +import Icons from '@site/static/icons/cards'; + +# Installing & Updating + + + +## Requirements + +AI Assistant requires: + +- **Craft CMS 5.0.0+** +- **PHP 8.0+** +- Valid API key(s) for configured providers (OpenAI, Google Gemini, Anthropic, xAI, or Replicate) + +## Installation + +AI Assistant can be installed one of two ways: + +### Via Composer + +1. Require the package: + + ```bash + composer require solspace/craft-aiassistant + ``` + +2. In Craft CP → Plugins, install "AI Assistant" + +3. Configure providers in **AI Assistant → Integrations** + +4. Enable fields in **AI Assistant → Settings** + +### Via Plugin Store + +1. Go to **Plugin Store** in your Craft control panel +2. Search for "AI Assistant" +3. Click **Install** +4. Configure providers in **AI Assistant → Integrations** +5. Enable fields in **AI Assistant → Settings** + +## Updating + +To update AI Assistant: + +1. Run `composer update solspace/craft-aiassistant` in your terminal +2. Or update via the Plugin Store in your Craft control panel + +After updating, clear your caches and check the changelog for any breaking changes. + diff --git a/docsTag.json b/docsTag.json index cd59b1c0..9246d8ff 100644 --- a/docsTag.json +++ b/docsTag.json @@ -43,6 +43,12 @@ "id": "docs-craft-calendar-v1" } ], + "/craft/ai-assistant": [ + { + "version": "v1", + "id": "docs-craft-ai-assistant-current" + } + ], "/expressionengine/freeform": [ { "version": "v3", diff --git a/docusaurus.config.ts b/docusaurus.config.ts index a3a4cbc3..c8f32590 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -225,6 +225,25 @@ const config: Config = { }, }, ], + [ + '@docusaurus/plugin-content-docs', + { + id: 'craft-ai-assistant', + path: 'craft-ai-assistant', + routeBasePath: '/craft/ai-assistant', + editUrl: 'https://github.com/solspace/documentation/edit/main', + sidebarPath: './sidebars.ts', + sidebarCollapsed: false, + lastVersion: 'current', + versions: { + current: { + label: '1.x', + path: 'v1', + badge: false, + }, + }, + }, + ], [ '@docusaurus/plugin-content-docs', { @@ -335,6 +354,11 @@ const config: Config = { docsPluginId: 'craft-calendar', position: 'left', }, + { + type: 'docsVersionDropdown', + docsPluginId: 'craft-ai-assistant', + position: 'left', + }, { type: 'docsVersionDropdown', docsPluginId: 'ee-freeform', diff --git a/src/pages/craft/index.tsx b/src/pages/craft/index.tsx index fe3d109f..1add8041 100644 --- a/src/pages/craft/index.tsx +++ b/src/pages/craft/index.tsx @@ -30,6 +30,11 @@ export default function Craft(): JSX.Element { icon: Icons.CalendarIcon, fullCardLink: '/craft/calendar/v5', }, + { + title: 'AI Assistant', + icon: Icons.AIIcon, + fullCardLink: '/craft/ai-assistant/v1', + }, { title: 'Express Forms', icon: Icons.ExpressFormsIcon, diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 2b56cfd1..af18320d 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -52,6 +52,11 @@ export default function Home(): JSX.Element { icon: Icons.CalendarIcon, fullCardLink: 'craft/calendar/v5', }, + { + title: 'AI Assistant', + icon: Icons.AIAssistantIcon, + fullCardLink: 'craft/ai-assistant/v1', + }, { title: 'Express Forms', icon: Icons.ExpressFormsIcon, diff --git a/src/theme/Logo/index.tsx b/src/theme/Logo/index.tsx index 2f73341e..155659f8 100644 --- a/src/theme/Logo/index.tsx +++ b/src/theme/Logo/index.tsx @@ -33,6 +33,14 @@ const logos: LogoItem[] = [ logoLineShort: null, src: 'logos/icons/calendar.png', }, + { + pathname: '/craft/ai-assistant', + latestVersionSlug: '/craft/ai-assistant/v1', + title: 'AI Assistant', + logoLine: 'for Craft', + logoLineShort: null, + src: 'logos/icons/ai.png', + }, { pathname: 'https://discontinued-docs.solspace.com/express-forms/', title: 'Express Forms', diff --git a/static/icons/cards/ai-assistant.svg b/static/icons/cards/ai-assistant.svg new file mode 100644 index 00000000..61f7f562 --- /dev/null +++ b/static/icons/cards/ai-assistant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/cards/calendar.svg b/static/icons/cards/calendar.svg index d4b43fff..263ee230 100644 --- a/static/icons/cards/calendar.svg +++ b/static/icons/cards/calendar.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/static/icons/cards/freeform.svg b/static/icons/cards/freeform.svg index ef03300c..c41a8c7e 100644 --- a/static/icons/cards/freeform.svg +++ b/static/icons/cards/freeform.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/static/icons/cards/index.ts b/static/icons/cards/index.ts index 1dd0a29c..4c37da09 100644 --- a/static/icons/cards/index.ts +++ b/static/icons/cards/index.ts @@ -1,4 +1,5 @@ export default { + AIAssistantIcon: 'ai-assistant', AIIcon: 'ai', AISpamIcon: 'ai-spam', AlarmIcon: 'alarm', diff --git a/static/img/intro/aiassistant-dark.png b/static/img/intro/aiassistant-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..89c26b59a352992e4f43c929264e942332e7f2bb GIT binary patch literal 8690 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 literal 0 HcmV?d00001 diff --git a/static/img/intro/aiassistant-light.png b/static/img/intro/aiassistant-light.png new file mode 100644 index 0000000000000000000000000000000000000000..08e2060c0dc2c8c2ec94f93ab36dfe130d5edbf3 GIT binary patch literal 8499 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 LLz&XgdEELRrWdM1 literal 0 HcmV?d00001 diff --git a/static/logos/icons/ai.png b/static/logos/icons/ai.png new file mode 100644 index 0000000000000000000000000000000000000000..b63436624f5577cef9017ffce1e37d69b6b20b07 GIT binary patch literal 3202 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 literal 0 HcmV?d00001 diff --git a/vercel.json b/vercel.json index b7599bfb..259e5a49 100644 --- a/vercel.json +++ b/vercel.json @@ -41,6 +41,14 @@ { "destination": "/craft/freeform/v5/templates/caching/", "source": "/craft/freeform/v5/guides/guide/caching-forms/" + }, + { + "destination": "/craft/ai-assistant/v1/", + "source": "/craft/ai-assistant" + }, + { + "destination": "/craft/ai-assistant/v1/", + "source": "/craft/ai-assistant/" } ] } diff --git a/versionsBadge.json b/versionsBadge.json index edca884f..1a8d1df3 100644 --- a/versionsBadge.json +++ b/versionsBadge.json @@ -11,6 +11,10 @@ { "version": "v2", "badge": "Retired" }, { "version": "v1", "badge": "Retired" } ], + "/craft/ai-assistant": [ + { "version": "current", "badge": "Latest" }, + { "version": "v1", "badge": "Latest" } + ], "/craft/express-forms": [ { "version": "v2", "badge": "Discontinued" }, { "version": "v1", "badge": "Retired" } From 0bddcaa6433820e9429ee08820078279ea232ec6 Mon Sep 17 00:00:00 2001 From: thejahid Date: Wed, 19 Nov 2025 18:54:11 +0600 Subject: [PATCH 2/5] fix: update favicon.ico --- static/img/favicon.ico | Bin 15406 -> 15406 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/static/img/favicon.ico b/static/img/favicon.ico index d802c6c30e5b30a9d917b149a738ed00d7c12fe3..05ce25bf8914f02636bd7d520d51ab551f4d5176 100644 GIT binary patch literal 15406 zcmeI3dyHIF9mkI{_uknq#RUrWfwCBAz#3E0RD%SoNFX5?B7Z2DP>jz&5CkD$5mxJi zy1Vz@nQqaN0)-N-6>7k)WaB(KHxB8$fv!&{j-sU01s;-R?Y&pWm6e>76@wcIM9B zncc*lWRzN}lNjR4ozrLdCsMypOR~@EP2*Ql(c6JmpuDM?K|h|wQ61?5R=2!r*%I2*&6b) z%d}@-tbO~IvS+_q_N>v8m$^=BRFUu_yuq@aJ~Vi4PT1VMu6-*f?V){oK)pLjA9{^C zI^bXStwZ3knza`>k^cs%8&PjW@Rji$Y4|6Xrm!X^A@SM?yXM;`~F zr_uivT5Q_0mekPg^|}wUlCdfJ&KDW;73h5p`nb2`+ZzI+uQS8%&-8ckGyTvqNc_{> zr!@^68qA(@*tHk8M0xuoGWWDM?|r-7lX{Z+o;XC<=u?o)xmHQ$*CccR|MN=OwI3*X z&b0 z?|uN^QG=lp6AH}#;a2>5S`hV!vj{)2D};gAX8o$2_}DHcowL3c=Fj(1(RD6rx4)$A z^suu?c-CO>tv__b76j`=9DmQ+ukY#4CY7a~_tF3I8rj7bO@47~U5sz1|EbzYT*DW< zUB}j<`nbY{7kCDUP0KaD-@q;xyL-(U% zlhffZGL8=(eWK3WUuAy(8Xe0VueI@5{`TLspE zo*yWgT%~tmQr_fir;_KahS#1*t{U{+=vu({ZwK#9l0PQqi;l6OtKl1KLv^xO^61gB zZ*Rs9t~9Qz;n(b4SpyjJ`ua?L74!1W_`~6{{O21StntMR$T$jt&^aHxldO$AnTJlua22Ety1$PMiQU0 z5~I4c)<6#YZDPZ3r%4;hJ?|&CT}RBz(btc)=Uh$PzeKy%(gUm`i%gvu81Ua2im#!( zt0o6(^|{1DiHk*Of;#9w#7n8ecOcV!)Qw-#cPMs-()*AH+ytLz$qSNGrJmddz8C1@ zWv)A`c*nRuOrJsC5y)R82lxvy{rW>*wm*$EHB-aO+Uay?aAB|h8T%{LMU$@eNo?t2 z^nD|Bq}1q=OUifzGRU=veB1f`sxi-O$E7zQDfJ|Ij`0a2_TnklRQ4n1dU-D;wjJrF zGR8+OXI<)Fk#Uf*C?mth@w{SpboPGCc(~Rz;H_VO@vVd8h~@j#kWS{KRMC&D}A6HSkT(Nxd~&WibB8w|*0&`vCu# zc8@u3*5Y5&^Fgpj>-qq@T*qboVK(BI{D++AIxyDzpChqtRIly){z6jy$QpLZ&0G)m zF(|C>==bME&ZPZ!;(hV=|8>=IdMI-?ImGWwJ~TCU@jpN51eR9&GxJ`ztpv zW_DV*8ucT&jIj&yGU}Df!MvWFcqe#ezq=M!vwO*}sS(Im2jv`6Bc9WFE^GE$@?&Cq zk$MWe1K@qQ>}Pg^H<}l>j^8(XZQEp@b2l~YbTG!X#SdgBed|-;z73pzS)qi^T? zdeyx5r@0qnY=nA_TJlHuftTQw+?H$Q5Pw6QvR`LjZbsiL^pJC&9#RV!*F@*@8tFQC zZm{RAkHhb2D0)V&6?+K3Gl7m@mVLdV=Uiy^K&cNq8I!7K?4AI73qHEWzm&i_j*fTX zx1XZ^SXmg(oF%a~P1^|c9CsBy6`N^!PRiQIKcOdC=kaCV0_?vltd?zn~+~!+Q5!V;NPNI_ej!bx8IdoyEtrJ zjvVq|ikO&U#Q)T?qnX%F-&#Cb&fA@ZX8pu6w| z>slvb=#(>SlCx3oJ`UE`Ajv(+nN7Yb`STIk>c=ZOevy05WsP*{Tw4BA zNB);UzV|t^=D?mGa>@U literal 15406 zcmeHOcbHVw6@Q64v!EtcG*vNCL`@=^gcvljq!9D@*)`Gl8BL5p5{QUkkRT|Ez_K&5 zl%+SRu3$u@SpapHUZkoZCG^fV*fKNs@zkkMAgUjJ>pI<5D&b&H>1UnA2_MJ4L>>-d zJnQZL;lOcxtK@I2o77c^dbgvfb)!TbSOYxX#5_;S_74}!Reuqw8h({?e7$S@k&i?U zt`oJVRMg%jqL%kJ@D@HPs$z%S+(TqRpWD;N8~jIoOVg@WhD2?j4>~7`S~1YzacI5X zkAF;zOP{|NImZ)!vwpK5G_l3-K^nhgc5($ zo-#e=H&2wx!ald@Z@?~zhXU=B>& zCL^rVaqiYPoFn^r0`Gswv!~Bsv2{*766^zfmSP_AR4tykW6n5W)Zi?$Z7KRb$1|T% zAT*+Za;7<+oA6LR`7I^)S*O((2Cj)m^1H+%feFCtJv=yz!QFV1Co1ufKTZH|;$EY_ zO�N2Yn-fjrd*^4+q9eB)>D}yjpr&U(AMwMDl)$G0X9!&Q5agvadVF=)KGG=A4VA zD6fqd4zY0X0nm~<^SS5C1<$)3`wcmLw-W~$ntv&9tIC4A_gp87V<=Ew6K>Mn#sPaY zCMWEn=Zl*6sHhKmht7QU?t;v$Z-|1k26r3p1+^G!!}~G=9*~iL!`_d})UNB_!R3@FYDEF) zY9ean#iHgstnVQbKTuq0AJt&53d?&r$^?UPc$*DE}IcXtnSof?&#YByF z-L1*>z&U&qurkYd&VT%1YI=OD6@}10el2R~d7`G>=)T($Js06xtvH?1&5=EV~(A0-qJjTtXW*L|KG&c6i@VRri<9SC z?S{_H^9$Ho$Dh<%&o9uO)&5l}euzWP9NvV3|1aG>2dqN+ujx=B)rH{GbQtFMF~Dzl z{vccJq82}=b$0$%`9{29H@-M(QQ zLFl4p-EZ!F+Fl=Y*L-KUNo|D~e!w2n9-RE6BtP=by!&s zuk+mVUj1Y`*1m(NDQ!e5cZy)$wH~tLZP-8s)2*=eP~j`qS~ z1=i)=25Yl+gguS-n|sf78U8ig1LumG-d4*2TmEp6D*2f#dGTi&eoNRk2MTa*ZMyAu zBsd%Q-?#?#xUaOl_lBOTjn#rDmWf*SlIBr?JGk?I_LB0%NmB}N_Ah-mBw#%DSK zIsa>lMIFKU!hN2rsJYNn6R@WD{-bdH`*$CZth3u-Z`>gLtuNtsgXKb&+84I$df^V>!6$V0Pnn_eFu@?Hmu8GJhZ#H zM)V;#^#*>kj&1C72y%TZ-b*pZw0J1^OnoTOT1w!s{JgkUfPNCVXst)^G{#SY?#Y5Z z3(6p?S#2c$@>n?kR_s|P*j7al*HDf(p9*|e>c_|- z)=@7wZ2Iak7>hZ=fraQ-0(lX}(-D4^wlXBYg$%ULhrcS2M9Aj{c`aI)*9QF22Xnux zLevM~qspX{`r&iGeGCl1(!T4r!Kc09bN0=nGQ>I$GOQ3d?*-1}`_Ec#!MkItz|UT61U}CP?-c|0&)!#d@_Skf91Fe91or1a z;7&hmuKoPqwnqZTW8u^8bnZb_-!q%x{I6^@?$ld`!CyE2JJ1(kxA8sV>(CMDGxOAo zPZjNmNg02(K)l96!MlL}(MI7<9p}y88vBd(9^(g9dqwU30P!g3gp4Ch`-!2CzNu5Y zuZINkoO_^Ud^p%2veEyU<+?9;Li+}x95z&2X}i;pa~yg*>|GrfnROrR3iuID4J|m! zh$&E~fV{+B&ui5B(EmiAQ)3GCVcH+`4=v~no9()UujVY!1)>K#vdNg1vW}y({IY4rq=;?|33cWW{8iy z?nV5q{Tno9W(rby(sj@F$PFqm7leQo>CtUw9@gB#@tt9T8KKfC51=~ zejLU>d7g*BW`^%n`|WnUCvxI&s-Mp<9Sf%KBR388kUMukpYHCXZ)!gJ-yE@Ob@UU& z4q^Mb;6Zkh7Wm_mzCxe)^W3Y2U9cYDQ`eknd<8uTdfs2bN5iuAOP>S2dS_wWKu!3r zH!S+`;A3oT(eaMr3%uua;DcE10LY%#edA9avHgEZq;M7)@1gILbWlbTZ^}vfdA7zN^Ul8*mdQy6fBz`m}T7#rXM7AN@?M0XZtJLLV;UHSmdP zxwE8?$gcN|FA;ee0^e=6vJRogHo%?!+(*J9N9b~-|Nnz${N2-xh0~tPO{exRiBoP8 zu@eVPoI&&c_aJlNPbMwQT|j<@_Wv=TgmD7O__VU*W0BTf4F0V;iL9Vlt~ny=pSSy2 zd-Mrz2k!p-Lzt6uHz?#2t~KM5I~U?^hF^OsViTl==bdt7Y)izJ?=Z0z=B6b4x!a*0 z-TaKf|1#{s@VS^Bu@5!++y3x3c5QAOk+KBwZHYPJtBk84&ZBvs_&fcN=%jz!h@QTrm5{Hp;iFbsSOCk9D|Dffn8hbhRYmtncm%^Vsv}-zaJO8#r z!x)Db-J>oM#eH`c>iRgZYMO&rhJjbcU19i_ak;}Alf0sbQZCh3Y28)Jc=%~IA#89( zhZGOZc)p!K-Z6Ok^AEprW9EAZF?&_MRn)rC30}b+M&CB?ut8q}uUu>L%8;W)-ex|5 zQ^%{r@oC#DwFjNMPL-(6S@I>*D}3=!SeJ1oH~li`PE zjtJ@DIcCg^Ie(-lk+0BaS_=QR9XHATf{Xm_0r@BU`Q_P#O_(g?=j8>kJ#atT_%MeJ zdYtPFJ9&kSoMeOV~gQ*NL=D@KEaxhotm{wtn%a?9VPg!TVD0NE)CG z^~OCW_O^PkSx?3u7;{1lRu}50(C2jw%z1~ACfdrMyec|Rk^68g!d(LM`?F#o2|Pj#EhBapyTI4*t)qKah7mn&N;2N|-AN+f~OK6D```KzUfP z-PDj@rv22&dgeG#F0q|=*y^HWEI2V-qS3g7UagkP+bMky+|g;Z>?^o9g=eOmb7r-3ft-k3AP;q3 zpz)_J@o?vNa1VfgGw}xM;R~GvpYDi^eVAibzTJU*j!(!JwE}XVyiPv_mK4@QaS0B=?|ex0fXv&d5Xc@crBwEo#~ZG-kiU z#$)|>H>K$=Cqq*D7=@e+=Nk8XdUz85TRU!$Lj_-RwLAKj3-Xy|aFa_QgBVB6)DQLW z=TLvAoMi4Kau0RRx%LC4qN*z=#i2RZL`nuhEDyjwQC^nF)*vTr2t zk@RbF5o3I)dn;M*n9H+{XA=MSpnX=;e+3({Um}047U(vP7WyaD$mTBm_7+?s%(T>iW@_z?tC)3u{cA^(esN;RW zd(Ff5TsiPO{XYj;^ypZ;F!%!FNIHHI4&Dpg{n;|PXe2GPci?AK?{^oqX^QrFDcYFS zm1y@+HZj*aQ~qQw7>F~+BKf!3F{J7j&$tk0VD(9_eChZ%< znaVUSM?HL=OOT^|u8qHr!-N8lV!r?9*rTBr{}%zj^ZicT4gOYB{9nar&=5V@b@?xh ztAoBUcne~^>G*3JhBf^)bXwEzGB From 97042f8d84b8cde0630b886edc8969780cf04dd9 Mon Sep 17 00:00:00 2001 From: thejahid Date: Wed, 19 Nov 2025 19:03:27 +0600 Subject: [PATCH 3/5] fix: update Craft CMS compatibility requirements in installation guide --- craft-ai-assistant/setup/installing-updating.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/craft-ai-assistant/setup/installing-updating.mdx b/craft-ai-assistant/setup/installing-updating.mdx index 6bbb8d4a..5da718d1 100644 --- a/craft-ai-assistant/setup/installing-updating.mdx +++ b/craft-ai-assistant/setup/installing-updating.mdx @@ -36,7 +36,9 @@ import Icons from '@site/static/icons/cards'; AI Assistant requires: -- **Craft CMS 5.0.0+** +**Craft CMS compatibility:** + +- **Craft CMS 4.x or 5.x (4.0.0+ / 5.0.0+)** - **PHP 8.0+** - Valid API key(s) for configured providers (OpenAI, Google Gemini, Anthropic, xAI, or Replicate) @@ -74,4 +76,3 @@ To update AI Assistant: 2. Or update via the Plugin Store in your Craft control panel After updating, clear your caches and check the changelog for any breaking changes. - From 77f602ed83efe4bf4057f271aaea53344f69f51c Mon Sep 17 00:00:00 2001 From: Kelsey Martens Date: Thu, 4 Dec 2025 13:20:07 -0600 Subject: [PATCH 4/5] ffc5: fixes to JS plugin docs --- craft-freeform/developer/js-plugin.mdx | 2 +- craft-freeform/templates/ajax.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/craft-freeform/developer/js-plugin.mdx b/craft-freeform/developer/js-plugin.mdx index 78945b08..3d1f1bb3 100644 --- a/craft-freeform/developer/js-plugin.mdx +++ b/craft-freeform/developer/js-plugin.mdx @@ -8,7 +8,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import { Badge } from '@site/src/components/utils'; -# Honeypot Plugin +# Javascript Plugin Freeform includes its own JS plugin that is at the center of handling all of Freeform's powerful convenience features like AJAX, conditional rules, date pickers, table fields, Captchas, Stripe payments, and more! diff --git a/craft-freeform/templates/ajax.mdx b/craft-freeform/templates/ajax.mdx index 4c892fcf..9d93aeef 100644 --- a/craft-freeform/templates/ajax.mdx +++ b/craft-freeform/templates/ajax.mdx @@ -25,7 +25,7 @@ The Freeform [javascript plugin](../developer/js-plugin.mdx) handles AJAX functi The built-in AJAX functionality lets you completely customize the way your forms work if you're not satisfied with anything in the provided defaults. :::info -Be sure to check out the [Honeypot plugin](../developer/js-plugin.mdx) documentation, to learn how to further extend Freeform's functionality. +Be sure to check out the [Javascript plugin](../developer/js-plugin.mdx) documentation, to learn how to further extend Freeform's functionality. ::: ### Customize Success & Error Messages From da38b908bfaeccdddd3e698a5e6b029eb4ea761b Mon Sep 17 00:00:00 2001 From: Kelsey Martens Date: Wed, 7 Jan 2026 23:32:25 -0600 Subject: [PATCH 5/5] aic1: adjustments/launch --- craft-ai-assistant/intro.mdx | 2 +- craft-ai-assistant/setup/changelog.mdx | 25 +++++++------------------ docusaurus.config.ts | 12 ++++++++++++ src/components/layout/Footer.tsx | 10 ---------- src/components/layout/GithubUrl.tsx | 4 ++++ static/img/intro/aiassistant-dark.png | Bin 8690 -> 47993 bytes static/img/intro/aiassistant-light.png | Bin 8499 -> 16073 bytes 7 files changed, 24 insertions(+), 29 deletions(-) diff --git a/craft-ai-assistant/intro.mdx b/craft-ai-assistant/intro.mdx index 3d574980..f16fc627 100644 --- a/craft-ai-assistant/intro.mdx +++ b/craft-ai-assistant/intro.mdx @@ -37,7 +37,7 @@ import { alt="Craft CMS" />

- AI-powered content assistance for Craft CMS with prompt management, multiple providers, and a rich in-field workflow. + Generate smarter text and images with AI using custom prompts and support for multiple models.

### Added - -- Initial release -- Inline AI button on supported fields (Title, Plain Text, CKEditor, Redactor, TinyMCE) -- Two-column modal (Input Context left, Generated Text right) with rich HTML rendering -- Lightswitch to include/exclude input context in the prompt -- Correct HTML handling for CKEditor, TinyMCE, and Redactor when inserting back into the field -- Prompt management (built-in and custom) with integration binding and sort order -- Field-specific prompts per field with automatic modal preselection -- Integration management for OpenAI, Google Gemini, Anthropic, xAI, and Replicate (enable/disable, API keys, model selection) -- Quick AI Actions dashboard widget (select prompt, editable prompt text, generate, copy) -- Craft-native UI components (lightswitch, notices), event-based widget registration -- Responsive, larger modal with dynamic body height - +- Initial release. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index c8f32590..af083dc8 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -172,6 +172,18 @@ const config: Config = { toc_max_heading_level: 2, }, }, + { + version: 1, + saveDir: 'craft-ai-assistant/setup', + file: 'changelog.mdx', + url: 'https://raw.githubusercontent.com/solspace/craft-aiassistant/v1/CHANGELOG.md', + meta: { + title: 'Changelog', + sidebar_label: 'Changelog', + sidebar_position: 5, + toc_max_heading_level: 2, + }, + }, ], }, ], diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx index 21112227..ddaaa4f7 100644 --- a/src/components/layout/Footer.tsx +++ b/src/components/layout/Footer.tsx @@ -103,16 +103,6 @@ const Footer: React.FC = () => { - - - - - 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 K6E76g`}#jVe9L42 literal 8690 zcmeHt_g7O}*KQCG=#gSMM^Ty{P^3u>kkCW~L?wU_5Tr;+kPd+Wp)0;}lqS6=C`uqS zO$=SIAdm!z2m$E|gkWfzPz?2MJomk0+%dlIKREdz8QFWUIoEpDeCB-SN*-Fl%!GeG z^*aaz5;nhb`349i_z(ozci_N&;L0%Ka5nI9+T+R%3lJ#s90(MD9|YO}F2&D*KxkDE zhKeq`wNzA$n=TLg%L6?(QswBvenVI zFBFF+uq*f0@$c(j1pYn`o=ozili`$F40PwS%2ltHzc% zch`VFv*U`;_x*@ri9XfPP0nU%Z&+67qkLPf3%H)&hNA~Cp~b*6UBEM!qY&F2FFRAA z!|9*okyjilS`_WQ+N@c9=nbLk3NmVMj=io+{A^5pR0<2fANuH|wM(%tH>XOc)h=%9}Z^^GcCE(-RsWOpl=!%-DL%S78Cn5 z*BpwwQc6P~xhXWWHhH)0q<_r-l%{%=U#~1zxKt|Sri0sncUnA5O%_qgspYNvsj>B% zU^qT0FIj;r8Clt7VCiV?sr;D(C5vXtu_6JSe^wa4RcMr}Xw4L_DpDW&Z*Cc-GWC z-gCp=AamxsdicOM`sw0*AgJeB`7w~#YjwHA)!?6}Am>@hO%L*)*!bJVC`pT>ML?=G zPG<$KtWo+mp|Pld1B3FQ5}V|9(Dpdst~m=+dcp0%9AI1C)cy8U_9`)aGD$+0t$@4- z;{!Q+$O`DF(*`d)SvPkaK{Q(Ds_}>Z4w@5_QB(a&t&)Hr4>VDAQ zK%r@p_`BxyzFHLzb!waHqGg%~E=v|#rZ#1r>6eE-SHh)`g0b0P64H)>a=1Wwk2$|S zQ?q3m&}+eSsHv5bKx08dx#?ngp{wGi#lJRyarRAj3tt3%0lP@VBrM-Mp5@CKcgi?a z>6&_)o{KE>%eNpp+VyZ6<-%F^yx zeB!|UBCGNK4k&e*71dw8VUE4!JUSO0!WD%4rGg#w@R+1@qF`v(+QjT!Cc-9qi_4C= zrh{CS$WGvF$#Ys%T&dr9SIH&TA{t{}@jrkdJ?DstF>pG@31<{$JS!@+AG$n|v09n9 z(T#sC6HJ4WZ-&j!3g_d{W$5qkoU-D&P7s>#CASJqAm{J{_p6-8M>?QLl&vC(yHWJm zYYmNcWmZE<9Y52~FeNdYe@NRi!jeAJ=4vy`tH$p9z%j=mr8~Q40rJ@T)&6$94ynyA zN69Cr&wI96=W1N8UbJ-}7iGkh-D9rW{5`~dt0(>O+?oe~LA zw$D<2ki#tEbZmw1Jo|dFNKY3(L*=}4WAdw>Om2U(U-8zEOXhYgno+tN<`zJ3enDCu z^AE&Ru{`Tk%UzYQ$bi-xFcn%_$nov@tCE%#^Lb7=)q<}+*EP0CsAVZ>_xy=*oeut~ z#^tPXmZoY9B0+Ee42k5??s{P^*5u88Hc*tC?f>wg0@M#M_nck+t!DYYchOS^+n}Xk z6bE6`PPKtvShfQ*0mF*ll^QhwR@tfYk2%}5vX+nowAT8TfD(rt^IjSuMk&Z@2Xg?v z@A`g#I*n`eQ{W@6m9eWoRS1gQ?GbPqdxl&P7RDau^`9AN3TV9as; zVO$lbC>%)gH~TMY4iNO6<-wa5@S?K^Cpev$<%{aj3O(N|fMQ%rLlr2VtJxR4uvwEZnE2Sqtk}%crH$3C3C@fcBS!MQ;a`>+<<5b&;9+)cXY70 zSbSvEv!#mWNu?i97K=MNa!W1k!gBfXPfppBGd11RF+JsZFOr_23SB@r)kW>> zq}0{5L)^*6v*DghzsD9)5mFmqh}(G{C^Qd1`8tr+Vu+6K`d=`%nf;Ku*{)R%C)#b` zH<9b}P`Dj!2Yg1F-b|RsX7oKBdo0djw7g!(&m_VZAMTvD5ei=H`i0y=4d0>9VP9l^B=G!TbVQnAvejT$B`UgL{OIf0VL}t?%}Kt{ zB48dD5j`zLt+|Eg(c9f4Mk@J}+35}0#UuJO3m#9Lkaqp`MYPfI89b8#W(}9>m2RME zq`ApE^FNpUcAvSn>2F?dr1}p>J#=l0{h^YD!MItNYJ1kQ+0X6Bs;ullCa21tL_L18 zii?U~P5OXp)R&gW&(?}B{l0Tg4=pR@h~sMlYTosy?|nMrXUrJPYda-PubgsId{ZZy z{j9c8112Ju#dX1}7D`RSIDVZ;oM?d9=L6i@Bwje5@eWhxW5jv8#k zr}bYL;)=_*q8Is?&8G$Jb{)jg?jkk%(;NKM1GnA99^R$c#5r>cEyrPV!3;E$*iwT0 zk1(f=^W6HxNPSqC4?BErY4rV}xL&Hc!Tmv|Ifn#>W5t@**g5D$U~dy{utKi`HBVduJn?kVuo` zu*h!QPPA+Q8sAHQT43?yc)e2?<$}4C!ekGkQFF39V6oZc|7MqqRP|wKv*-H4;Lo+` zo%&;yZGUb&45&=W(@5?Gh3<(nSru9nSh3@PBGzEie=O%Hd zyy0LuU1aChvXa8kOor3rT8mw<(Ld%(T@gKgI7yNX7RQLxd$pV1P+zY#X)UhSA?gQ8 zzPD$6RhxfTJy-J%@fHbA%g^p1VO(&DG;MBUblC>) zm7VuLWv<@}o3luYsq5i#7Q9tH?Oquh?OjXeW=ISV#w)$C?p|1j+@pP80%rl`2Pt(b90k&`qTrg^ zVYx#aFqXEy$xvE5Xr&!UWT`Tz#!mLHAiu~$@Nc!>(|fO(Ij?EHYO!HFZ3zG^--{U& z;dPGPG;pa~WR`^eDx-au^PSg}q?L!5Ow*G}YmKJ43=* zJUB2_;dNC+)L>0YKJJj2a|GRSvVu+EY!pF17O-Z!Bph0^+6b+>F2BUW^=dtpS~{PD z$CpFvhDX=egw~AtYeBc)oqTxrptVa@k57VK_YZ!t{4b?;#Mb=GJX)13}%C^wJBj z%{)F;uxmN9nsM013J1tJ`<(F(#eWo_LSYV<`}~P;dqPA`!&_SSUX!DG8&E8NWx-M3 zyI`>kI{q)guwufF*5=wz38cn6^Bt$)2X(K&O;f0R6~uKb%f8*eM@IYK0&Nf9o~HZC za0vEfO+2ILj&)bPWZSMj_e&=|2ttR1^(xd#)GBQZWkaRxQ|WEUY=h%JgLhtPl}#Q& z8;M5M^Q-O$T&pLukzdTZrO`ZnF%k^kRwF_mg!q0b6j9D3(aNT?e<=wWYB0pRAaMtZ z>zyZ>lO14HDU0hJ-u5wkrrp3+#}g4@V&3~UbIGRT3CIqT4Fk^j>R`AlHzcB&o6UXs zgSNMV(uJZp_K(N^X;i?^%=y_>-+E2hV6pMSY3#IgvD@u{?3EQ;%%*!bN~p1qYiiaN z69OtG?De%rX9KyJcM+s(7@iIgeLreTt1?I=zxQ8$;~{s>MKQe@c8o3dG$Snvnw@_9 zb~muGy^1vEM{Cw&53}Nn$EJbc*klw|T97cXE^W?t5HWwSvTOvXE*(v&ZQUgC%lcV# z*5fMp>yk)cv=RB)I{#2>6%pvMlOZx{A7g5}=K^nG?ZYI|zYB*xvtfW4QI*a_yES@Z z|LC7>9~K?4kO_yCK#BSDzB6>61gYLhmIEV}(a4arxy(pu7jTb%X}{TT8UIq7U3gbo z%`i6^`X9$)V5df-FW|0GHAuc;JvI5-DJD4-DM-u~AS&`0!J&554;ysjtcoXZ1MS8| zR^wHnP^aP3QOVFmS;}2RiZx!9ToXoUdI_zE)CJn)gjjg?JY&${^8vkUBX$zt-`|h+`HCtYR^-{2~Ett`63#E)uOrS#WhV7{>cDR zlDpr09z(WVPviNynNr4Y!gQT{ncz|b{!kO$)@?qq40T1b6lmh4_v-Omnf(>)x9ll) zHRJfOfvex)R-;_f9cRfTAA`U(XIdEfh_sK>mnJZ7eba8LPwYC55Bd)7UNRa+H!X#I z4cAgpsk$JEK6(w@QLI2B#sW!wmidl7Ss(>>PLH8Qp)Of`zPcBJrjBOg<%0{&IsU!| zZ7+RxdYQuFW~rHPS5B75Y&{VSy_G3k>e9C*zWZEWakgwkI3|PVy?jLvS*%crB>An) z&DA;BMX%7r%j$(Du`=8hd6}~4djCC2`?AZMXQ6m&DfFh}mch{jB0PuA-?vTAl0rUPK`d$~@$1iqwO`bLiKkBu8hJnGXiXX;j9zz9;u$ zqih_|B|9&6KaH!dDqULaq-kIEBp1-_{a#(oP?y^rxG%&@{L@%H4*;}1Vkh)iNxrd0 zz1D0d!Yp2YZM@+!b_;c=hwRn*-I!Mw@R-mbh((}ekc-EG|Y$O=n++OYL6H9`@ zMQ7fPOsA@>)*}q9#~)bQ*J~v0kcp|AzVsK!1f``)UNjl0lAxf-)F&H}sHmRN{!{-& zqgUbV=zzd>c~kUlIlXG5?i>XENS&vAN4X8ITz}~#FGw`I7VGSLsdaP&NIR|2rD}ci z?SM~|-2u}rOo9)R*=?#DqunapY$DL_6`u;6<&1+9>yl}O^$E-x=F4Mg@HLjOgY{ie!AJj5Fwr(bcxBH)0FT4Hk9nQLH|;ti{Sz@P;jlYp{vU=Nxh0x0u`|o`Z+9tDq*>C2Xrd_lnyzM&N5(4dk6?$zsPIfih&RwtFsg1& zY!YROwu#l)Qr$Zp{75v0|0^G>nz!JCu^DF* z7H&3E`%$sHOR!!9qqJ65fkbj%qiyL`Y25 zSZV%Q9u}66u4C?!Za>qDvIyu|sLHe`TXp(QDhuu|7beg_#a}wSOA1qat48wTDwo85 zVk~`wXvpTe&!?JU@Fdig1g|qEhBgnZGm08lM1SE5H$%JD6x*FlO7rnrvFaxbtEtdk zhQkWP5h-7}Wd3=Li*kGPR-n!PE#PL{AW7cvZk;&2AbRauScN1V1|MR5R1!n^#um#| z$|tVvsgoQ=-%R)i8)Yp5Je>LLjQvW3x`)@PXLo@VB%a)U@xq&yu7Dvs#Zg~tGWzjzRA@>)gfFpY0d z=vG%u<2c*iMcxO8R4PL_4_Y5g`4VGR^JOO~)ixcAx9sL>Eo9VQ81N_S0(Dp4O#APX zBZV%RY>pG-^a2?1Jm075MoJ8xfb;BZfvgLkeR5&iIUSK{N zsV{16i=2)}NzB8P5o8tuw~)R_j4sVo>CSGHb?qJ^++C{E>vzcVKwY)y8evqYfw({3OOo}5K6O0?lh5+CD+gZ4V3qa zHJdPCri!u72D-O>%^=PFTFyQ?E^APIoj|d5M^AGyp$FO@J0e{c{fy_-{muoKFzW09sbfk6F diff --git a/static/img/intro/aiassistant-light.png b/static/img/intro/aiassistant-light.png index 08e2060c0dc2c8c2ec94f93ab36dfe130d5edbf3..41acd4668ae9c798102ef572ab97825e1e47c5fd 100644 GIT binary patch literal 16073 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 literal 8499 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 LLz&XgdEELRrWdM1