Add AI contrib module suite with compatibility filtering
>>> [!note] Migrated issue <!-- Drupal.org comment --> <!-- Migrated from issue #3568045. --> Reported by: [littlepixiez](https://www.drupal.org/user/2568718) >>> <h3>Problem/Motivation</h3> <p>Testers need access to additional AI ecosystem modules beyond just the base AI module. The AI ecosystem includes providers (ai_provider_anthropic, ai_provider_openai, etc.), AI Agents, AI Search, and other related modules. There are some modules not included in the Drupal CMS AI recipe that would be beneficial to test complete workflows and integrations.</p> <p>Like the base AI module, these additional modules must be installed via git (not composer) to support development branches, patches, and PRs. However, not all modules are compatible with all AI versions - for example, a module requiring AI ^2.0 won't work with AI 1.3.x.</p> <p>We need a way to:</p> <ul> <li>Specify which additional AI modules to include</li> <li>Have those modules automatically cloned from git</li> <li>Ensure only compatible modules are added to composer</li> <li>Get clear feedback about compatibility issues</li> </ul> <h3>Proposed resolution</h3> <p>Implement additional AI module installation with automatic compatibility filtering:</p> <p><strong>Module specification via DP_AI_MODULES:</strong></p> <ul> <li>Accepts comma-separated list of module names</li> <li>Example: <code>DP_AI_MODULES=ai_provider_litellm,ai_search,ai_agents</code></li> <li>Each module cloned from git.drupalcode.org</li> <li>Skips modules already cloned (e.g., if specified as the module being tested)</li> </ul> <p><strong>Automatic compatibility filtering:</strong></p> <ul> <li>Parse each module's composer.json to find AI version requirement</li> <li>Compare required AI version with installed AI base version</li> <li>If compatible &rarr; add to composer for installation</li> <li>If incompatible &rarr; clone anyway for inspection but skip composer installation</li> <li>Display clear compatibility status for each module</li> </ul> <p><strong>Default provider (ai_provider_litellm):</strong></p> <ul> <li>Always cloned automatically unless already present</li> <li>Auto-detects compatible version from AI base module's dependencies</li> <li>Falls back to AI version if can't determine provider version</li> <li>Applies same compatibility filtering</li> </ul> <p><strong>Summary output:</strong></p> <ul> <li>Shows AI version being used</li> <li>Lists all cloned modules</li> <li>Lists which modules are compatible (will be added to composer)</li> <li>Lists which modules are incompatible (cloned but not installed)</li> </ul> <h3>Remaining tasks</h3> <ul> <li>[x] Implement DP_AI_MODULES parsing (comma-separated list)</li> <li>[x] Add module cloning loop for additional modules</li> <li>[x] Implement compatibility checking logic</li> <li>[x] Parse composer.json to extract AI version requirements</li> <li>[x] Compare version compatibility (major.minor matching)</li> <li>[x] Track compatible vs incompatible modules separately</li> <li>[x] Add default provider (ai_provider_litellm) cloning</li> <li>[x] Auto-detect provider version from AI base module</li> <li>[x] Display clear compatibility status messages</li> <li>[x] Export COMPATIBLE_AI_MODULES for composer integration</li> <li>[x] Test with various module combinations</li> <li>[x] Test with DDEV</li> <li>[x] Test with DrupalPod/DrupalForge</li> </ul> <h3>Testing</h3> <p><strong>DDEV:</strong> Tested with:</p> <ul> <li>Multiple compatible modules (all added to composer)</li> <li>Mix of compatible and incompatible modules</li> <li>Default provider auto-installation</li> <li>Module already cloned as test module (skipped correctly)</li> <li>Empty DP_AI_MODULES (only default provider cloned)</li> <li>Verified compatible modules installed and working</li> <li>Verified incompatible modules cloned but not breaking installation<br> </li></ul> > Related issue: [Issue #3568041](https://www.drupal.org/node/3568041)
issue