Skip to content

Conversation

@MujahidAbbas
Copy link
Owner

Summary

  • Add support for 8 AI providers: Anthropic, OpenAI, Gemini, Mistral, Groq, DeepSeek, Ollama, OpenRouter
  • Only show providers with configured API keys in the UI
  • Allow users to select from curated models or enter custom model IDs
  • Add project settings modal to change provider/model mid-project
  • Provider/model used for each generation is stored in PlanRun/PlanRunStep records

New Files

File Purpose
app/Enums/AiProvider.php Provider enum with Prism integration
config/providers.php Curated model lists per provider
app/Services/ProviderService.php Runtime provider detection/resolution
app/Jobs/Concerns/ResolvesAiProvider.php Shared trait for jobs
app/Livewire/Concerns/ManagesProviderSelection.php Shared trait for Livewire components
app/Livewire/Projects/SettingsModal.php Project settings modal

Test Plan

  • Configure multiple API keys in .env and verify only those appear in dropdown
  • Create project with selected provider/model
  • Change provider in settings modal and regenerate PRD
  • Verify document versions retain correct provider/model history
  • Test custom model ID input
  • Test with no providers configured (warning shown)

- Add AiProvider enum with 8 providers (Anthropic, OpenAI, Gemini,
  Mistral, Groq, DeepSeek, Ollama, OpenRouter)
- Add ProviderService for runtime provider detection based on .env config
- Add config/providers.php with curated model lists per provider
- Add provider/model selection to project creation modal
- Add SettingsModal for changing project provider mid-project
- Add ResolvesAiProvider trait for jobs (DRY)
- Add ManagesProviderSelection trait for Livewire components (DRY)
- Update .env.example with all provider API key placeholders

Only providers with configured API keys appear in the UI.
Users can select from curated models or enter custom model IDs.
@MujahidAbbas MujahidAbbas merged commit 3befe12 into main Jan 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants