janito 2.19.0__tar.gz → 2.20.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {janito-2.19.0 → janito-2.20.0}/CHANGELOG.md +19 -0
- {janito-2.19.0 → janito-2.20.0}/PKG-INFO +1 -1
- janito-2.20.0/docs/index.md +54 -0
- janito-2.20.0/docs/mistral-setup.md +180 -0
- janito-2.20.0/docs/overrides/partials/copyright.html +6 -0
- janito-2.20.0/docs/provider-platform-access.md +26 -0
- janito-2.20.0/docs/supported-providers-models.md +110 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_models.py +1 -3
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/openai/driver.py +13 -7
- janito-2.20.0/janito/i18n/it.py +46 -0
- {janito-2.19.0 → janito-2.20.0}/janito/provider_registry.py +11 -1
- {janito-2.19.0 → janito-2.20.0}/janito/providers/__init__.py +1 -0
- janito-2.20.0/janito/providers/mistral/__init__.py +1 -0
- janito-2.20.0/janito/providers/mistral/model_info.py +81 -0
- janito-2.20.0/janito/providers/mistral/provider.py +124 -0
- {janito-2.19.0 → janito-2.20.0}/janito/report_events.py +1 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/run_powershell_command.py +5 -14
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_base.py +2 -0
- {janito-2.19.0 → janito-2.20.0}/janito.egg-info/PKG-INFO +1 -1
- {janito-2.19.0 → janito-2.20.0}/janito.egg-info/SOURCES.txt +9 -0
- {janito-2.19.0 → janito-2.20.0}/mkdocs.yml +7 -1
- janito-2.20.0/mkdocs_hooks.py +51 -0
- janito-2.19.0/docs/supported-providers-models.md +0 -77
- {janito-2.19.0 → janito-2.20.0}/.codespellrc +0 -0
- {janito-2.19.0 → janito-2.20.0}/.gitattributes +0 -0
- {janito-2.19.0 → janito-2.20.0}/.github/workflows/python-app.yml.disabled +0 -0
- {janito-2.19.0 → janito-2.20.0}/.gitignore +0 -0
- {janito-2.19.0 → janito-2.20.0}/.pre-commit-config.yaml +0 -0
- {janito-2.19.0 → janito-2.20.0}/.secrets.baseline +0 -0
- {janito-2.19.0 → janito-2.20.0}/.vscode/settings.json +0 -0
- {janito-2.19.0 → janito-2.20.0}/CHANGELOG_2.16.0.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/LICENSE +0 -0
- {janito-2.19.0 → janito-2.20.0}/README-dev.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/README.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/UPDATING_DOCS.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/adding_mcp.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/DIV.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/Interfaces.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/TOOLBAR-STYLING.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/about/costs.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/about/vs-webchats.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/about/why.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/alibaba-setup.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/alternatives.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/cerebras-setup.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/code-generation-observability.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/our-approach.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/why-string-replacement.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/concepts/analysis-style.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/concepts/human-guided-ai.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/concepts/index.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/concepts/language-model-clients.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/concepts/prompt-design-style.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/deepseek-setup.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/driver-flow.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/driver-request-cancellation.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/drivers/events.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/drivers.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/event-bus.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/configuration.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/developing.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/disabled-tools.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/installation.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/profiles.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/prompting/README.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/single-shot-terminal.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/terminal-shell.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/tools-developer-guide.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/using.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/guides/using_tools.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/code-generation-observability.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/code_generation_observability.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/happy-programmer.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/happy-programmer.svg +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal-one-shot.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal-shell.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal_one_shot.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal_shell.png +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/llm-drivers-required-config.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/llm-drivers.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/meta/developer-toolchain.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/meta/quality-checks.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/moonshotai-setup.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/openai-setup.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/reference/api.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/reference/azure-openai.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/reference/cli-options.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/reference/message-handler-model.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/reference/rich-message-handler.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/security.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/tools/search-text.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/tools-index.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/tools-natural-results.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/tools-precision.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/docs/z-ai-setup.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/git_diff.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/github_diff +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/README.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/__main__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/_version.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/agent/setup_agent.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/bindings.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/chat_entry.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/prompt_style.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/script_runner.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/session.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/session_profile_select.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/toolbar.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_config.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_drivers.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_profiles.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_providers.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_tools.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/model_selection.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/model_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/ping_providers.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/set_api_key.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/show_config.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/config.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/console.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/event_logger.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/getters.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/model_guesser.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/runner.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/setters.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/core/unsetters.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/main.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/main_cli.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/prompt_core.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/prompt_handler.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/prompt_setup.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/rich_terminal_reporter.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/single_shot_mode/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/single_shot_mode/handler.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/cli/verbose_output.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/config.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/config_manager.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/conversation_history.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/dir_walk_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/docs/GETTING_STARTED.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/driver_events.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/azure_openai/driver.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/cerebras/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/dashscope.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/openai/README.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/openai_responses.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/zai/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/drivers/zai/driver.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/event_bus/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/event_bus/bus.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/event_bus/event.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/event_bus/handler.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/event_bus/queue_bus.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/exceptions.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/formatting.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/formatting_token.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/gitignore_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/i18n/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/i18n/messages.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/i18n/pt.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/README.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/agent.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/auth.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/auth_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/driver.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/driver_config.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/driver_config_builder.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/driver_input.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/message_parts.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/model.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/llm/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/mkdocs.yml +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/perf_singleton.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/performance_collector.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/platform_discovery.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/provider_config.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/alibaba/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/alibaba/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/alibaba/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/anthropic/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/anthropic/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/azure_openai/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/azure_openai/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/cerebras/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/cerebras/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/cerebras/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/dashscope.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/deepseek/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/deepseek/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/deepseek/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/google/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/google/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/google/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/moonshotai/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/moonshotai/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/moonshotai/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/schema_generator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/registry.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/model_info.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/provider.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/schema_generator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/regions/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/regions/cli.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/regions/geo_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/regions/provider_regions.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/shell.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/README.md +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/adapter.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/ask_user.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/copy_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/create_directory.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/create_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/fetch_url.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/find_files.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/move_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/open_url.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/python_code_run.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/python_command_run.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/python_file_run.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/read_files.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/remove_directory.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/remove_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/run_bash_command.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/core.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/view_file.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/disabled_tools.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/inspect_registry.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/outline_file.bak.zip +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/path_security.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/permissions.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/permissions_parse.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_events.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_run_exception.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_use_tracker.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tools_adapter.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/tools/tools_schema.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito/utils.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito.egg-info/dependency_links.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito.egg-info/entry_points.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito.egg-info/requires.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/janito.egg-info/top_level.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/pyproject.toml +0 -0
- {janito-2.19.0 → janito-2.20.0}/pytest.ini +0 -0
- {janito-2.19.0 → janito-2.20.0}/requirements-dev.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/requirements.txt +0 -0
- {janito-2.19.0 → janito-2.20.0}/setup.cfg +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/adapters/local/test_read_files.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_models.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_providers.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_providers_alibaba.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_providers_moonshotai.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_cli_version.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_disabled_tools.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_provider_alibaba.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_provider_cerebras.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tests/test_provider_moonshotai.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tools/release.py +0 -0
- {janito-2.19.0 → janito-2.20.0}/tox.ini +0 -0
@@ -2,6 +2,25 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [2.20.0] - 2025-08-10
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- **Mistral AI Provider**: Added complete support for Mistral AI models
|
10
|
+
- **General Purpose Models**:
|
11
|
+
- `mistral-large-latest`: 128k context, most capable model (default)
|
12
|
+
- `mistral-medium-latest`: 32k context, balanced performance
|
13
|
+
- `mistral-small-latest`: 32k context, compact and efficient
|
14
|
+
- **Code-Focused Models**:
|
15
|
+
- `codestral-latest`: 256k context, specialized for code generation
|
16
|
+
- `codestral-2405`: Previous version of code-focused model
|
17
|
+
- **Development-Focused Models**:
|
18
|
+
- `devstral-small-latest`: 128k context, optimized for agentic tool use
|
19
|
+
- `devstral-medium-latest`: 128k context, enhanced agentic capabilities
|
20
|
+
- **Mistral Setup Guide**: Comprehensive documentation for Mistral AI integration
|
21
|
+
- **Tool Support**: Full tool/function calling support across all Mistral models
|
22
|
+
- **API Integration**: Uses OpenAI-compatible API format via Mistral's La Plateforme
|
23
|
+
|
5
24
|
## [2.19.0] - 2025-08-08
|
6
25
|
|
7
26
|
### Added
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Janito Documentation
|
2
|
+
|
3
|
+
Welcome to the Janito documentation! This site contains comprehensive guides, tutorials, and reference materials for using and extending Janito.
|
4
|
+
|
5
|
+
## What is Janito?
|
6
|
+
|
7
|
+
Janito is a powerful AI assistant designed for developers, providing intelligent code assistance, terminal integration, and extensible tooling capabilities.
|
8
|
+
|
9
|
+
## Quick Start
|
10
|
+
|
11
|
+
- [**Installation Guide**](guides/installation.md) - Get Janito up and running
|
12
|
+
- [**Quickstart & Basic Usage**](guides/using.md) - Learn the basics
|
13
|
+
- [**Configuration**](guides/configuration.md) - Set up Janito for your needs
|
14
|
+
|
15
|
+
## Key Features
|
16
|
+
|
17
|
+
- **Terminal Integration**: Seamless shell integration with intelligent command assistance
|
18
|
+
- **Code Intelligence**: Advanced code analysis and generation capabilities
|
19
|
+
- **Extensible Tools**: Custom tool development and integration
|
20
|
+
- **Multi-Provider Support**: Works with OpenAI, DeepSeek, MoonshotAI, and more
|
21
|
+
- **Human-Guided AI**: Collaborative AI that works with you, not instead of you
|
22
|
+
|
23
|
+
## Documentation Sections
|
24
|
+
|
25
|
+
### Using Janito
|
26
|
+
Learn how to use Janito effectively:
|
27
|
+
- [Terminal Shell](guides/terminal-shell.md) - Interactive terminal sessions
|
28
|
+
- [Single-Shot Commands](guides/single-shot-terminal.md) - One-off command execution
|
29
|
+
- [Profiles](guides/profiles.md) - Custom configurations for different workflows
|
30
|
+
|
31
|
+
### Development & Extension
|
32
|
+
For developers looking to extend Janito:
|
33
|
+
- [Developer Guide](guides/developing.md) - Core development concepts
|
34
|
+
- [Tools Developer Guide](guides/tools-developer-guide.md) - Creating custom tools
|
35
|
+
- [Developer Toolchain](meta/developer-toolchain.md) - Development setup and workflows
|
36
|
+
|
37
|
+
### Supported Providers
|
38
|
+
Janito supports multiple AI providers:
|
39
|
+
- [OpenAI](openai-setup.md)
|
40
|
+
- [DeepSeek](deepseek-setup.md)
|
41
|
+
- [MoonshotAI](moonshotai-setup.md)
|
42
|
+
- [Mistral](mistral-setup.md)
|
43
|
+
- [Z.ai](z-ai-setup.md)
|
44
|
+
- [Cerebras](cerebras-setup.md)
|
45
|
+
|
46
|
+
## Getting Help
|
47
|
+
|
48
|
+
- Check our [troubleshooting guides](guides/configuration.md)
|
49
|
+
- Review [common issues](guides/using.md)
|
50
|
+
- Explore [alternative solutions](alternatives.md)
|
51
|
+
|
52
|
+
---
|
53
|
+
|
54
|
+
*This documentation is automatically deployed from the latest commit and will always reflect the most current version of Janito.*
|
@@ -0,0 +1,180 @@
|
|
1
|
+
# Mistral Setup Guide
|
2
|
+
|
3
|
+
This guide walks you through setting up Mistral AI models with Janito.
|
4
|
+
|
5
|
+
## Overview
|
6
|
+
|
7
|
+
Mistral AI provides a comprehensive suite of models including:
|
8
|
+
- **General-purpose models**: Mistral Small, Medium, and Large
|
9
|
+
- **Code-focused models**: Codestral for code generation and completion
|
10
|
+
- **Development-focused models**: Devstral for agentic software development
|
11
|
+
|
12
|
+
## Prerequisites
|
13
|
+
|
14
|
+
1. **Python 3.8+** installed
|
15
|
+
2. **Janito** installed (`pip install janito`)
|
16
|
+
3. **Mistral API Key** from [La Plateforme](https://console.mistral.ai/)
|
17
|
+
|
18
|
+
## Quick Setup
|
19
|
+
|
20
|
+
### 1. Get Your API Key
|
21
|
+
|
22
|
+
1. Visit [Mistral AI La Plateforme](https://console.mistral.ai/)
|
23
|
+
2. Sign up or log in to your account
|
24
|
+
3. Navigate to **API Keys** section
|
25
|
+
4. Create a new API key
|
26
|
+
5. Copy the key for use in Janito
|
27
|
+
|
28
|
+
### 2. Configure Janito
|
29
|
+
|
30
|
+
Set your Mistral API key using one of these methods:
|
31
|
+
|
32
|
+
#### Method 1: Environment Variable (Recommended)
|
33
|
+
|
34
|
+
```bash
|
35
|
+
# Linux/macOS
|
36
|
+
export MISTRAL_API_KEY="your-api-key-here"
|
37
|
+
|
38
|
+
# Windows (PowerShell)
|
39
|
+
$env:MISTRAL_API_KEY="your-api-key-here"
|
40
|
+
|
41
|
+
# Windows (Command Prompt)
|
42
|
+
set MISTRAL_API_KEY=your-api-key-here
|
43
|
+
```
|
44
|
+
|
45
|
+
#### Method 2: Janito CLI
|
46
|
+
|
47
|
+
```bash
|
48
|
+
janito set-api-key mistral your-api-key-here
|
49
|
+
```
|
50
|
+
|
51
|
+
#### Method 3: Interactive Setup
|
52
|
+
|
53
|
+
```bash
|
54
|
+
janito chat
|
55
|
+
# Then use the !model command to select mistral and follow prompts
|
56
|
+
```
|
57
|
+
|
58
|
+
## Available Models
|
59
|
+
|
60
|
+
### General Purpose Models
|
61
|
+
- **mistral-large-latest** (default) - Most capable with 128k context
|
62
|
+
- **mistral-medium-latest** - Balanced performance with 32k context
|
63
|
+
- **mistral-small-latest** - Compact and efficient with 32k context
|
64
|
+
|
65
|
+
### Code-Focused Models
|
66
|
+
- **codestral-latest** - Specialized for code generation with 256k context
|
67
|
+
- **codestral-2405** - Previous version of code-focused model
|
68
|
+
|
69
|
+
### Development-Focused Models
|
70
|
+
- **devstral-small-latest** - Optimized for agentic tool use
|
71
|
+
- **devstral-medium-latest** - Enhanced agentic capabilities
|
72
|
+
|
73
|
+
## Usage Examples
|
74
|
+
|
75
|
+
### Basic Chat
|
76
|
+
|
77
|
+
```bash
|
78
|
+
# Start chat with default model (mistral-large-latest)
|
79
|
+
janito chat --provider mistral
|
80
|
+
|
81
|
+
# Use specific model
|
82
|
+
janito chat --provider mistral --model codestral-latest
|
83
|
+
```
|
84
|
+
|
85
|
+
### Single-Shot Mode
|
86
|
+
|
87
|
+
```bash
|
88
|
+
# Quick question
|
89
|
+
janito "Explain quantum computing" --provider mistral
|
90
|
+
|
91
|
+
# Code generation
|
92
|
+
janito "Write a Python function for fibonacci" --provider mistral --model codestral-latest
|
93
|
+
```
|
94
|
+
|
95
|
+
### Configuration File
|
96
|
+
|
97
|
+
You can also configure Mistral in your Janito configuration:
|
98
|
+
|
99
|
+
```yaml
|
100
|
+
# ~/.janito/config.yaml
|
101
|
+
providers:
|
102
|
+
mistral:
|
103
|
+
api_key: "your-api-key-here"
|
104
|
+
model: "mistral-large-latest"
|
105
|
+
```
|
106
|
+
|
107
|
+
## Model Selection Tips
|
108
|
+
|
109
|
+
- **General conversations**: Use `mistral-large-latest` for best results
|
110
|
+
- **Code generation**: Use `codestral-latest` for programming tasks
|
111
|
+
- **Development workflows**: Use `devstral-*` models for agentic development
|
112
|
+
- **Cost optimization**: Use `mistral-small-latest` for simpler tasks
|
113
|
+
|
114
|
+
## Troubleshooting
|
115
|
+
|
116
|
+
### Common Issues
|
117
|
+
|
118
|
+
1. **"Invalid API key" error**
|
119
|
+
- Verify your API key is correct
|
120
|
+
- Check if the key has proper permissions
|
121
|
+
- Ensure no extra spaces in the key
|
122
|
+
|
123
|
+
2. **"Model not found" error**
|
124
|
+
- Check available models with: `janito list-models --provider mistral`
|
125
|
+
- Ensure you're using the exact model name
|
126
|
+
|
127
|
+
3. **Rate limiting**
|
128
|
+
- Mistral has rate limits based on your plan
|
129
|
+
- Consider upgrading your plan or implementing retry logic
|
130
|
+
|
131
|
+
### Debug Mode
|
132
|
+
|
133
|
+
Enable debug logging to see API requests:
|
134
|
+
|
135
|
+
```bash
|
136
|
+
# Enable HTTP debug for Mistral
|
137
|
+
export MISTRAL_DEBUG_HTTP=1
|
138
|
+
janito chat --provider mistral --verbose-api
|
139
|
+
```
|
140
|
+
|
141
|
+
### Testing Connection
|
142
|
+
|
143
|
+
Test your setup:
|
144
|
+
|
145
|
+
```bash
|
146
|
+
# Ping the provider
|
147
|
+
janito ping-providers
|
148
|
+
|
149
|
+
# List available models
|
150
|
+
janito list-models --provider mistral
|
151
|
+
|
152
|
+
# Test with a simple query
|
153
|
+
janito "Hello, Mistral!" --provider mistral
|
154
|
+
```
|
155
|
+
|
156
|
+
## Advanced Configuration
|
157
|
+
|
158
|
+
### Custom Base URL
|
159
|
+
|
160
|
+
If you need to use a different endpoint (e.g., for enterprise deployments):
|
161
|
+
|
162
|
+
```bash
|
163
|
+
janito set-config mistral.base_url "https://your-custom-endpoint.com/v1"
|
164
|
+
```
|
165
|
+
|
166
|
+
### Model Parameters
|
167
|
+
|
168
|
+
You can set default parameters for Mistral models:
|
169
|
+
|
170
|
+
```bash
|
171
|
+
janito set-config mistral.temperature 0.5
|
172
|
+
janito set-config mistral.max_tokens 2000
|
173
|
+
```
|
174
|
+
|
175
|
+
## Support
|
176
|
+
|
177
|
+
For additional help:
|
178
|
+
- Check the [Mistral AI documentation](https://docs.mistral.ai/)
|
179
|
+
- Review [Janito troubleshooting guides](guides/configuration.md)
|
180
|
+
- Join our [Discord community](https://discord.gg/janito)
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<div class="md-copyright" style="text-align: center; width: 100%;">
|
2
|
+
<div class="md-copyright__highlight" style="display: inline-block;">
|
3
|
+
Generated by Janito •
|
4
|
+
<span style="color: var(--md-accent-fg-color);">{{ config.extra.commit_hash or 'unknown' }}</span>
|
5
|
+
</div>
|
6
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Provider Platform and Documentation Access
|
2
|
+
|
3
|
+
This table shows the accessibility status of each provider's platform/dashboard and API documentation.
|
4
|
+
|
5
|
+
| Provider | Platform Access | Documentation | API Docs | Status |
|
6
|
+
|----------|-----------------|---------------|----------|--------|
|
7
|
+
| **Alibaba** | [Alibaba Cloud Console](https://account.alibabacloud.com) | [Model Studio Help](https://www.alibabacloud.com/help/en/model-studio) | [API Reference](https://www.alibabacloud.com/help/en/model-studio/api-reference) | ✅ Full Access |
|
8
|
+
| **Anthropic** | [Console](https://console.anthropic.com) | [API Docs](https://docs.anthropic.com/en/api/getting-started) | [API Reference](https://docs.anthropic.com/en/api/messages) | ⚠️ Console Blocked |
|
9
|
+
| **Cerebras** | [API Dashboard](https://api.cerebras.ai) | [Inference Docs](https://cerebras.ai/inference) | [API Docs](https://cerebras.ai/inference) | ✅ Full Access |
|
10
|
+
| **DeepSeek** | [Platform](https://platform.deepseek.com) | [API Docs](https://platform.deepseek.com/api-docs) | [API Reference](https://platform.deepseek.com/api-docs) | ❌ All Blocked |
|
11
|
+
| **Google** | [AI Studio](https://aistudio.google.com) | [Gemini API Docs](https://ai.google.dev/gemini-api/docs) | [API Reference](https://ai.google.dev/gemini-api/docs) | ✅ Full Access |
|
12
|
+
| **MoonshotAI** | [Platform](https://platform.moonshot.ai) | [API Docs](https://platform.moonshot.ai/docs) | [API Reference](https://platform.moonshot.ai/docs) | ✅ Full Access |
|
13
|
+
| **OpenAI** | [Platform](https://platform.openai.com) | [API Docs](https://platform.openai.com/docs) | [API Reference](https://platform.openai.com/docs/api-reference) | ❌ All Blocked |
|
14
|
+
| **Z.ai** | [API Management](https://z.ai/manage-apikey/apikey-list) | [Model API Docs](https://z.ai/model-api) | [API Reference](https://z.ai/model-api) | ✅ Full Access |
|
15
|
+
|
16
|
+
## Status Legend
|
17
|
+
|
18
|
+
- ✅ **Full Access**: Both platform and documentation are publicly accessible
|
19
|
+
- ⚠️ **Partial Access**: Documentation available but platform/dashboard blocked
|
20
|
+
- ❌ **Blocked**: Both platform and documentation are inaccessible (403 errors)
|
21
|
+
|
22
|
+
## Notes
|
23
|
+
|
24
|
+
- **API Endpoints**: All API base URLs return 404 when accessed directly without authentication (expected behavior)
|
25
|
+
- **Authentication**: All providers require valid API keys for actual API usage
|
26
|
+
- **Regional Restrictions**: Some providers may have additional access restrictions based on geographic location
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# Supported Providers and Models
|
2
|
+
|
3
|
+
This page lists the supported providers and their available models, organized by openness and sorted alphabetically within each category.
|
4
|
+
|
5
|
+
> 📋 **Platform & Documentation Access**: For information about which providers have publicly accessible platforms and documentation vs. blocked access, see [Platform & Documentation Access](provider-platform-access.md).
|
6
|
+
|
7
|
+
## Open-Source / Open-Weight Models
|
8
|
+
|
9
|
+
### Alibaba
|
10
|
+
|
11
|
+
- **Qwen3 235B A22B Instruct** (default) - Latest 1M context model
|
12
|
+
- **Qwen3 235B A22B Thinking** - Reasoning-focused version
|
13
|
+
- **Qwen3 30B A3B Instruct** - Compact 1M context model
|
14
|
+
- **Qwen3 30B A3B Thinking** - Compact reasoning version
|
15
|
+
- **Qwen3 Coder Plus** - Specialized for programming tasks
|
16
|
+
- **Qwen3 Coder 480B** - Large-scale coding model
|
17
|
+
- **Qwen Turbo** - High-speed general purpose
|
18
|
+
- **Qwen Plus** - Balanced performance
|
19
|
+
- **Qwen Max** - Maximum capability
|
20
|
+
|
21
|
+
### Cerebras
|
22
|
+
|
23
|
+
**Production Models:**
|
24
|
+
|
25
|
+
- **Qwen-3 32B** - General instruction following
|
26
|
+
|
27
|
+
**Preview Models:**
|
28
|
+
|
29
|
+
- **Qwen-3 Coder 480B** - Programming-focused with 32k context
|
30
|
+
- **Qwen-3 235B A22B Instruct** - Large-scale instruction model
|
31
|
+
- **Qwen-3 235B A22B Thinking** - Reasoning-focused version
|
32
|
+
- **GPT-OSS 120B** - Open-source model
|
33
|
+
|
34
|
+
**Notes:**
|
35
|
+
|
36
|
+
- All Cerebras models support 128k context window
|
37
|
+
- Models are optimized for low-latency inference
|
38
|
+
- Pricing varies by model size and capability
|
39
|
+
|
40
|
+
### DeepSeek
|
41
|
+
|
42
|
+
- **DeepSeek Chat** (default) - General purpose chat model
|
43
|
+
- **DeepSeek Reasoner** - Specialized for complex reasoning tasks
|
44
|
+
|
45
|
+
### Mistral
|
46
|
+
|
47
|
+
- **Mistral Large Latest** (default) - Most capable Mistral model with 128k context
|
48
|
+
- **Mistral Medium Latest** - Balanced performance with 32k context
|
49
|
+
- **Mistral Small Latest** - Compact and efficient with 32k context
|
50
|
+
- **Codestral Latest** - Specialized for code generation with 256k context
|
51
|
+
- **Codestral 2405** - Previous version of code-focused model
|
52
|
+
- **Devstral Small Latest** - Optimized for agentic tool use in software development
|
53
|
+
- **Devstral Medium Latest** - Enhanced agentic capabilities for development tasks
|
54
|
+
|
55
|
+
Mistral provides both general-purpose and specialized models, with Codestral specifically designed for code generation and Devstral for agentic software development.
|
56
|
+
|
57
|
+
For setup instructions, see the [Mistral Setup Guide](mistral-setup.md).
|
58
|
+
|
59
|
+
### MoonshotAI
|
60
|
+
|
61
|
+
- **Kimi K2 Turbo Preview** (default) - Latest generation with enhanced performance
|
62
|
+
- **Kimi K2 0711 Preview** - Previous preview version
|
63
|
+
|
64
|
+
MoonshotAI provides open-source Kimi models with competitive performance.
|
65
|
+
|
66
|
+
### Z.AI
|
67
|
+
|
68
|
+
- **GLM-4.5** (default) - Advanced reasoning and conversation
|
69
|
+
- **GLM-4.5 Air** - Compact and efficient version
|
70
|
+
|
71
|
+
## Proprietary Models
|
72
|
+
|
73
|
+
### Anthropic
|
74
|
+
|
75
|
+
- **Claude 3.7 Sonnet** (default) - Latest Claude model with enhanced reasoning
|
76
|
+
- **Claude 4 Opus** - Most capable Claude model (preview)
|
77
|
+
- **Claude 4 Sonnet** - Balanced performance and capability (preview)
|
78
|
+
- **Claude 3.5 Sonnet** - Previous generation, still highly capable
|
79
|
+
- **Claude 3.5 Haiku** - Fast and efficient
|
80
|
+
- **Claude 3 Haiku** - Compact and cost-effective
|
81
|
+
|
82
|
+
### Google
|
83
|
+
|
84
|
+
- **Gemini 2.5 Flash** (default) - Fast and efficient
|
85
|
+
- **Gemini 2.5 Pro** - Advanced capabilities with extended context
|
86
|
+
- **Gemini 2.5 Flash-Lite Preview** - Lightweight preview version
|
87
|
+
|
88
|
+
### OpenAI
|
89
|
+
|
90
|
+
- **GPT-5** (default) - Latest generation with advanced reasoning
|
91
|
+
- **GPT-5 Mini** - Compact version of GPT-5
|
92
|
+
- **GPT-5 Nano** - Ultra-compact version
|
93
|
+
- **GPT-4.1** - Enhanced GPT-4 with improved capabilities
|
94
|
+
- **GPT-4.1-mini** - Balanced performance and efficiency
|
95
|
+
- **GPT-4.1-nano** - Lightweight version
|
96
|
+
- **GPT-4 Turbo** - High-performance GPT-4 variant
|
97
|
+
- **GPT-4o** - Multimodal GPT-4 optimized for chat
|
98
|
+
- **GPT-4o-mini** - Compact multimodal version
|
99
|
+
- **o3** - Advanced reasoning model
|
100
|
+
- **o3-mini** - Compact reasoning model
|
101
|
+
- **o4-mini** - Latest mini reasoning model
|
102
|
+
- **GPT-3.5 Turbo** - Cost-effective general purpose
|
103
|
+
|
104
|
+
For setup instructions, see the [OpenAI Setup Guide](openai-setup.md).
|
105
|
+
|
106
|
+
### Azure OpenAI
|
107
|
+
|
108
|
+
- **Azure OpenAI Deployment** - Custom Azure OpenAI deployments
|
109
|
+
|
110
|
+
For setup instructions, see [Using Azure OpenAI with Janito](reference/azure-openai.md).
|
@@ -2,8 +2,8 @@
|
|
2
2
|
CLI Command: List models for the specified/current provider
|
3
3
|
"""
|
4
4
|
|
5
|
-
from janito.cli.cli_commands.model_utils import _print_models_table
|
6
5
|
import sys
|
6
|
+
from janito.cli.cli_commands.model_utils import _print_models_table
|
7
7
|
|
8
8
|
_provider_instance = None
|
9
9
|
|
@@ -36,8 +36,6 @@ def handle_list_models(args, provider_instance):
|
|
36
36
|
|
37
37
|
for m in models:
|
38
38
|
table.add_row(str(m))
|
39
|
-
|
40
|
-
import sys
|
41
39
|
if sys.stdout.isatty():
|
42
40
|
shared_console.print(table)
|
43
41
|
else:
|
@@ -64,14 +64,20 @@ class OpenAIModelDriver(LLMDriver):
|
|
64
64
|
if config.model:
|
65
65
|
api_kwargs["model"] = config.model
|
66
66
|
# Prefer max_completion_tokens if present, else fallback to max_tokens (for backward compatibility)
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
67
|
+
# Skip max_completion_tokens for Mistral as their API doesn't support it
|
68
|
+
is_mistral = config.base_url and "mistral.ai" in str(config.base_url)
|
69
|
+
if not is_mistral:
|
70
|
+
if (
|
71
|
+
hasattr(config, "max_completion_tokens")
|
72
|
+
and config.max_completion_tokens is not None
|
73
|
+
):
|
74
|
+
api_kwargs["max_completion_tokens"] = int(config.max_completion_tokens)
|
75
|
+
elif hasattr(config, "max_tokens") and config.max_tokens is not None:
|
76
|
+
# For models that do not support 'max_tokens', map to 'max_completion_tokens'
|
77
|
+
api_kwargs["max_completion_tokens"] = int(config.max_tokens)
|
72
78
|
elif hasattr(config, "max_tokens") and config.max_tokens is not None:
|
73
|
-
# For
|
74
|
-
api_kwargs["
|
79
|
+
# For Mistral, use max_tokens directly
|
80
|
+
api_kwargs["max_tokens"] = int(config.max_tokens)
|
75
81
|
for p in (
|
76
82
|
"temperature",
|
77
83
|
"top_p",
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# pragma: allowlist secret
|
2
|
+
translations = {
|
3
|
+
"36107ed78ab25f6fb12ad8ce13018cd1ce6735d1": "Avvio del server web...",
|
4
|
+
"70a0d194687568a47aa617fd85036ace1e69a982": "Vuoi davvero uscire? (s/n): ",
|
5
|
+
"5c9ebcbbd7632ecb328bd52958b17158afaa32c6": "F12 = Azione Rapida (segue l'azione raccomandata)",
|
6
|
+
"fe21121e2934234b68d19b2757532117d440c1e3": "Chiave API non trovata. Si prega di configurare 'api_key' nel file di configurazione.",
|
7
|
+
"c9e3759b1756eba35b381ce2b72cd659e132b01f": "Ciao, {name}!",
|
8
|
+
"ca1fee2f55baabdc2e4b0e9529c89ee024e62079": "Nessun prompt fornito nei messaggi",
|
9
|
+
"f7449d23d0c500ae2a0b31e04f92b47a4d8ae845": "max_tokens deve essere un intero, ricevuto: {resolved_max_tokens!r}",
|
10
|
+
"70a9ed8edb6da12e208431a31aa16ba54419b26f": "Risposta non valida/malformed da OpenAI (tentativo {attempt}/{max_retries}). Riprovo tra {wait_time} secondi...",
|
11
|
+
"a873085e3b06184fb5d27e842f97b06b6190976d": "Numero massimo di tentativi per risposta non valida raggiunto. Generazione errore.",
|
12
|
+
"66a34568bbe846bb1bde3619eb4d6dfa10211104": "L'API non supporta l'uso degli strumenti.",
|
13
|
+
"09b81476b75586da4116b83f8be70d77b174cec3": "Limite di richieste API OpenAI (429) (tentativo {attempt}/{max_retries}): {e}. Riprovo tra {wait_time} secondi...",
|
14
|
+
"5717a35dd2a1533fb7e15edc8c9329cb69f3410b": "Errore server API OpenAI (tentativo {attempt}/{max_retries}): {e}. Riprovo tra {wait_time} secondi...",
|
15
|
+
"02e760ba15ed863176c1290ac8a9b923963103cd": "Errore client API OpenAI {status_code}: {e}. Nessun nuovo tentativo.",
|
16
|
+
"2e52b0bbc8f16226b70e3e20f95c9245d2bcdb47": "Errore API OpenAI (tentativo {attempt}/{max_retries}): {e}. Riprovo tra {wait_time} secondi...",
|
17
|
+
"012cc970e039fdd79c452fc676202c814ffc76ae": "Numero massimo di tentativi per errore API OpenAI raggiunto. Generazione errore.",
|
18
|
+
"d0438e45667d31e0022b2497b5901cd4300f084b": "QueuedMessageHandler.handle_message si aspetta un dizionario con 'type' e 'message', ricevuto {msg_type}: {msg!r}",
|
19
|
+
"9d3460187ffa19c7c8a4020157072b1087e1bd2f": "[QueuedMessageHandler] {msg_type}: {msg}",
|
20
|
+
"3813833343430e8afa8fce33385c5e39fb24dd60": "[QueuedMessageHandler] {msg_type}: {message}",
|
21
|
+
"0be9a22226e16a40797010d23a0f581542dca40e": "[ToolExecutor] {tool_name} chiamato con argomenti: {args}",
|
22
|
+
"42c68edcb25442f518b1af77c6a2ddc07461aae0": "[ToolExecutor] Motivo chiamata: {tool_call_reason}",
|
23
|
+
"002ff598115d84595ffeee6219cb5c03d3a1d4a6": "Domanda",
|
24
|
+
"35747d13dcd91e8e8790c7f767d5ed764f541b9e": "procedi",
|
25
|
+
"33dde3a1afbc418768a69fa53168d9b0638fe1aa": "avanti",
|
26
|
+
"eee0bbba4ff92adbeb038a77df0466d660f15716": "continua",
|
27
|
+
"edee9402d198b04ac77dcf5dc9cc3dac44573782": "prossimo",
|
28
|
+
"8fdb7e2fa84f4faf0d9b92f466df424ec47a165b": "ok",
|
29
|
+
"5f8f924671cda79b5205a6bf1b776f347c4a7a07": "Opzioni di configurazione disponibili:\n",
|
30
|
+
"cef780a309cd234750764d42697882c24168ddab": "{key:15} {desc} (predefinito: {default})",
|
31
|
+
"68c2cc7f0ceaa3e499ecb4db331feb4debbbcc23": "Modello",
|
32
|
+
"c3f104d1365744b538bfde9f4adb6a6df4b80355": "Funzione",
|
33
|
+
"99a0efc6cfd85d8ff2732a6718140f822cb90472": "Stile",
|
34
|
+
"f1702b4686278becffc88baabe6f4b7a8355532c": "Messaggi",
|
35
|
+
"c38c6c1f3a2743f8626703abb302e403d20ff81c": "Token",
|
36
|
+
"a817d7eb8e0f1dab755ab5203a082e5c3c094fce": "Prompt",
|
37
|
+
"2ff255684a2277f806fcebf3fe338ed27857f350": "Completamento",
|
38
|
+
"b25928c69902557b0ef0a628490a3a1768d7b82f": "Totale",
|
39
|
+
"76e63d65c883ed50df40ac3aeef0c2d6a1c4ad60": "Azione Rapida",
|
40
|
+
"5397e0583f14f6c88de06b1ef28f460a1fb5b0ae": "Sì",
|
41
|
+
"816c52fd2bdd94a63cd0944823a6c0aa9384c103": "No",
|
42
|
+
"c47ae15370cfe1ed2781eedc1dc2547d12d9e972": "Aiuto",
|
43
|
+
"cc3dbd47e1cf9003a55d3366b3adbcd72275e525": "Nuovo Task",
|
44
|
+
"efa5a8b84e1afe65c81ecfce28c398c48f19ddc2": "Benvenuto su Janito{version_str}! Modalità chat attiva. Digita /exit per uscire.",
|
45
|
+
"b314d6e1460f86e0f21abc5aceb7935a2a0667e8": "Benvenuto su Janito{version_str} in modalità [white on magenta]VANILLA[/white on magenta]! Strumenti, prompt di sistema e temperatura sono disattivati, a meno che non siano sovrascritti.",
|
46
|
+
}
|
@@ -39,7 +39,17 @@ class ProviderRegistry:
|
|
39
39
|
if len(info) == 4 and info[3]:
|
40
40
|
continue # skip providers flagged as not implemented
|
41
41
|
rows.append(info[:3])
|
42
|
-
|
42
|
+
|
43
|
+
# Group providers by openness (open-source first, then proprietary)
|
44
|
+
open_providers = {'cerebras', 'deepseek', 'alibaba', 'moonshotai', 'zai'}
|
45
|
+
|
46
|
+
def sort_key(row):
|
47
|
+
provider_name = row[0]
|
48
|
+
is_open = provider_name in open_providers
|
49
|
+
# Sort open providers alphabetically first, then proprietary alphabetically
|
50
|
+
return (not is_open, provider_name)
|
51
|
+
|
52
|
+
rows.sort(key=sort_key)
|
43
53
|
return rows
|
44
54
|
|
45
55
|
def _add_rows_to_table(self, table, rows):
|
@@ -0,0 +1 @@
|
|
1
|
+
# Codestral provider module
|
@@ -0,0 +1,81 @@
|
|
1
|
+
from janito.llm.model import LLMModelInfo
|
2
|
+
|
3
|
+
MODEL_SPECS = {
|
4
|
+
"codestral-latest": LLMModelInfo(
|
5
|
+
name="codestral-latest",
|
6
|
+
context=256000,
|
7
|
+
max_input=250000,
|
8
|
+
max_cot="N/A",
|
9
|
+
max_response=4096,
|
10
|
+
thinking_supported=False,
|
11
|
+
default_temp=0.2,
|
12
|
+
open="mistral",
|
13
|
+
driver="OpenAIModelDriver",
|
14
|
+
),
|
15
|
+
"codestral-2405": LLMModelInfo(
|
16
|
+
name="codestral-2405",
|
17
|
+
context=256000,
|
18
|
+
max_input=250000,
|
19
|
+
max_cot="N/A",
|
20
|
+
max_response=4096,
|
21
|
+
thinking_supported=False,
|
22
|
+
default_temp=0.2,
|
23
|
+
open="mistral",
|
24
|
+
driver="OpenAIModelDriver",
|
25
|
+
),
|
26
|
+
"mistral-small-latest": LLMModelInfo(
|
27
|
+
name="mistral-small-latest",
|
28
|
+
context=32000,
|
29
|
+
max_input=28000,
|
30
|
+
max_cot="N/A",
|
31
|
+
max_response=4096,
|
32
|
+
thinking_supported=False,
|
33
|
+
default_temp=0.7,
|
34
|
+
open="mistral",
|
35
|
+
driver="OpenAIModelDriver",
|
36
|
+
),
|
37
|
+
"mistral-medium-latest": LLMModelInfo(
|
38
|
+
name="mistral-medium-latest",
|
39
|
+
context=32000,
|
40
|
+
max_input=28000,
|
41
|
+
max_cot="N/A",
|
42
|
+
max_response=4096,
|
43
|
+
thinking_supported=False,
|
44
|
+
default_temp=0.7,
|
45
|
+
open="mistral",
|
46
|
+
driver="OpenAIModelDriver",
|
47
|
+
),
|
48
|
+
"mistral-large-latest": LLMModelInfo(
|
49
|
+
name="mistral-large-latest",
|
50
|
+
context=128000,
|
51
|
+
max_input=120000,
|
52
|
+
max_cot="N/A",
|
53
|
+
max_response=4096,
|
54
|
+
thinking_supported=False,
|
55
|
+
default_temp=0.7,
|
56
|
+
open="mistral",
|
57
|
+
driver="OpenAIModelDriver",
|
58
|
+
),
|
59
|
+
"devstral-small-latest": LLMModelInfo(
|
60
|
+
name="devstral-small-latest",
|
61
|
+
context=128000,
|
62
|
+
max_input=120000,
|
63
|
+
max_cot="N/A",
|
64
|
+
max_response=4096,
|
65
|
+
thinking_supported=False,
|
66
|
+
default_temp=0.7,
|
67
|
+
open="mistral",
|
68
|
+
driver="OpenAIModelDriver",
|
69
|
+
),
|
70
|
+
"devstral-medium-latest": LLMModelInfo(
|
71
|
+
name="devstral-medium-latest",
|
72
|
+
context=128000,
|
73
|
+
max_input=120000,
|
74
|
+
max_cot="N/A",
|
75
|
+
max_response=4096,
|
76
|
+
thinking_supported=False,
|
77
|
+
default_temp=0.7,
|
78
|
+
open="mistral",
|
79
|
+
driver="OpenAIModelDriver",
|
80
|
+
),
|
81
|
+
}
|