janito 2.10.0__tar.gz → 2.12.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 (310) hide show
  1. {janito-2.10.0 → janito-2.12.0}/CHANGELOG.md +21 -0
  2. {janito-2.10.0/janito.egg-info → janito-2.12.0}/PKG-INFO +1 -1
  3. {janito-2.10.0 → janito-2.12.0}/docs/guides/terminal-shell.md +1 -0
  4. {janito-2.10.0 → janito-2.12.0}/docs/reference/cli-options.md +2 -1
  5. {janito-2.10.0 → janito-2.12.0}/docs/supported-providers-models.md +12 -0
  6. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/session.py +9 -0
  7. janito-2.12.0/janito/cli/core/model_guesser.py +51 -0
  8. {janito-2.10.0 → janito-2.12.0}/janito/cli/core/runner.py +13 -1
  9. {janito-2.10.0 → janito-2.12.0}/janito/cli/main_cli.py +7 -0
  10. {janito-2.10.0 → janito-2.12.0}/janito/drivers/openai/driver.py +3 -2
  11. janito-2.12.0/janito/drivers/zai/__init__.py +1 -0
  12. janito-2.12.0/janito/drivers/zai/driver.py +465 -0
  13. {janito-2.10.0 → janito-2.12.0}/janito/mkdocs.yml +1 -1
  14. {janito-2.10.0 → janito-2.12.0}/janito/providers/__init__.py +1 -0
  15. {janito-2.10.0 → janito-2.12.0}/janito/providers/alibaba/model_info.py +7 -0
  16. {janito-2.10.0 → janito-2.12.0}/janito/providers/alibaba/provider.py +1 -1
  17. janito-2.12.0/janito/providers/zai/__init__.py +1 -0
  18. janito-2.12.0/janito/providers/zai/model_info.py +55 -0
  19. janito-2.12.0/janito/providers/zai/provider.py +128 -0
  20. janito-2.12.0/janito/providers/zai/schema_generator.py +133 -0
  21. {janito-2.10.0 → janito-2.12.0/janito.egg-info}/PKG-INFO +1 -1
  22. {janito-2.10.0 → janito-2.12.0}/janito.egg-info/SOURCES.txt +9 -2
  23. {janito-2.10.0 → janito-2.12.0}/mkdocs.yml +1 -1
  24. janito-2.12.0/tests/test_cli_list_providers_alibaba.py +14 -0
  25. janito-2.12.0/tests/test_provider_alibaba.py +12 -0
  26. janito-2.10.0/CNAME +0 -1
  27. janito-2.10.0/janito/docs/PROVIDERS.md +0 -224
  28. {janito-2.10.0 → janito-2.12.0}/.codespellrc +0 -0
  29. {janito-2.10.0 → janito-2.12.0}/.gitattributes +0 -0
  30. {janito-2.10.0 → janito-2.12.0}/.github/workflows/python-app.yml +0 -0
  31. {janito-2.10.0 → janito-2.12.0}/.gitignore +0 -0
  32. {janito-2.10.0 → janito-2.12.0}/.pre-commit-config.yaml +0 -0
  33. {janito-2.10.0 → janito-2.12.0}/.secrets.baseline +0 -0
  34. {janito-2.10.0 → janito-2.12.0}/.vscode/settings.json +0 -0
  35. {janito-2.10.0 → janito-2.12.0}/LICENSE +0 -0
  36. {janito-2.10.0 → janito-2.12.0}/README-dev.md +0 -0
  37. {janito-2.10.0 → janito-2.12.0}/README.md +0 -0
  38. {janito-2.10.0 → janito-2.12.0}/UPDATING_DOCS.md +0 -0
  39. {janito-2.10.0 → janito-2.12.0}/adding_mcp.txt +0 -0
  40. {janito-2.10.0 → janito-2.12.0}/docs/DIV.md +0 -0
  41. {janito-2.10.0 → janito-2.12.0}/docs/Interfaces.txt +0 -0
  42. {janito-2.10.0 → janito-2.12.0}/docs/TOOLBAR-STYLING.md +0 -0
  43. {janito-2.10.0 → janito-2.12.0}/docs/about/costs.md +0 -0
  44. {janito-2.10.0 → janito-2.12.0}/docs/about/vs-webchats.md +0 -0
  45. {janito-2.10.0 → janito-2.12.0}/docs/about/why.md +0 -0
  46. {janito-2.10.0 → janito-2.12.0}/docs/alternatives.md +0 -0
  47. {janito-2.10.0 → janito-2.12.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  48. {janito-2.10.0 → janito-2.12.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
  49. {janito-2.10.0 → janito-2.12.0}/docs/code_intelligence/code-generation-observability.md +0 -0
  50. {janito-2.10.0 → janito-2.12.0}/docs/code_intelligence/our-approach.md +0 -0
  51. {janito-2.10.0 → janito-2.12.0}/docs/code_intelligence/why-string-replacement.md +0 -0
  52. {janito-2.10.0 → janito-2.12.0}/docs/concepts/analysis-style.md +0 -0
  53. {janito-2.10.0 → janito-2.12.0}/docs/concepts/human-guided-ai.md +0 -0
  54. {janito-2.10.0 → janito-2.12.0}/docs/concepts/index.md +0 -0
  55. {janito-2.10.0 → janito-2.12.0}/docs/concepts/language-model-clients.md +0 -0
  56. {janito-2.10.0 → janito-2.12.0}/docs/concepts/prompt-design-style.md +0 -0
  57. {janito-2.10.0 → janito-2.12.0}/docs/deepseek-setup.md +0 -0
  58. {janito-2.10.0 → janito-2.12.0}/docs/driver-flow.md +0 -0
  59. {janito-2.10.0 → janito-2.12.0}/docs/driver-request-cancellation.md +0 -0
  60. {janito-2.10.0 → janito-2.12.0}/docs/drivers/events.md +0 -0
  61. {janito-2.10.0 → janito-2.12.0}/docs/drivers.md +0 -0
  62. {janito-2.10.0 → janito-2.12.0}/docs/event-bus.md +0 -0
  63. {janito-2.10.0 → janito-2.12.0}/docs/guides/configuration.md +0 -0
  64. {janito-2.10.0 → janito-2.12.0}/docs/guides/developing.md +0 -0
  65. {janito-2.10.0 → janito-2.12.0}/docs/guides/disabled-tools.md +0 -0
  66. {janito-2.10.0 → janito-2.12.0}/docs/guides/installation.md +0 -0
  67. {janito-2.10.0 → janito-2.12.0}/docs/guides/profiles.md +0 -0
  68. {janito-2.10.0 → janito-2.12.0}/docs/guides/prompting/README.md +0 -0
  69. {janito-2.10.0 → janito-2.12.0}/docs/guides/single-shot-terminal.md +0 -0
  70. {janito-2.10.0 → janito-2.12.0}/docs/guides/tools-developer-guide.md +0 -0
  71. {janito-2.10.0 → janito-2.12.0}/docs/guides/using.md +0 -0
  72. {janito-2.10.0 → janito-2.12.0}/docs/guides/using_tools.md +0 -0
  73. {janito-2.10.0 → janito-2.12.0}/docs/imgs/code-generation-observability.png +0 -0
  74. {janito-2.10.0 → janito-2.12.0}/docs/imgs/code_generation_observability.png +0 -0
  75. {janito-2.10.0 → janito-2.12.0}/docs/imgs/happy-programmer.png +0 -0
  76. {janito-2.10.0 → janito-2.12.0}/docs/imgs/happy-programmer.svg +0 -0
  77. {janito-2.10.0 → janito-2.12.0}/docs/imgs/terminal-one-shot.png +0 -0
  78. {janito-2.10.0 → janito-2.12.0}/docs/imgs/terminal-shell.png +0 -0
  79. {janito-2.10.0 → janito-2.12.0}/docs/imgs/terminal_one_shot.png +0 -0
  80. {janito-2.10.0 → janito-2.12.0}/docs/imgs/terminal_shell.png +0 -0
  81. {janito-2.10.0 → janito-2.12.0}/docs/index.md +0 -0
  82. {janito-2.10.0 → janito-2.12.0}/docs/llm-drivers-required-config.md +0 -0
  83. {janito-2.10.0 → janito-2.12.0}/docs/llm-drivers.md +0 -0
  84. {janito-2.10.0 → janito-2.12.0}/docs/meta/developer-toolchain.md +0 -0
  85. {janito-2.10.0 → janito-2.12.0}/docs/meta/quality-checks.txt +0 -0
  86. {janito-2.10.0 → janito-2.12.0}/docs/moonshotai-setup.md +0 -0
  87. {janito-2.10.0 → janito-2.12.0}/docs/reference/api.md +0 -0
  88. {janito-2.10.0 → janito-2.12.0}/docs/reference/azure-openai.md +0 -0
  89. {janito-2.10.0 → janito-2.12.0}/docs/reference/message-handler-model.md +0 -0
  90. {janito-2.10.0 → janito-2.12.0}/docs/reference/rich-message-handler.md +0 -0
  91. {janito-2.10.0 → janito-2.12.0}/docs/security.md +0 -0
  92. {janito-2.10.0 → janito-2.12.0}/docs/tools/search-text.md +0 -0
  93. {janito-2.10.0 → janito-2.12.0}/docs/tools-index.md +0 -0
  94. {janito-2.10.0 → janito-2.12.0}/docs/tools-natural-results.md +0 -0
  95. {janito-2.10.0 → janito-2.12.0}/docs/tools-precision.md +0 -0
  96. {janito-2.10.0 → janito-2.12.0}/git_diff.txt +0 -0
  97. {janito-2.10.0 → janito-2.12.0}/github_diff +0 -0
  98. {janito-2.10.0 → janito-2.12.0}/janito/README.md +0 -0
  99. {janito-2.10.0 → janito-2.12.0}/janito/__init__.py +0 -0
  100. {janito-2.10.0 → janito-2.12.0}/janito/__main__.py +0 -0
  101. {janito-2.10.0 → janito-2.12.0}/janito/_version.py +0 -0
  102. {janito-2.10.0 → janito-2.12.0}/janito/agent/setup_agent.py +0 -0
  103. {janito-2.10.0 → janito-2.12.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
  104. {janito-2.10.0 → janito-2.12.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
  105. {janito-2.10.0 → janito-2.12.0}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
  106. {janito-2.10.0 → janito-2.12.0}/janito/cli/__init__.py +0 -0
  107. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/bindings.py +0 -0
  108. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/chat_entry.py +0 -0
  109. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/prompt_style.py +0 -0
  110. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/script_runner.py +0 -0
  111. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/session_profile_select.py +0 -0
  112. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  113. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  114. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  115. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  116. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  117. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  118. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  119. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  120. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  121. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  122. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  123. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  124. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  125. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  126. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  127. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  128. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  129. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  130. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  131. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  132. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  133. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  134. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  135. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  136. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  137. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
  138. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  139. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
  140. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  141. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  142. {janito-2.10.0 → janito-2.12.0}/janito/cli/chat_mode/toolbar.py +0 -0
  143. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/list_config.py +0 -0
  144. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/list_models.py +0 -0
  145. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/list_profiles.py +0 -0
  146. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/list_providers.py +0 -0
  147. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/list_tools.py +0 -0
  148. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/model_selection.py +0 -0
  149. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/model_utils.py +0 -0
  150. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/set_api_key.py +0 -0
  151. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/show_config.py +0 -0
  152. {janito-2.10.0 → janito-2.12.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  153. {janito-2.10.0 → janito-2.12.0}/janito/cli/config.py +0 -0
  154. {janito-2.10.0 → janito-2.12.0}/janito/cli/console.py +0 -0
  155. {janito-2.10.0 → janito-2.12.0}/janito/cli/core/__init__.py +0 -0
  156. {janito-2.10.0 → janito-2.12.0}/janito/cli/core/event_logger.py +0 -0
  157. {janito-2.10.0 → janito-2.12.0}/janito/cli/core/getters.py +0 -0
  158. {janito-2.10.0 → janito-2.12.0}/janito/cli/core/setters.py +0 -0
  159. {janito-2.10.0 → janito-2.12.0}/janito/cli/core/unsetters.py +0 -0
  160. {janito-2.10.0 → janito-2.12.0}/janito/cli/main.py +0 -0
  161. {janito-2.10.0 → janito-2.12.0}/janito/cli/prompt_core.py +0 -0
  162. {janito-2.10.0 → janito-2.12.0}/janito/cli/prompt_handler.py +0 -0
  163. {janito-2.10.0 → janito-2.12.0}/janito/cli/prompt_setup.py +0 -0
  164. {janito-2.10.0 → janito-2.12.0}/janito/cli/rich_terminal_reporter.py +0 -0
  165. {janito-2.10.0 → janito-2.12.0}/janito/cli/single_shot_mode/__init__.py +0 -0
  166. {janito-2.10.0 → janito-2.12.0}/janito/cli/single_shot_mode/handler.py +0 -0
  167. {janito-2.10.0 → janito-2.12.0}/janito/cli/utils.py +0 -0
  168. {janito-2.10.0 → janito-2.12.0}/janito/cli/verbose_output.py +0 -0
  169. {janito-2.10.0 → janito-2.12.0}/janito/config.py +0 -0
  170. {janito-2.10.0 → janito-2.12.0}/janito/config_manager.py +0 -0
  171. {janito-2.10.0 → janito-2.12.0}/janito/conversation_history.py +0 -0
  172. {janito-2.10.0 → janito-2.12.0}/janito/dir_walk_utils.py +0 -0
  173. {janito-2.10.0 → janito-2.12.0}/janito/docs/GETTING_STARTED.md +0 -0
  174. {janito-2.10.0 → janito-2.12.0}/janito/driver_events.py +0 -0
  175. {janito-2.10.0 → janito-2.12.0}/janito/drivers/azure_openai/driver.py +0 -0
  176. {janito-2.10.0 → janito-2.12.0}/janito/drivers/dashscope.bak.zip +0 -0
  177. {janito-2.10.0 → janito-2.12.0}/janito/drivers/driver_registry.py +0 -0
  178. {janito-2.10.0 → janito-2.12.0}/janito/drivers/openai/README.md +0 -0
  179. {janito-2.10.0 → janito-2.12.0}/janito/drivers/openai_responses.bak.zip +0 -0
  180. {janito-2.10.0 → janito-2.12.0}/janito/event_bus/__init__.py +0 -0
  181. {janito-2.10.0 → janito-2.12.0}/janito/event_bus/bus.py +0 -0
  182. {janito-2.10.0 → janito-2.12.0}/janito/event_bus/event.py +0 -0
  183. {janito-2.10.0 → janito-2.12.0}/janito/event_bus/handler.py +0 -0
  184. {janito-2.10.0 → janito-2.12.0}/janito/event_bus/queue_bus.py +0 -0
  185. {janito-2.10.0 → janito-2.12.0}/janito/exceptions.py +0 -0
  186. {janito-2.10.0 → janito-2.12.0}/janito/formatting.py +0 -0
  187. {janito-2.10.0 → janito-2.12.0}/janito/formatting_token.py +0 -0
  188. {janito-2.10.0 → janito-2.12.0}/janito/gitignore_utils.py +0 -0
  189. {janito-2.10.0 → janito-2.12.0}/janito/i18n/__init__.py +0 -0
  190. {janito-2.10.0 → janito-2.12.0}/janito/i18n/messages.py +0 -0
  191. {janito-2.10.0 → janito-2.12.0}/janito/i18n/pt.py +0 -0
  192. {janito-2.10.0 → janito-2.12.0}/janito/llm/README.md +0 -0
  193. {janito-2.10.0 → janito-2.12.0}/janito/llm/__init__.py +0 -0
  194. {janito-2.10.0 → janito-2.12.0}/janito/llm/agent.py +0 -0
  195. {janito-2.10.0 → janito-2.12.0}/janito/llm/auth.py +0 -0
  196. {janito-2.10.0 → janito-2.12.0}/janito/llm/driver.py +0 -0
  197. {janito-2.10.0 → janito-2.12.0}/janito/llm/driver_config.py +0 -0
  198. {janito-2.10.0 → janito-2.12.0}/janito/llm/driver_config_builder.py +0 -0
  199. {janito-2.10.0 → janito-2.12.0}/janito/llm/driver_input.py +0 -0
  200. {janito-2.10.0 → janito-2.12.0}/janito/llm/message_parts.py +0 -0
  201. {janito-2.10.0 → janito-2.12.0}/janito/llm/model.py +0 -0
  202. {janito-2.10.0 → janito-2.12.0}/janito/llm/provider.py +0 -0
  203. {janito-2.10.0 → janito-2.12.0}/janito/perf_singleton.py +0 -0
  204. {janito-2.10.0 → janito-2.12.0}/janito/performance_collector.py +0 -0
  205. {janito-2.10.0 → janito-2.12.0}/janito/platform_discovery.py +0 -0
  206. {janito-2.10.0 → janito-2.12.0}/janito/provider_config.py +0 -0
  207. {janito-2.10.0 → janito-2.12.0}/janito/provider_registry.py +0 -0
  208. {janito-2.10.0 → janito-2.12.0}/janito/providers/alibaba/__init__.py +0 -0
  209. {janito-2.10.0 → janito-2.12.0}/janito/providers/anthropic/model_info.py +0 -0
  210. {janito-2.10.0 → janito-2.12.0}/janito/providers/anthropic/provider.py +0 -0
  211. {janito-2.10.0 → janito-2.12.0}/janito/providers/azure_openai/model_info.py +0 -0
  212. {janito-2.10.0 → janito-2.12.0}/janito/providers/azure_openai/provider.py +0 -0
  213. {janito-2.10.0 → janito-2.12.0}/janito/providers/dashscope.bak.zip +0 -0
  214. {janito-2.10.0 → janito-2.12.0}/janito/providers/deepseek/__init__.py +0 -0
  215. {janito-2.10.0 → janito-2.12.0}/janito/providers/deepseek/model_info.py +0 -0
  216. {janito-2.10.0 → janito-2.12.0}/janito/providers/deepseek/provider.py +0 -0
  217. {janito-2.10.0 → janito-2.12.0}/janito/providers/google/__init__.py +0 -0
  218. {janito-2.10.0 → janito-2.12.0}/janito/providers/google/model_info.py +0 -0
  219. {janito-2.10.0 → janito-2.12.0}/janito/providers/google/provider.py +0 -0
  220. {janito-2.10.0 → janito-2.12.0}/janito/providers/moonshotai/__init__.py +0 -0
  221. {janito-2.10.0 → janito-2.12.0}/janito/providers/moonshotai/model_info.py +0 -0
  222. {janito-2.10.0 → janito-2.12.0}/janito/providers/moonshotai/provider.py +0 -0
  223. {janito-2.10.0 → janito-2.12.0}/janito/providers/openai/__init__.py +0 -0
  224. {janito-2.10.0 → janito-2.12.0}/janito/providers/openai/model_info.py +0 -0
  225. {janito-2.10.0 → janito-2.12.0}/janito/providers/openai/provider.py +0 -0
  226. {janito-2.10.0 → janito-2.12.0}/janito/providers/openai/schema_generator.py +0 -0
  227. {janito-2.10.0 → janito-2.12.0}/janito/providers/registry.py +0 -0
  228. {janito-2.10.0 → janito-2.12.0}/janito/report_events.py +0 -0
  229. {janito-2.10.0 → janito-2.12.0}/janito/shell.bak.zip +0 -0
  230. {janito-2.10.0 → janito-2.12.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  231. {janito-2.10.0 → janito-2.12.0}/janito/tools/README.md +0 -0
  232. {janito-2.10.0 → janito-2.12.0}/janito/tools/__init__.py +0 -0
  233. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/__init__.py +0 -0
  234. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/__init__.py +0 -0
  235. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/adapter.py +0 -0
  236. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/ask_user.py +0 -0
  237. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/copy_file.py +0 -0
  238. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/create_directory.py +0 -0
  239. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/create_file.py +0 -0
  240. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
  241. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/fetch_url.py +0 -0
  242. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/find_files.py +0 -0
  243. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
  244. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
  245. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
  246. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
  247. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
  248. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
  249. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/move_file.py +0 -0
  250. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
  251. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/open_url.py +0 -0
  252. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/python_code_run.py +0 -0
  253. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/python_command_run.py +0 -0
  254. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/python_file_run.py +0 -0
  255. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/read_files.py +0 -0
  256. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/remove_directory.py +0 -0
  257. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/remove_file.py +0 -0
  258. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
  259. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/run_bash_command.py +0 -0
  260. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/run_powershell_command.py +0 -0
  261. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
  262. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/search_text/core.py +0 -0
  263. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
  264. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
  265. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
  266. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
  267. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
  268. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
  269. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
  270. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
  271. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
  272. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
  273. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
  274. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
  275. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
  276. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
  277. {janito-2.10.0 → janito-2.12.0}/janito/tools/adapters/local/view_file.py +0 -0
  278. {janito-2.10.0 → janito-2.12.0}/janito/tools/disabled_tools.py +0 -0
  279. {janito-2.10.0 → janito-2.12.0}/janito/tools/inspect_registry.py +0 -0
  280. {janito-2.10.0 → janito-2.12.0}/janito/tools/outline_file.bak.zip +0 -0
  281. {janito-2.10.0 → janito-2.12.0}/janito/tools/path_security.py +0 -0
  282. {janito-2.10.0 → janito-2.12.0}/janito/tools/permissions.py +0 -0
  283. {janito-2.10.0 → janito-2.12.0}/janito/tools/permissions_parse.py +0 -0
  284. {janito-2.10.0 → janito-2.12.0}/janito/tools/tool_base.py +0 -0
  285. {janito-2.10.0 → janito-2.12.0}/janito/tools/tool_events.py +0 -0
  286. {janito-2.10.0 → janito-2.12.0}/janito/tools/tool_run_exception.py +0 -0
  287. {janito-2.10.0 → janito-2.12.0}/janito/tools/tool_use_tracker.py +0 -0
  288. {janito-2.10.0 → janito-2.12.0}/janito/tools/tool_utils.py +0 -0
  289. {janito-2.10.0 → janito-2.12.0}/janito/tools/tools_adapter.py +0 -0
  290. {janito-2.10.0 → janito-2.12.0}/janito/tools/tools_schema.py +0 -0
  291. {janito-2.10.0 → janito-2.12.0}/janito/utils.py +0 -0
  292. {janito-2.10.0 → janito-2.12.0}/janito.egg-info/dependency_links.txt +0 -0
  293. {janito-2.10.0 → janito-2.12.0}/janito.egg-info/entry_points.txt +0 -0
  294. {janito-2.10.0 → janito-2.12.0}/janito.egg-info/requires.txt +0 -0
  295. {janito-2.10.0 → janito-2.12.0}/janito.egg-info/top_level.txt +0 -0
  296. {janito-2.10.0 → janito-2.12.0}/pyproject.toml +0 -0
  297. {janito-2.10.0 → janito-2.12.0}/pytest.ini +0 -0
  298. {janito-2.10.0 → janito-2.12.0}/requirements-dev.txt +0 -0
  299. {janito-2.10.0 → janito-2.12.0}/requirements.txt +0 -0
  300. {janito-2.10.0 → janito-2.12.0}/setup.cfg +0 -0
  301. {janito-2.10.0 → janito-2.12.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  302. {janito-2.10.0 → janito-2.12.0}/tests/adapters/local/test_read_files.py +0 -0
  303. {janito-2.10.0 → janito-2.12.0}/tests/test_cli_list_models.py +0 -0
  304. {janito-2.10.0 → janito-2.12.0}/tests/test_cli_list_providers.py +0 -0
  305. {janito-2.10.0 → janito-2.12.0}/tests/test_cli_list_providers_moonshotai.py +0 -0
  306. {janito-2.10.0 → janito-2.12.0}/tests/test_cli_version.py +0 -0
  307. {janito-2.10.0 → janito-2.12.0}/tests/test_disabled_tools.py +0 -0
  308. {janito-2.10.0 → janito-2.12.0}/tests/test_provider_moonshotai.py +0 -0
  309. {janito-2.10.0 → janito-2.12.0}/tools/release.py +0 -0
  310. {janito-2.10.0 → janito-2.12.0}/tox.ini +0 -0
@@ -4,6 +4,27 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [2.11.0] - 2025-08-04
8
+
9
+ ### Added
10
+
11
+ - **Z.AI Provider**: Added complete support for Z.AI with GLM-4.5, GLM-4, and GLM-4V models
12
+ - GLM-4.5: 128k context with thinking support for advanced reasoning
13
+ - GLM-4: General-purpose model with 128k context
14
+ - GLM-4V: Vision model for image understanding with 128k context
15
+ - **Alibaba Cloud Provider**: Added support for Alibaba Cloud's Qwen models
16
+ - qwen-turbo, qwen-plus, qwen-max, and qwen3-coder-plus models
17
+ - Updated supported providers documentation to include new Z.AI and Alibaba Cloud providers
18
+
19
+ ### Changed
20
+
21
+ - Enhanced provider registry with new visual indicators and improved model listing
22
+ - Updated documentation to reflect new provider additions and model availability
23
+
24
+ ### Removed
25
+
26
+ - Removed deprecated PROVIDERS.md file from janito/docs (content merged into supported-providers-models.md)
27
+
7
28
  ## [2.9.0] - 2025-07-16
8
29
  ### Added
9
30
  - Added new `kimi-k2-turbo-preview` model to MoonshotAI provider
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.10.0
3
+ Version: 2.12.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
@@ -32,6 +32,7 @@ You can use these commands at any time (prefix with `/` or just type the name):
32
32
  | `/lang <code>` | Change the interface language (e.g., `/lang pt`, `/lang en`) |
33
33
  | `/clear` | Clear the terminal screen |
34
34
  | `/multi` | Enter multiline input mode (write multi-line text, Esc+Enter) |
35
+ | `--multi` (CLI arg) | Start chat mode with multiline input as default (no need for /multi) |
35
36
  | `/config` | Show or set configuration (see: `/config show`, `/config set local|global key=value`) |
36
37
  | `/edit <filename>` | Open a file in the browser-based editor |
37
38
  | `/view` | Print the current LLM conversation history |
@@ -20,6 +20,7 @@ These options are useful for one-off runs, scripting, or experimentation. They t
20
20
  | `--verbose-agent` | Print info messages for agent event and message part handling. |
21
21
  | `-z`, `--zero` | IDE zero mode: disables system prompt & all tools for raw LLM interaction |
22
22
  | `-u`, `--unrestricted-paths` | Disable path security: allow tool arguments to use any file/directory path (DANGEROUS). See [Security](../security.md) for details. |
23
+ | `--multi` | Start chat mode with multiline input as default (no need for /multi command) |
23
24
  | `-r`, `--read` | Enable tools that require read permissions (default: off) |
24
25
  | `-w`, `--write` | Enable tools that require write permissions (default: off) |
25
26
  | `-x`, `--exec` | Enable execution/run tools (allows running code or shell tools from the CLI). (default: off) |
@@ -50,7 +51,7 @@ janito [options] [prompt]
50
51
  janito -p openai -m gpt-3.5-turbo "Your prompt here"
51
52
  janito -c myproject -p openai "Prompt for my project (uses ~/.janito/configs/myproject.json)"
52
53
  janito --list-tools
53
- janito --web # Enable clickable file links via web viewer
54
+ janito --multi # Start chat mode with multiline input as default
54
55
  janito -u -x --read --write "Run a tool with unrestricted paths (DANGEROUS)"
55
56
  ```
56
57
 
@@ -3,21 +3,25 @@
3
3
  This page lists the supported providers and their available models.
4
4
 
5
5
  ## OpenAI
6
+
6
7
  - GPT-3.5 Turbo
7
8
  - GPT-4
8
9
  - GPT-4 Turbo
9
10
 
10
11
  ## Google
12
+
11
13
  - Gemini Pro
12
14
  - Gemini 1.5 Pro
13
15
 
14
16
  ## Anthropic
17
+
15
18
  - Claude 2
16
19
  - Claude 3 Opus
17
20
  - Claude 3 Sonnet
18
21
  - Claude 3 Haiku
19
22
 
20
23
  ## MoonshotAI
24
+
21
25
  - kimi-k2-turbo-preview
22
26
  - kimi-k2-turbo-preview
23
27
  - kimi-k1-8k
@@ -28,9 +32,17 @@ This page lists the supported providers and their available models.
28
32
  - Llama-3-70b-8192
29
33
 
30
34
  ## Alibaba
35
+
31
36
  - qwen-turbo
32
37
  - qwen-plus
33
38
  - qwen-max
34
39
  - qwen3-coder-plus
40
+ - qwen3-coder-480b-a35b-instruct
41
+
42
+ ## Z.AI
43
+
44
+ - glm-4.5
45
+ - glm-4
46
+ - glm-4v
35
47
 
36
48
  <!-- Removed links to model_info.py files for all providers to avoid broken references. -->
@@ -109,6 +109,9 @@ class ChatSession:
109
109
  )
110
110
  self._support = False
111
111
 
112
+ # Check if multi-line mode should be enabled by default
113
+ self.multi_line_mode = getattr(args, "multi", False) if args else False
114
+
112
115
  def _select_profile_and_role(self, args, role):
113
116
  profile = getattr(args, "profile", None) if args is not None else None
114
117
  role_arg = getattr(args, "role", None) if args is not None else None
@@ -213,6 +216,11 @@ class ChatSession:
213
216
  f"[green]Working Dir:[/green] {cwd_display} | {priv_status}"
214
217
  )
215
218
 
219
+ if self.multi_line_mode:
220
+ self.console.print(
221
+ "[blue]Multi-line input mode enabled (Esc+Enter or Ctrl+D to submit)[/blue]"
222
+ )
223
+
216
224
  from janito.cli.chat_mode.shell.commands._priv_check import (
217
225
  user_has_any_privileges,
218
226
  )
@@ -305,6 +313,7 @@ class ChatSession:
305
313
  bottom_toolbar=lambda: get_toolbar_func(
306
314
  self.performance_collector, 0, self.shell_state
307
315
  )(),
316
+ multiline=self.multi_line_mode,
308
317
  )
309
318
 
310
319
  def _handle_input(self, session):
@@ -0,0 +1,51 @@
1
+ """
2
+ Module for guessing the provider based on model names.
3
+ """
4
+
5
+ from janito.providers.registry import LLMProviderRegistry
6
+
7
+
8
+ def guess_provider_from_model(model_name: str) -> str:
9
+ """
10
+ Guess the provider based on the model name.
11
+
12
+ Args:
13
+ model_name: The name of the model to guess the provider for
14
+
15
+ Returns:
16
+ The provider name if a match is found, None otherwise
17
+ """
18
+ if not model_name:
19
+ return None
20
+
21
+ model_name = model_name.lower()
22
+
23
+ # Check each provider's models
24
+ for provider_name in LLMProviderRegistry.list_providers():
25
+ provider_class = LLMProviderRegistry.get(provider_name)
26
+ if not provider_class:
27
+ continue
28
+
29
+ # Get model specs for this provider
30
+ try:
31
+ if hasattr(provider_class, 'MODEL_SPECS'):
32
+ model_specs = provider_class.MODEL_SPECS
33
+ for spec_model_name in model_specs.keys():
34
+ if spec_model_name.lower() == model_name:
35
+ return provider_name
36
+
37
+ # Handle special cases like moonshotai
38
+ if provider_name == "moonshotai":
39
+ try:
40
+ from janito.providers.moonshotai.model_info import MOONSHOTAI_MODEL_SPECS
41
+ for spec_model_name in MOONSHOTAI_MODEL_SPECS.keys():
42
+ if spec_model_name.lower() == model_name:
43
+ return "moonshotai"
44
+ except ImportError:
45
+ pass
46
+
47
+ except Exception:
48
+ # Skip providers that have issues accessing model specs
49
+ continue
50
+
51
+ return None
@@ -2,6 +2,7 @@
2
2
 
3
3
  from janito.llm.driver_config import LLMDriverConfig
4
4
  from janito.provider_config import get_config_provider
5
+ from janito.cli.core.model_guesser import guess_provider_from_model as _guess_provider_from_model
5
6
  from janito.cli.verbose_output import print_verbose_info
6
7
 
7
8
 
@@ -14,6 +15,17 @@ def _choose_provider(args):
14
15
  "Default provider", provider, style="magenta", align_content=True
15
16
  )
16
17
  elif provider is None:
18
+ # Try to guess provider based on model name if -m is provided
19
+ model = getattr(args, "model", None)
20
+ if model:
21
+ guessed_provider = _guess_provider_from_model(model)
22
+ if guessed_provider:
23
+ if getattr(args, "verbose", False):
24
+ print_verbose_info(
25
+ "Guessed provider", guessed_provider, style="magenta", align_content=True
26
+ )
27
+ return guessed_provider
28
+
17
29
  print(
18
30
  "Error: No provider selected and no provider found in config. Please set a provider using '-p PROVIDER', '--set provider=name', or configure a provider."
19
31
  )
@@ -191,4 +203,4 @@ def handle_runner(
191
203
 
192
204
 
193
205
  def get_prompt_mode(args):
194
- return "single_shot" if getattr(args, "user_prompt", None) else "chat_mode"
206
+ return "single_shot" if getattr(args, "user_prompt", None) else "chat_mode"
@@ -21,6 +21,13 @@ definition = [
21
21
  "help": "Disable path security: allow tool arguments to use any file/directory path (DANGEROUS)",
22
22
  },
23
23
  ),
24
+ (
25
+ ["--multi"],
26
+ {
27
+ "action": "store_true",
28
+ "help": "Start chat mode with multi-line input as default (no need for /multi command)",
29
+ },
30
+ ),
24
31
  (
25
32
  ["--profile"],
26
33
  {
@@ -44,9 +44,10 @@ class OpenAIModelDriver(LLMDriver):
44
44
 
45
45
  tool_classes = self.tools_adapter.get_tool_classes()
46
46
  tool_schemas = generate_tool_schemas(tool_classes)
47
- api_kwargs["tools"] = tool_schemas
47
+ if tool_schemas: # Only add tools if we have actual schemas
48
+ api_kwargs["tools"] = tool_schemas
48
49
  except Exception as e:
49
- api_kwargs["tools"] = []
50
+ # Don't add empty tools array - some providers reject it
50
51
  if hasattr(config, "verbose_api") and config.verbose_api:
51
52
  print(f"[OpenAIModelDriver] Tool schema generation failed: {e}")
52
53
  # OpenAI-specific parameters
@@ -0,0 +1 @@
1
+ # Z.AI driver package