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.
Files changed (334) hide show
  1. {janito-2.19.0 → janito-2.20.0}/CHANGELOG.md +19 -0
  2. {janito-2.19.0 → janito-2.20.0}/PKG-INFO +1 -1
  3. janito-2.20.0/docs/index.md +54 -0
  4. janito-2.20.0/docs/mistral-setup.md +180 -0
  5. janito-2.20.0/docs/overrides/partials/copyright.html +6 -0
  6. janito-2.20.0/docs/provider-platform-access.md +26 -0
  7. janito-2.20.0/docs/supported-providers-models.md +110 -0
  8. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_models.py +1 -3
  9. {janito-2.19.0 → janito-2.20.0}/janito/drivers/openai/driver.py +13 -7
  10. janito-2.20.0/janito/i18n/it.py +46 -0
  11. {janito-2.19.0 → janito-2.20.0}/janito/provider_registry.py +11 -1
  12. {janito-2.19.0 → janito-2.20.0}/janito/providers/__init__.py +1 -0
  13. janito-2.20.0/janito/providers/mistral/__init__.py +1 -0
  14. janito-2.20.0/janito/providers/mistral/model_info.py +81 -0
  15. janito-2.20.0/janito/providers/mistral/provider.py +124 -0
  16. {janito-2.19.0 → janito-2.20.0}/janito/report_events.py +1 -0
  17. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/run_powershell_command.py +5 -14
  18. {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_base.py +2 -0
  19. {janito-2.19.0 → janito-2.20.0}/janito.egg-info/PKG-INFO +1 -1
  20. {janito-2.19.0 → janito-2.20.0}/janito.egg-info/SOURCES.txt +9 -0
  21. {janito-2.19.0 → janito-2.20.0}/mkdocs.yml +7 -1
  22. janito-2.20.0/mkdocs_hooks.py +51 -0
  23. janito-2.19.0/docs/supported-providers-models.md +0 -77
  24. {janito-2.19.0 → janito-2.20.0}/.codespellrc +0 -0
  25. {janito-2.19.0 → janito-2.20.0}/.gitattributes +0 -0
  26. {janito-2.19.0 → janito-2.20.0}/.github/workflows/python-app.yml.disabled +0 -0
  27. {janito-2.19.0 → janito-2.20.0}/.gitignore +0 -0
  28. {janito-2.19.0 → janito-2.20.0}/.pre-commit-config.yaml +0 -0
  29. {janito-2.19.0 → janito-2.20.0}/.secrets.baseline +0 -0
  30. {janito-2.19.0 → janito-2.20.0}/.vscode/settings.json +0 -0
  31. {janito-2.19.0 → janito-2.20.0}/CHANGELOG_2.16.0.md +0 -0
  32. {janito-2.19.0 → janito-2.20.0}/LICENSE +0 -0
  33. {janito-2.19.0 → janito-2.20.0}/README-dev.md +0 -0
  34. {janito-2.19.0 → janito-2.20.0}/README.md +0 -0
  35. {janito-2.19.0 → janito-2.20.0}/UPDATING_DOCS.md +0 -0
  36. {janito-2.19.0 → janito-2.20.0}/adding_mcp.txt +0 -0
  37. {janito-2.19.0 → janito-2.20.0}/docs/DIV.md +0 -0
  38. {janito-2.19.0 → janito-2.20.0}/docs/Interfaces.txt +0 -0
  39. {janito-2.19.0 → janito-2.20.0}/docs/TOOLBAR-STYLING.md +0 -0
  40. {janito-2.19.0 → janito-2.20.0}/docs/about/costs.md +0 -0
  41. {janito-2.19.0 → janito-2.20.0}/docs/about/vs-webchats.md +0 -0
  42. {janito-2.19.0 → janito-2.20.0}/docs/about/why.md +0 -0
  43. {janito-2.19.0 → janito-2.20.0}/docs/alibaba-setup.md +0 -0
  44. {janito-2.19.0 → janito-2.20.0}/docs/alternatives.md +0 -0
  45. {janito-2.19.0 → janito-2.20.0}/docs/cerebras-setup.md +0 -0
  46. {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  47. {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
  48. {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/code-generation-observability.md +0 -0
  49. {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/our-approach.md +0 -0
  50. {janito-2.19.0 → janito-2.20.0}/docs/code_intelligence/why-string-replacement.md +0 -0
  51. {janito-2.19.0 → janito-2.20.0}/docs/concepts/analysis-style.md +0 -0
  52. {janito-2.19.0 → janito-2.20.0}/docs/concepts/human-guided-ai.md +0 -0
  53. {janito-2.19.0 → janito-2.20.0}/docs/concepts/index.md +0 -0
  54. {janito-2.19.0 → janito-2.20.0}/docs/concepts/language-model-clients.md +0 -0
  55. {janito-2.19.0 → janito-2.20.0}/docs/concepts/prompt-design-style.md +0 -0
  56. {janito-2.19.0 → janito-2.20.0}/docs/deepseek-setup.md +0 -0
  57. {janito-2.19.0 → janito-2.20.0}/docs/driver-flow.md +0 -0
  58. {janito-2.19.0 → janito-2.20.0}/docs/driver-request-cancellation.md +0 -0
  59. {janito-2.19.0 → janito-2.20.0}/docs/drivers/events.md +0 -0
  60. {janito-2.19.0 → janito-2.20.0}/docs/drivers.md +0 -0
  61. {janito-2.19.0 → janito-2.20.0}/docs/event-bus.md +0 -0
  62. {janito-2.19.0 → janito-2.20.0}/docs/guides/configuration.md +0 -0
  63. {janito-2.19.0 → janito-2.20.0}/docs/guides/developing.md +0 -0
  64. {janito-2.19.0 → janito-2.20.0}/docs/guides/disabled-tools.md +0 -0
  65. {janito-2.19.0 → janito-2.20.0}/docs/guides/installation.md +0 -0
  66. {janito-2.19.0 → janito-2.20.0}/docs/guides/profiles.md +0 -0
  67. {janito-2.19.0 → janito-2.20.0}/docs/guides/prompting/README.md +0 -0
  68. {janito-2.19.0 → janito-2.20.0}/docs/guides/single-shot-terminal.md +0 -0
  69. {janito-2.19.0 → janito-2.20.0}/docs/guides/terminal-shell.md +0 -0
  70. {janito-2.19.0 → janito-2.20.0}/docs/guides/tools-developer-guide.md +0 -0
  71. {janito-2.19.0 → janito-2.20.0}/docs/guides/using.md +0 -0
  72. {janito-2.19.0 → janito-2.20.0}/docs/guides/using_tools.md +0 -0
  73. {janito-2.19.0 → janito-2.20.0}/docs/imgs/code-generation-observability.png +0 -0
  74. {janito-2.19.0 → janito-2.20.0}/docs/imgs/code_generation_observability.png +0 -0
  75. {janito-2.19.0 → janito-2.20.0}/docs/imgs/happy-programmer.png +0 -0
  76. {janito-2.19.0 → janito-2.20.0}/docs/imgs/happy-programmer.svg +0 -0
  77. {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal-one-shot.png +0 -0
  78. {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal-shell.png +0 -0
  79. {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal_one_shot.png +0 -0
  80. {janito-2.19.0 → janito-2.20.0}/docs/imgs/terminal_shell.png +0 -0
  81. {janito-2.19.0 → janito-2.20.0}/docs/llm-drivers-required-config.md +0 -0
  82. {janito-2.19.0 → janito-2.20.0}/docs/llm-drivers.md +0 -0
  83. {janito-2.19.0 → janito-2.20.0}/docs/meta/developer-toolchain.md +0 -0
  84. {janito-2.19.0 → janito-2.20.0}/docs/meta/quality-checks.txt +0 -0
  85. {janito-2.19.0 → janito-2.20.0}/docs/moonshotai-setup.md +0 -0
  86. {janito-2.19.0 → janito-2.20.0}/docs/openai-setup.md +0 -0
  87. {janito-2.19.0 → janito-2.20.0}/docs/reference/api.md +0 -0
  88. {janito-2.19.0 → janito-2.20.0}/docs/reference/azure-openai.md +0 -0
  89. {janito-2.19.0 → janito-2.20.0}/docs/reference/cli-options.md +0 -0
  90. {janito-2.19.0 → janito-2.20.0}/docs/reference/message-handler-model.md +0 -0
  91. {janito-2.19.0 → janito-2.20.0}/docs/reference/rich-message-handler.md +0 -0
  92. {janito-2.19.0 → janito-2.20.0}/docs/security.md +0 -0
  93. {janito-2.19.0 → janito-2.20.0}/docs/tools/search-text.md +0 -0
  94. {janito-2.19.0 → janito-2.20.0}/docs/tools-index.md +0 -0
  95. {janito-2.19.0 → janito-2.20.0}/docs/tools-natural-results.md +0 -0
  96. {janito-2.19.0 → janito-2.20.0}/docs/tools-precision.md +0 -0
  97. {janito-2.19.0 → janito-2.20.0}/docs/z-ai-setup.md +0 -0
  98. {janito-2.19.0 → janito-2.20.0}/git_diff.txt +0 -0
  99. {janito-2.19.0 → janito-2.20.0}/github_diff +0 -0
  100. {janito-2.19.0 → janito-2.20.0}/janito/README.md +0 -0
  101. {janito-2.19.0 → janito-2.20.0}/janito/__init__.py +0 -0
  102. {janito-2.19.0 → janito-2.20.0}/janito/__main__.py +0 -0
  103. {janito-2.19.0 → janito-2.20.0}/janito/_version.py +0 -0
  104. {janito-2.19.0 → janito-2.20.0}/janito/agent/setup_agent.py +0 -0
  105. {janito-2.19.0 → janito-2.20.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
  106. {janito-2.19.0 → janito-2.20.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
  107. {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
  108. {janito-2.19.0 → janito-2.20.0}/janito/cli/__init__.py +0 -0
  109. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/bindings.py +0 -0
  110. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/chat_entry.py +0 -0
  111. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/prompt_style.py +0 -0
  112. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/script_runner.py +0 -0
  113. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/session.py +0 -0
  114. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/session_profile_select.py +0 -0
  115. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  116. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  117. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  118. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  119. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  120. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  121. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  122. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  123. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  124. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  125. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  126. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  127. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  128. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  129. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  130. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  131. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  132. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  133. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  134. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  135. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  136. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  137. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  138. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  139. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  140. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
  141. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  142. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
  143. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  144. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  145. {janito-2.19.0 → janito-2.20.0}/janito/cli/chat_mode/toolbar.py +0 -0
  146. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_config.py +0 -0
  147. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_drivers.py +0 -0
  148. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_profiles.py +0 -0
  149. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_providers.py +0 -0
  150. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
  151. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/list_tools.py +0 -0
  152. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/model_selection.py +0 -0
  153. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/model_utils.py +0 -0
  154. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/ping_providers.py +0 -0
  155. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/set_api_key.py +0 -0
  156. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/show_config.py +0 -0
  157. {janito-2.19.0 → janito-2.20.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  158. {janito-2.19.0 → janito-2.20.0}/janito/cli/config.py +0 -0
  159. {janito-2.19.0 → janito-2.20.0}/janito/cli/console.py +0 -0
  160. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/__init__.py +0 -0
  161. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/event_logger.py +0 -0
  162. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/getters.py +0 -0
  163. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/model_guesser.py +0 -0
  164. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/runner.py +0 -0
  165. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/setters.py +0 -0
  166. {janito-2.19.0 → janito-2.20.0}/janito/cli/core/unsetters.py +0 -0
  167. {janito-2.19.0 → janito-2.20.0}/janito/cli/main.py +0 -0
  168. {janito-2.19.0 → janito-2.20.0}/janito/cli/main_cli.py +0 -0
  169. {janito-2.19.0 → janito-2.20.0}/janito/cli/prompt_core.py +0 -0
  170. {janito-2.19.0 → janito-2.20.0}/janito/cli/prompt_handler.py +0 -0
  171. {janito-2.19.0 → janito-2.20.0}/janito/cli/prompt_setup.py +0 -0
  172. {janito-2.19.0 → janito-2.20.0}/janito/cli/rich_terminal_reporter.py +0 -0
  173. {janito-2.19.0 → janito-2.20.0}/janito/cli/single_shot_mode/__init__.py +0 -0
  174. {janito-2.19.0 → janito-2.20.0}/janito/cli/single_shot_mode/handler.py +0 -0
  175. {janito-2.19.0 → janito-2.20.0}/janito/cli/utils.py +0 -0
  176. {janito-2.19.0 → janito-2.20.0}/janito/cli/verbose_output.py +0 -0
  177. {janito-2.19.0 → janito-2.20.0}/janito/config.py +0 -0
  178. {janito-2.19.0 → janito-2.20.0}/janito/config_manager.py +0 -0
  179. {janito-2.19.0 → janito-2.20.0}/janito/conversation_history.py +0 -0
  180. {janito-2.19.0 → janito-2.20.0}/janito/dir_walk_utils.py +0 -0
  181. {janito-2.19.0 → janito-2.20.0}/janito/docs/GETTING_STARTED.md +0 -0
  182. {janito-2.19.0 → janito-2.20.0}/janito/driver_events.py +0 -0
  183. {janito-2.19.0 → janito-2.20.0}/janito/drivers/azure_openai/driver.py +0 -0
  184. {janito-2.19.0 → janito-2.20.0}/janito/drivers/cerebras/__init__.py +0 -0
  185. {janito-2.19.0 → janito-2.20.0}/janito/drivers/dashscope.bak.zip +0 -0
  186. {janito-2.19.0 → janito-2.20.0}/janito/drivers/openai/README.md +0 -0
  187. {janito-2.19.0 → janito-2.20.0}/janito/drivers/openai_responses.bak.zip +0 -0
  188. {janito-2.19.0 → janito-2.20.0}/janito/drivers/zai/__init__.py +0 -0
  189. {janito-2.19.0 → janito-2.20.0}/janito/drivers/zai/driver.py +0 -0
  190. {janito-2.19.0 → janito-2.20.0}/janito/event_bus/__init__.py +0 -0
  191. {janito-2.19.0 → janito-2.20.0}/janito/event_bus/bus.py +0 -0
  192. {janito-2.19.0 → janito-2.20.0}/janito/event_bus/event.py +0 -0
  193. {janito-2.19.0 → janito-2.20.0}/janito/event_bus/handler.py +0 -0
  194. {janito-2.19.0 → janito-2.20.0}/janito/event_bus/queue_bus.py +0 -0
  195. {janito-2.19.0 → janito-2.20.0}/janito/exceptions.py +0 -0
  196. {janito-2.19.0 → janito-2.20.0}/janito/formatting.py +0 -0
  197. {janito-2.19.0 → janito-2.20.0}/janito/formatting_token.py +0 -0
  198. {janito-2.19.0 → janito-2.20.0}/janito/gitignore_utils.py +0 -0
  199. {janito-2.19.0 → janito-2.20.0}/janito/i18n/__init__.py +0 -0
  200. {janito-2.19.0 → janito-2.20.0}/janito/i18n/messages.py +0 -0
  201. {janito-2.19.0 → janito-2.20.0}/janito/i18n/pt.py +0 -0
  202. {janito-2.19.0 → janito-2.20.0}/janito/llm/README.md +0 -0
  203. {janito-2.19.0 → janito-2.20.0}/janito/llm/__init__.py +0 -0
  204. {janito-2.19.0 → janito-2.20.0}/janito/llm/agent.py +0 -0
  205. {janito-2.19.0 → janito-2.20.0}/janito/llm/auth.py +0 -0
  206. {janito-2.19.0 → janito-2.20.0}/janito/llm/auth_utils.py +0 -0
  207. {janito-2.19.0 → janito-2.20.0}/janito/llm/driver.py +0 -0
  208. {janito-2.19.0 → janito-2.20.0}/janito/llm/driver_config.py +0 -0
  209. {janito-2.19.0 → janito-2.20.0}/janito/llm/driver_config_builder.py +0 -0
  210. {janito-2.19.0 → janito-2.20.0}/janito/llm/driver_input.py +0 -0
  211. {janito-2.19.0 → janito-2.20.0}/janito/llm/message_parts.py +0 -0
  212. {janito-2.19.0 → janito-2.20.0}/janito/llm/model.py +0 -0
  213. {janito-2.19.0 → janito-2.20.0}/janito/llm/provider.py +0 -0
  214. {janito-2.19.0 → janito-2.20.0}/janito/mkdocs.yml +0 -0
  215. {janito-2.19.0 → janito-2.20.0}/janito/perf_singleton.py +0 -0
  216. {janito-2.19.0 → janito-2.20.0}/janito/performance_collector.py +0 -0
  217. {janito-2.19.0 → janito-2.20.0}/janito/platform_discovery.py +0 -0
  218. {janito-2.19.0 → janito-2.20.0}/janito/provider_config.py +0 -0
  219. {janito-2.19.0 → janito-2.20.0}/janito/providers/alibaba/__init__.py +0 -0
  220. {janito-2.19.0 → janito-2.20.0}/janito/providers/alibaba/model_info.py +0 -0
  221. {janito-2.19.0 → janito-2.20.0}/janito/providers/alibaba/provider.py +0 -0
  222. {janito-2.19.0 → janito-2.20.0}/janito/providers/anthropic/model_info.py +0 -0
  223. {janito-2.19.0 → janito-2.20.0}/janito/providers/anthropic/provider.py +0 -0
  224. {janito-2.19.0 → janito-2.20.0}/janito/providers/azure_openai/model_info.py +0 -0
  225. {janito-2.19.0 → janito-2.20.0}/janito/providers/azure_openai/provider.py +0 -0
  226. {janito-2.19.0 → janito-2.20.0}/janito/providers/cerebras/__init__.py +0 -0
  227. {janito-2.19.0 → janito-2.20.0}/janito/providers/cerebras/model_info.py +0 -0
  228. {janito-2.19.0 → janito-2.20.0}/janito/providers/cerebras/provider.py +0 -0
  229. {janito-2.19.0 → janito-2.20.0}/janito/providers/dashscope.bak.zip +0 -0
  230. {janito-2.19.0 → janito-2.20.0}/janito/providers/deepseek/__init__.py +0 -0
  231. {janito-2.19.0 → janito-2.20.0}/janito/providers/deepseek/model_info.py +0 -0
  232. {janito-2.19.0 → janito-2.20.0}/janito/providers/deepseek/provider.py +0 -0
  233. {janito-2.19.0 → janito-2.20.0}/janito/providers/google/__init__.py +0 -0
  234. {janito-2.19.0 → janito-2.20.0}/janito/providers/google/model_info.py +0 -0
  235. {janito-2.19.0 → janito-2.20.0}/janito/providers/google/provider.py +0 -0
  236. {janito-2.19.0 → janito-2.20.0}/janito/providers/moonshotai/__init__.py +0 -0
  237. {janito-2.19.0 → janito-2.20.0}/janito/providers/moonshotai/model_info.py +0 -0
  238. {janito-2.19.0 → janito-2.20.0}/janito/providers/moonshotai/provider.py +0 -0
  239. {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/__init__.py +0 -0
  240. {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/model_info.py +0 -0
  241. {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/provider.py +0 -0
  242. {janito-2.19.0 → janito-2.20.0}/janito/providers/openai/schema_generator.py +0 -0
  243. {janito-2.19.0 → janito-2.20.0}/janito/providers/registry.py +0 -0
  244. {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/__init__.py +0 -0
  245. {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/model_info.py +0 -0
  246. {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/provider.py +0 -0
  247. {janito-2.19.0 → janito-2.20.0}/janito/providers/zai/schema_generator.py +0 -0
  248. {janito-2.19.0 → janito-2.20.0}/janito/regions/__init__.py +0 -0
  249. {janito-2.19.0 → janito-2.20.0}/janito/regions/cli.py +0 -0
  250. {janito-2.19.0 → janito-2.20.0}/janito/regions/geo_utils.py +0 -0
  251. {janito-2.19.0 → janito-2.20.0}/janito/regions/provider_regions.py +0 -0
  252. {janito-2.19.0 → janito-2.20.0}/janito/shell.bak.zip +0 -0
  253. {janito-2.19.0 → janito-2.20.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  254. {janito-2.19.0 → janito-2.20.0}/janito/tools/README.md +0 -0
  255. {janito-2.19.0 → janito-2.20.0}/janito/tools/__init__.py +0 -0
  256. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/__init__.py +0 -0
  257. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/__init__.py +0 -0
  258. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/adapter.py +0 -0
  259. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/ask_user.py +0 -0
  260. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/copy_file.py +0 -0
  261. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/create_directory.py +0 -0
  262. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/create_file.py +0 -0
  263. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
  264. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/fetch_url.py +0 -0
  265. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/find_files.py +0 -0
  266. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
  267. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
  268. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
  269. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
  270. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
  271. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
  272. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/move_file.py +0 -0
  273. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
  274. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/open_url.py +0 -0
  275. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/python_code_run.py +0 -0
  276. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/python_command_run.py +0 -0
  277. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/python_file_run.py +0 -0
  278. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/read_files.py +0 -0
  279. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/remove_directory.py +0 -0
  280. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/remove_file.py +0 -0
  281. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
  282. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/run_bash_command.py +0 -0
  283. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
  284. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/core.py +0 -0
  285. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
  286. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
  287. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
  288. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
  289. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
  290. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
  291. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
  292. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
  293. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
  294. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
  295. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
  296. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
  297. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
  298. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
  299. {janito-2.19.0 → janito-2.20.0}/janito/tools/adapters/local/view_file.py +0 -0
  300. {janito-2.19.0 → janito-2.20.0}/janito/tools/disabled_tools.py +0 -0
  301. {janito-2.19.0 → janito-2.20.0}/janito/tools/inspect_registry.py +0 -0
  302. {janito-2.19.0 → janito-2.20.0}/janito/tools/outline_file.bak.zip +0 -0
  303. {janito-2.19.0 → janito-2.20.0}/janito/tools/path_security.py +0 -0
  304. {janito-2.19.0 → janito-2.20.0}/janito/tools/permissions.py +0 -0
  305. {janito-2.19.0 → janito-2.20.0}/janito/tools/permissions_parse.py +0 -0
  306. {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_events.py +0 -0
  307. {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_run_exception.py +0 -0
  308. {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_use_tracker.py +0 -0
  309. {janito-2.19.0 → janito-2.20.0}/janito/tools/tool_utils.py +0 -0
  310. {janito-2.19.0 → janito-2.20.0}/janito/tools/tools_adapter.py +0 -0
  311. {janito-2.19.0 → janito-2.20.0}/janito/tools/tools_schema.py +0 -0
  312. {janito-2.19.0 → janito-2.20.0}/janito/utils.py +0 -0
  313. {janito-2.19.0 → janito-2.20.0}/janito.egg-info/dependency_links.txt +0 -0
  314. {janito-2.19.0 → janito-2.20.0}/janito.egg-info/entry_points.txt +0 -0
  315. {janito-2.19.0 → janito-2.20.0}/janito.egg-info/requires.txt +0 -0
  316. {janito-2.19.0 → janito-2.20.0}/janito.egg-info/top_level.txt +0 -0
  317. {janito-2.19.0 → janito-2.20.0}/pyproject.toml +0 -0
  318. {janito-2.19.0 → janito-2.20.0}/pytest.ini +0 -0
  319. {janito-2.19.0 → janito-2.20.0}/requirements-dev.txt +0 -0
  320. {janito-2.19.0 → janito-2.20.0}/requirements.txt +0 -0
  321. {janito-2.19.0 → janito-2.20.0}/setup.cfg +0 -0
  322. {janito-2.19.0 → janito-2.20.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  323. {janito-2.19.0 → janito-2.20.0}/tests/adapters/local/test_read_files.py +0 -0
  324. {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_models.py +0 -0
  325. {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_providers.py +0 -0
  326. {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_providers_alibaba.py +0 -0
  327. {janito-2.19.0 → janito-2.20.0}/tests/test_cli_list_providers_moonshotai.py +0 -0
  328. {janito-2.19.0 → janito-2.20.0}/tests/test_cli_version.py +0 -0
  329. {janito-2.19.0 → janito-2.20.0}/tests/test_disabled_tools.py +0 -0
  330. {janito-2.19.0 → janito-2.20.0}/tests/test_provider_alibaba.py +0 -0
  331. {janito-2.19.0 → janito-2.20.0}/tests/test_provider_cerebras.py +0 -0
  332. {janito-2.19.0 → janito-2.20.0}/tests/test_provider_moonshotai.py +0 -0
  333. {janito-2.19.0 → janito-2.20.0}/tools/release.py +0 -0
  334. {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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.19.0
3
+ Version: 2.20.0
4
4
  Summary: A new Python package called janito.
5
5
  Author-email: João Pinto <janito@ikignosis.org>
6
6
  Project-URL: Homepage, https://github.com/ikignosis/janito
@@ -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
- if (
68
- hasattr(config, "max_completion_tokens")
69
- and config.max_completion_tokens is not None
70
- ):
71
- api_kwargs["max_completion_tokens"] = int(config.max_completion_tokens)
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 models that do not support 'max_tokens', map to 'max_completion_tokens'
74
- api_kwargs["max_completion_tokens"] = int(config.max_tokens)
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
- rows.sort(key=self._maintainer_sort_key)
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):
@@ -8,3 +8,4 @@ import janito.providers.moonshotai.provider
8
8
  import janito.providers.alibaba.provider
9
9
  import janito.providers.zai.provider
10
10
  import janito.providers.cerebras.provider
11
+ import janito.providers.mistral.provider
@@ -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
+ }