Repository navigation
Conversation
- Add model_provider:groq_alias, model_provider:mistral_alias, and model_provider:xai_alias plugins on the OpenAI-compatible path. - Register short name mapping in praxist.cli._env and alias normalization in praxist.cli._setup_common. - Add GROQ_API_KEY, MISTRAL_API_KEY, and XAI_API_KEY to CredentialResolver.ENV_SPECS. - Declare compatibility with agent_runtime:codex_sdk for Chat Completions relay execution. - Add provider environment handling in research_loop stage and provider_env. - Update plugin reference and provider guides in docs/. - Add unit, conformance, relay, setup, and hardening test coverage.
|
Thank you @warun7 for contributing the Groq, Mistral, and xAI provider plugins and their CLI/runtime wiring. We have preserved your commits and integrated them into the shared Our maintainer workflow is documented here: https://github.com/sapientinc/PRAXIST/blob/main/docs/guides/contributing.md#what-happens-after-submission. The validation branch is now ready for the separately scheduled real-task experiment stage. If that stage confirms there is no cross-task regression, we will promote the validated work to We are closing this source PR because its implementation has been transferred to the validation branch, not because the contribution was rejected. This discussion and attribution remain available. |
Summary
Adds first-class OpenAI-compatible model provider plugins for Groq (
model_provider:groq_alias), Mistral (model_provider:mistral_alias), and xAI (model_provider:xai_alias).While
_env.pyandcodex-relayalready defined key names (GROQ_API_KEY,MISTRAL_API_KEY,XAI_API_KEY) and upstream endpoints for these providers, onlydeepseek_aliaswas previously materialized as an active plugin and mapped inPROVIDER_REF_FOR_SHORT_NAME. This PR closes that gap, enabling operators to configure and start runs using--provider groq/mistral/xaior--model-provider model_provider:groq_aliaswith automatic credential resolution and runtime relay execution.Scope
praxist.plugins.model_providers: Addedgroq_alias,mistral_alias, andxai_aliasplugins.praxist.cli._env: Registered short name mappings inPROVIDER_REF_FOR_SHORT_NAME.praxist.cli._setup_common: Updatedprovider_key_var(),provider_short_name(), andprovider_plugin_ref()normalization dictionaries.praxist.core.credentials: AddedGROQ_API_KEY,MISTRAL_API_KEY, andXAI_API_KEYspecs toCredentialResolver.ENV_SPECS.praxist.plugins.agent_runtimes.codex_sdk: Declared new provider aliases incompatible_model_providers.praxist.plugins.workflow_stages.research_loop: Added provider environment handling inprovider_env.pyandstage.py.docs/: Updated plugin reference (docs/reference/plugins.md), model provider guide (docs/guides/model-providers.md), and credentials guide (docs/guides/credentials.md).openai_compatiblewire format and usecodex-relaywhen invoked underagent_runtime:codex_sdk.praxist/plugins/model_providers/and contain no task-specific logic or facts.Verification
tests/conformance/test_core_plugin_contracts.py(verified normalization, default profile resolution, and call building)tests/unit/test_modeling_normalize.py(verified default model resolution from plugin manifests)tests/unit/test_codex_sdk_relay.py(verified SDK routing name normalization and relay requirements)tests/unit/test_cli_setup_commands.py(verifiedpraxist configure-llmfor groq, mistral, and xai)tests/unit/test_startup_helper_contracts.py(verifiedfreeze_provider_envbehavior)tests/unit/test_coverage_95_contracts.py(verifiedstage._provider_envbehavior)tests/hardening/test_refactor_hardening.py(verified credential discovery and selection)tests/hardening/test_generic_architecture_boundaries.py(passed)tests/hardening/test_env_read_discipline.py(passed after updating allowlist)tests/hardening/test_documentation_contracts.py(passed)scripts/build_docs_site.py --check-generated(passed)python3 -m compileall -q praxist tests templates examples scripts(passed)git diff --check(passed)PluginLoader.praxist configure-llm --provider groq/mistral/xai --dry-run.Checklist
.github/CONTRIBUTING.mdand the contribution terms inLICENSE.md.