janito 3.12.2__tar.gz → 3.12.3__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 (487) hide show
  1. {janito-3.12.2 → janito-3.12.3}/PKG-INFO +1 -1
  2. {janito-3.12.2 → janito-3.12.3}/docs/CHANGELOG.md +48 -48
  3. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/read_files.py +1 -1
  4. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/replace_text_in_file.py +1 -1
  5. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/search_text/core.py +2 -2
  6. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/view_file.py +3 -3
  7. {janito-3.12.2 → janito-3.12.3}/janito/providers/alibaba/provider.py +104 -104
  8. {janito-3.12.2 → janito-3.12.3}/janito.egg-info/PKG-INFO +1 -1
  9. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/search_text/core.py +2 -2
  10. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/replace_text_in_file.py +1 -1
  11. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/view_file.py +3 -3
  12. {janito-3.12.2 → janito-3.12.3}/.codespellrc +0 -0
  13. {janito-3.12.2 → janito-3.12.3}/.gitattributes +0 -0
  14. {janito-3.12.2 → janito-3.12.3}/.github/workflows/python-app.yml.disabled +0 -0
  15. {janito-3.12.2 → janito-3.12.3}/.gitignore +0 -0
  16. {janito-3.12.2 → janito-3.12.3}/.pre-commit-config.yaml +0 -0
  17. {janito-3.12.2 → janito-3.12.3}/.secrets.baseline +0 -0
  18. {janito-3.12.2 → janito-3.12.3}/.vscode/settings.json +0 -0
  19. {janito-3.12.2 → janito-3.12.3}/LICENSE +0 -0
  20. {janito-3.12.2 → janito-3.12.3}/MARKET_ANALYST_README.md +0 -0
  21. {janito-3.12.2 → janito-3.12.3}/README-dev.md +0 -0
  22. {janito-3.12.2 → janito-3.12.3}/README.md +0 -0
  23. {janito-3.12.2 → janito-3.12.3}/RELEASE_COMPARISON.md +0 -0
  24. {janito-3.12.2 → janito-3.12.3}/UPDATING_DOCS.md +0 -0
  25. {janito-3.12.2 → janito-3.12.3}/adding_mcp.txt +0 -0
  26. {janito-3.12.2 → janito-3.12.3}/alibaba-qwen3.md +0 -0
  27. {janito-3.12.2 → janito-3.12.3}/cow.txt +0 -0
  28. {janito-3.12.2 → janito-3.12.3}/detailed_cow.txt +0 -0
  29. {janito-3.12.2 → janito-3.12.3}/docs/DIV.md +0 -0
  30. {janito-3.12.2 → janito-3.12.3}/docs/Interfaces.txt +0 -0
  31. {janito-3.12.2 → janito-3.12.3}/docs/PROFILES.md +0 -0
  32. {janito-3.12.2 → janito-3.12.3}/docs/TOOLBAR-STYLING.md +0 -0
  33. {janito-3.12.2 → janito-3.12.3}/docs/about/costs.md +0 -0
  34. {janito-3.12.2 → janito-3.12.3}/docs/about/vs-webchats.md +0 -0
  35. {janito-3.12.2 → janito-3.12.3}/docs/about/why.md +0 -0
  36. {janito-3.12.2 → janito-3.12.3}/docs/agent/agent-lifecycle.md +0 -0
  37. {janito-3.12.2 → janito-3.12.3}/docs/agent/tools-workflow-lifecycle.md +0 -0
  38. {janito-3.12.2 → janito-3.12.3}/docs/alibaba-setup.md +0 -0
  39. {janito-3.12.2 → janito-3.12.3}/docs/alternatives.md +0 -0
  40. {janito-3.12.2 → janito-3.12.3}/docs/cerebras-setup.md +0 -0
  41. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/CHANGELOG.md +0 -0
  42. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
  43. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
  44. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
  45. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
  46. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
  47. {janito-3.12.2 → janito-3.12.3}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
  48. {janito-3.12.2 → janito-3.12.3}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  49. {janito-3.12.2 → janito-3.12.3}/docs/code_intelligence/code-generation-challenges.md +0 -0
  50. {janito-3.12.2 → janito-3.12.3}/docs/code_intelligence/code-generation-observability.md +0 -0
  51. {janito-3.12.2 → janito-3.12.3}/docs/code_intelligence/our-approach.md +0 -0
  52. {janito-3.12.2 → janito-3.12.3}/docs/code_intelligence/why-string-replacement.md +0 -0
  53. {janito-3.12.2 → janito-3.12.3}/docs/concepts/analysis-style.md +0 -0
  54. {janito-3.12.2 → janito-3.12.3}/docs/concepts/human-guided-ai.md +0 -0
  55. {janito-3.12.2 → janito-3.12.3}/docs/concepts/index.md +0 -0
  56. {janito-3.12.2 → janito-3.12.3}/docs/concepts/language-model-clients.md +0 -0
  57. {janito-3.12.2 → janito-3.12.3}/docs/concepts/prompt-design-style.md +0 -0
  58. {janito-3.12.2 → janito-3.12.3}/docs/deepseek-setup.md +0 -0
  59. {janito-3.12.2 → janito-3.12.3}/docs/driver-flow.md +0 -0
  60. {janito-3.12.2 → janito-3.12.3}/docs/driver-request-cancellation.md +0 -0
  61. {janito-3.12.2 → janito-3.12.3}/docs/drivers/events.md +0 -0
  62. {janito-3.12.2 → janito-3.12.3}/docs/drivers.md +0 -0
  63. {janito-3.12.2 → janito-3.12.3}/docs/event-bus.md +0 -0
  64. {janito-3.12.2 → janito-3.12.3}/docs/guides/configuration.md +0 -0
  65. {janito-3.12.2 → janito-3.12.3}/docs/guides/developing.md +0 -0
  66. {janito-3.12.2 → janito-3.12.3}/docs/guides/disabled-tools.md +0 -0
  67. {janito-3.12.2 → janito-3.12.3}/docs/guides/installation.md +0 -0
  68. {janito-3.12.2 → janito-3.12.3}/docs/guides/market-data-sources.md +0 -0
  69. {janito-3.12.2 → janito-3.12.3}/docs/guides/profiles.md +0 -0
  70. {janito-3.12.2 → janito-3.12.3}/docs/guides/prompting/README.md +0 -0
  71. {janito-3.12.2 → janito-3.12.3}/docs/guides/security-commands.md +0 -0
  72. {janito-3.12.2 → janito-3.12.3}/docs/guides/single-shot-terminal.md +0 -0
  73. {janito-3.12.2 → janito-3.12.3}/docs/guides/stock-market-guide.md +0 -0
  74. {janito-3.12.2 → janito-3.12.3}/docs/guides/terminal-shell.md +0 -0
  75. {janito-3.12.2 → janito-3.12.3}/docs/guides/tools-developer-guide.md +0 -0
  76. {janito-3.12.2 → janito-3.12.3}/docs/guides/url-whitelist.md +0 -0
  77. {janito-3.12.2 → janito-3.12.3}/docs/guides/using.md +0 -0
  78. {janito-3.12.2 → janito-3.12.3}/docs/guides/using_tools.md +0 -0
  79. {janito-3.12.2 → janito-3.12.3}/docs/ibm-setup.md +0 -0
  80. {janito-3.12.2 → janito-3.12.3}/docs/imgs/code-generation-observability.png +0 -0
  81. {janito-3.12.2 → janito-3.12.3}/docs/imgs/code_generation_observability.png +0 -0
  82. {janito-3.12.2 → janito-3.12.3}/docs/imgs/happy-programmer.png +0 -0
  83. {janito-3.12.2 → janito-3.12.3}/docs/imgs/happy-programmer.svg +0 -0
  84. {janito-3.12.2 → janito-3.12.3}/docs/imgs/terminal-one-shot.png +0 -0
  85. {janito-3.12.2 → janito-3.12.3}/docs/imgs/terminal-shell.png +0 -0
  86. {janito-3.12.2 → janito-3.12.3}/docs/imgs/terminal_one_shot.png +0 -0
  87. {janito-3.12.2 → janito-3.12.3}/docs/imgs/terminal_shell.png +0 -0
  88. {janito-3.12.2 → janito-3.12.3}/docs/index.md +0 -0
  89. {janito-3.12.2 → janito-3.12.3}/docs/llm-drivers-required-config.md +0 -0
  90. {janito-3.12.2 → janito-3.12.3}/docs/llm-drivers.md +0 -0
  91. {janito-3.12.2 → janito-3.12.3}/docs/meta/developer-toolchain.md +0 -0
  92. {janito-3.12.2 → janito-3.12.3}/docs/meta/quality-checks.txt +0 -0
  93. {janito-3.12.2 → janito-3.12.3}/docs/mistral-setup.md +0 -0
  94. {janito-3.12.2 → janito-3.12.3}/docs/moonshot-setup.md +0 -0
  95. {janito-3.12.2 → janito-3.12.3}/docs/openai-setup.md +0 -0
  96. {janito-3.12.2 → janito-3.12.3}/docs/overrides/partials/copyright.html +0 -0
  97. {janito-3.12.2 → janito-3.12.3}/docs/plugins/README.md +0 -0
  98. {janito-3.12.2 → janito-3.12.3}/docs/plugins/api-reference.md +0 -0
  99. {janito-3.12.2 → janito-3.12.3}/docs/plugins/architecture.md +0 -0
  100. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
  101. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/filemanager.md +0 -0
  102. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/imagedisplay.md +0 -0
  103. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/pythondev.md +0 -0
  104. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/system.md +0 -0
  105. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/userinterface.md +0 -0
  106. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/visualization.md +0 -0
  107. {janito-3.12.2 → janito-3.12.3}/docs/plugins/built-in-plugins/webtools.md +0 -0
  108. {janito-3.12.2 → janito-3.12.3}/docs/plugins/configuration.md +0 -0
  109. {janito-3.12.2 → janito-3.12.3}/docs/plugins/examples/advanced.md +0 -0
  110. {janito-3.12.2 → janito-3.12.3}/docs/plugins/examples/basic.md +0 -0
  111. {janito-3.12.2 → janito-3.12.3}/docs/plugins/examples/intermediate.md +0 -0
  112. {janito-3.12.2 → janito-3.12.3}/docs/plugins/plugin-development.md +0 -0
  113. {janito-3.12.2 → janito-3.12.3}/docs/plugins/plugin-resources.md +0 -0
  114. {janito-3.12.2 → janito-3.12.3}/docs/plugins/publishing.md +0 -0
  115. {janito-3.12.2 → janito-3.12.3}/docs/plugins/remote-plugins.md +0 -0
  116. {janito-3.12.2 → janito-3.12.3}/docs/plugins/testing.md +0 -0
  117. {janito-3.12.2 → janito-3.12.3}/docs/provider-platform-access.md +0 -0
  118. {janito-3.12.2 → janito-3.12.3}/docs/public-sources.md +0 -0
  119. {janito-3.12.2 → janito-3.12.3}/docs/reference/api.md +0 -0
  120. {janito-3.12.2 → janito-3.12.3}/docs/reference/azure-openai.md +0 -0
  121. {janito-3.12.2 → janito-3.12.3}/docs/reference/cli-options.md +0 -0
  122. {janito-3.12.2 → janito-3.12.3}/docs/reference/message-handler-model.md +0 -0
  123. {janito-3.12.2 → janito-3.12.3}/docs/reference/rich-message-handler.md +0 -0
  124. {janito-3.12.2 → janito-3.12.3}/docs/security.md +0 -0
  125. {janito-3.12.2 → janito-3.12.3}/docs/supported-providers-models.md +0 -0
  126. {janito-3.12.2 → janito-3.12.3}/docs/tools/search-text.md +0 -0
  127. {janito-3.12.2 → janito-3.12.3}/docs/tools/show-image-grid.md +0 -0
  128. {janito-3.12.2 → janito-3.12.3}/docs/tools/show-image.md +0 -0
  129. {janito-3.12.2 → janito-3.12.3}/docs/tools-index.md +0 -0
  130. {janito-3.12.2 → janito-3.12.3}/docs/tools-natural-results.md +0 -0
  131. {janito-3.12.2 → janito-3.12.3}/docs/tools-precision.md +0 -0
  132. {janito-3.12.2 → janito-3.12.3}/docs/z-ai-setup.md +0 -0
  133. {janito-3.12.2 → janito-3.12.3}/examples/loop_protection_example.py +0 -0
  134. {janito-3.12.2 → janito-3.12.3}/examples/loop_protection_tool_example.py +0 -0
  135. {janito-3.12.2 → janito-3.12.3}/get_nasdaq_top.py +0 -0
  136. {janito-3.12.2 → janito-3.12.3}/ibm-logo.txt +0 -0
  137. {janito-3.12.2 → janito-3.12.3}/janito/README.md +0 -0
  138. {janito-3.12.2 → janito-3.12.3}/janito/__init__.py +0 -0
  139. {janito-3.12.2 → janito-3.12.3}/janito/__main__.py +0 -0
  140. {janito-3.12.2 → janito-3.12.3}/janito/_version.py +0 -0
  141. {janito-3.12.2 → janito-3.12.3}/janito/agent/setup_agent.py +0 -0
  142. {janito-3.12.2 → janito-3.12.3}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
  143. {janito-3.12.2 → janito-3.12.3}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
  144. {janito-3.12.2 → janito-3.12.3}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
  145. {janito-3.12.2 → janito-3.12.3}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
  146. {janito-3.12.2 → janito-3.12.3}/janito/agent_events.py +0 -0
  147. {janito-3.12.2 → janito-3.12.3}/janito/cli/__init__.py +0 -0
  148. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/bindings.py +0 -0
  149. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/chat_entry.py +0 -0
  150. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/prompt_style.py +0 -0
  151. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/script_runner.py +0 -0
  152. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/session.py +0 -0
  153. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  154. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  155. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  156. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  157. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  158. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  159. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  160. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  161. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  162. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  163. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  164. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/interactive.py +0 -0
  165. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  166. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  167. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  168. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  169. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  170. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
  171. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  172. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  173. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
  174. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
  175. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
  176. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  177. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  178. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  179. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
  180. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  181. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  182. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  183. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  184. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/input_history.py +0 -0
  185. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  186. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/session/history.py +0 -0
  187. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  188. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  189. {janito-3.12.2 → janito-3.12.3}/janito/cli/chat_mode/toolbar.py +0 -0
  190. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
  191. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_config.py +0 -0
  192. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_drivers.py +0 -0
  193. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_models.py +0 -0
  194. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_plugins.py +0 -0
  195. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_profiles.py +0 -0
  196. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_providers.py +0 -0
  197. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_providers_region.py +0 -0
  198. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/list_tools.py +0 -0
  199. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/model_selection.py +0 -0
  200. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/model_utils.py +0 -0
  201. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/ping_providers.py +0 -0
  202. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/set_api_key.py +0 -0
  203. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/show_config.py +0 -0
  204. {janito-3.12.2 → janito-3.12.3}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  205. {janito-3.12.2 → janito-3.12.3}/janito/cli/config.py +0 -0
  206. {janito-3.12.2 → janito-3.12.3}/janito/cli/console.py +0 -0
  207. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/__init__.py +0 -0
  208. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/event_logger.py +0 -0
  209. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/getters.py +0 -0
  210. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/model_guesser.py +0 -0
  211. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/runner.py +0 -0
  212. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/setters.py +0 -0
  213. {janito-3.12.2 → janito-3.12.3}/janito/cli/core/unsetters.py +0 -0
  214. {janito-3.12.2 → janito-3.12.3}/janito/cli/main.py +0 -0
  215. {janito-3.12.2 → janito-3.12.3}/janito/cli/main_cli.py +0 -0
  216. {janito-3.12.2 → janito-3.12.3}/janito/cli/prompt_core.py +0 -0
  217. {janito-3.12.2 → janito-3.12.3}/janito/cli/prompt_handler.py +0 -0
  218. {janito-3.12.2 → janito-3.12.3}/janito/cli/prompt_setup.py +0 -0
  219. {janito-3.12.2 → janito-3.12.3}/janito/cli/rich_terminal_reporter.py +0 -0
  220. {janito-3.12.2 → janito-3.12.3}/janito/cli/single_shot_mode/__init__.py +0 -0
  221. {janito-3.12.2 → janito-3.12.3}/janito/cli/single_shot_mode/handler.py +0 -0
  222. {janito-3.12.2 → janito-3.12.3}/janito/cli/utils.py +0 -0
  223. {janito-3.12.2 → janito-3.12.3}/janito/cli/verbose_output.py +0 -0
  224. {janito-3.12.2 → janito-3.12.3}/janito/config.py +0 -0
  225. {janito-3.12.2 → janito-3.12.3}/janito/config_manager.py +0 -0
  226. {janito-3.12.2 → janito-3.12.3}/janito/conversation_history.py +0 -0
  227. {janito-3.12.2 → janito-3.12.3}/janito/dir_walk_utils.py +0 -0
  228. {janito-3.12.2 → janito-3.12.3}/janito/docs/GETTING_STARTED.md +0 -0
  229. {janito-3.12.2 → janito-3.12.3}/janito/driver_events.py +0 -0
  230. {janito-3.12.2 → janito-3.12.3}/janito/drivers/azure_openai/driver.py +0 -0
  231. {janito-3.12.2 → janito-3.12.3}/janito/drivers/cerebras/__init__.py +0 -0
  232. {janito-3.12.2 → janito-3.12.3}/janito/drivers/dashscope.bak.zip +0 -0
  233. {janito-3.12.2 → janito-3.12.3}/janito/drivers/openai/README.md +0 -0
  234. {janito-3.12.2 → janito-3.12.3}/janito/drivers/openai/driver.py +0 -0
  235. {janito-3.12.2 → janito-3.12.3}/janito/drivers/openai_responses.bak.zip +0 -0
  236. {janito-3.12.2 → janito-3.12.3}/janito/drivers/zai/__init__.py +0 -0
  237. {janito-3.12.2 → janito-3.12.3}/janito/drivers/zai/driver.py +0 -0
  238. {janito-3.12.2 → janito-3.12.3}/janito/event_bus/__init__.py +0 -0
  239. {janito-3.12.2 → janito-3.12.3}/janito/event_bus/bus.py +0 -0
  240. {janito-3.12.2 → janito-3.12.3}/janito/event_bus/event.py +0 -0
  241. {janito-3.12.2 → janito-3.12.3}/janito/event_bus/handler.py +0 -0
  242. {janito-3.12.2 → janito-3.12.3}/janito/event_bus/queue_bus.py +0 -0
  243. {janito-3.12.2 → janito-3.12.3}/janito/exceptions.py +0 -0
  244. {janito-3.12.2 → janito-3.12.3}/janito/formatting.py +0 -0
  245. {janito-3.12.2 → janito-3.12.3}/janito/formatting_token.py +0 -0
  246. {janito-3.12.2 → janito-3.12.3}/janito/gitignore_utils.py +0 -0
  247. {janito-3.12.2 → janito-3.12.3}/janito/hello.txt +0 -0
  248. {janito-3.12.2 → janito-3.12.3}/janito/i18n/__init__.py +0 -0
  249. {janito-3.12.2 → janito-3.12.3}/janito/i18n/it.py +0 -0
  250. {janito-3.12.2 → janito-3.12.3}/janito/i18n/messages.py +0 -0
  251. {janito-3.12.2 → janito-3.12.3}/janito/i18n/pt.py +0 -0
  252. {janito-3.12.2 → janito-3.12.3}/janito/llm/README.md +0 -0
  253. {janito-3.12.2 → janito-3.12.3}/janito/llm/__init__.py +0 -0
  254. {janito-3.12.2 → janito-3.12.3}/janito/llm/agent.py +0 -0
  255. {janito-3.12.2 → janito-3.12.3}/janito/llm/auth.py +0 -0
  256. {janito-3.12.2 → janito-3.12.3}/janito/llm/auth_utils.py +0 -0
  257. {janito-3.12.2 → janito-3.12.3}/janito/llm/driver.py +0 -0
  258. {janito-3.12.2 → janito-3.12.3}/janito/llm/driver_config.py +0 -0
  259. {janito-3.12.2 → janito-3.12.3}/janito/llm/driver_config_builder.py +0 -0
  260. {janito-3.12.2 → janito-3.12.3}/janito/llm/driver_input.py +0 -0
  261. {janito-3.12.2 → janito-3.12.3}/janito/llm/message_parts.py +0 -0
  262. {janito-3.12.2 → janito-3.12.3}/janito/llm/model.py +0 -0
  263. {janito-3.12.2 → janito-3.12.3}/janito/llm/provider.py +0 -0
  264. {janito-3.12.2 → janito-3.12.3}/janito/llm/response_cache.py +0 -0
  265. {janito-3.12.2 → janito-3.12.3}/janito/perf_singleton.py +0 -0
  266. {janito-3.12.2 → janito-3.12.3}/janito/performance_collector.py +0 -0
  267. {janito-3.12.2 → janito-3.12.3}/janito/platform_discovery.py +0 -0
  268. {janito-3.12.2 → janito-3.12.3}/janito/plugins/__init__.py +0 -0
  269. {janito-3.12.2 → janito-3.12.3}/janito/plugins/auto_loader.py +0 -0
  270. {janito-3.12.2 → janito-3.12.3}/janito/plugins/auto_loader_fixed.py +0 -0
  271. {janito-3.12.2 → janito-3.12.3}/janito/plugins/base.py +0 -0
  272. {janito-3.12.2 → janito-3.12.3}/janito/plugins/builtin.py +0 -0
  273. {janito-3.12.2 → janito-3.12.3}/janito/plugins/config.py +0 -0
  274. {janito-3.12.2 → janito-3.12.3}/janito/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
  275. {janito-3.12.2 → janito-3.12.3}/janito/plugins/core/filemanager/tools/validate_file_syntax/core.py +0 -0
  276. {janito-3.12.2 → janito-3.12.3}/janito/plugins/core/filemanager/tools/validate_file_syntax/txt_validator.py +0 -0
  277. {janito-3.12.2 → janito-3.12.3}/janito/plugins/core_adapter.py +0 -0
  278. {janito-3.12.2 → janito-3.12.3}/janito/plugins/core_loader.py +0 -0
  279. {janito-3.12.2 → janito-3.12.3}/janito/plugins/core_loader_fixed.py +0 -0
  280. {janito-3.12.2 → janito-3.12.3}/janito/plugins/discovery.py +0 -0
  281. {janito-3.12.2 → janito-3.12.3}/janito/plugins/discovery_core.py +0 -0
  282. {janito-3.12.2 → janito-3.12.3}/janito/plugins/manager.py +0 -0
  283. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/__init__.py +0 -0
  284. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/__init__.py +0 -0
  285. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/adapter.py +0 -0
  286. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/ask_user.py +0 -0
  287. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/copy_file.py +0 -0
  288. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/create_directory.py +0 -0
  289. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/create_file.py +0 -0
  290. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/delete_text_in_file.py +0 -0
  291. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/fetch_url.py +0 -0
  292. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/find_files.py +0 -0
  293. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/get_file_outline/__init__.py +0 -0
  294. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/get_file_outline/core.py +0 -0
  295. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/get_file_outline/java_outline.py +0 -0
  296. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/get_file_outline/markdown_outline.py +0 -0
  297. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/get_file_outline/python_outline.py +0 -0
  298. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/get_file_outline/search_outline.py +0 -0
  299. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/markdown_view.py +0 -0
  300. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/move_file.py +0 -0
  301. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/open_html_in_browser.py +0 -0
  302. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/open_url.py +0 -0
  303. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/python_code_run.py +0 -0
  304. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/python_command_run.py +0 -0
  305. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/python_file_run.py +0 -0
  306. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/read_chart.py +0 -0
  307. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/remove_directory.py +0 -0
  308. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/remove_file.py +0 -0
  309. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/run_bash_command.py +0 -0
  310. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/run_powershell_command.py +0 -0
  311. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/search_text/__init__.py +0 -0
  312. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/search_text/match_lines.py +0 -0
  313. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/search_text/pattern_utils.py +0 -0
  314. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/search_text/traverse_directory.py +0 -0
  315. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/show_image.py +0 -0
  316. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/show_image_grid.py +0 -0
  317. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/__init__.py +0 -0
  318. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/core.py +0 -0
  319. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/css_validator.py +0 -0
  320. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/html_validator.py +0 -0
  321. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/jinja2_validator.py +0 -0
  322. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/js_validator.py +0 -0
  323. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/json_validator.py +0 -0
  324. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/markdown_validator.py +0 -0
  325. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/ps1_validator.py +0 -0
  326. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/python_validator.py +0 -0
  327. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/txt_validator.py +0 -0
  328. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/xml_validator.py +0 -0
  329. {janito-3.12.2 → janito-3.12.3}/janito/plugins/tools/local/validate_file_syntax/yaml_validator.py +0 -0
  330. {janito-3.12.2 → janito-3.12.3}/janito/provider_config.py +0 -0
  331. {janito-3.12.2 → janito-3.12.3}/janito/provider_registry.py +0 -0
  332. {janito-3.12.2 → janito-3.12.3}/janito/providers/__init__.py +0 -0
  333. {janito-3.12.2 → janito-3.12.3}/janito/providers/alibaba/__init__.py +0 -0
  334. {janito-3.12.2 → janito-3.12.3}/janito/providers/alibaba/model_info.py +0 -0
  335. {janito-3.12.2 → janito-3.12.3}/janito/providers/anthropic/model_info.py +0 -0
  336. {janito-3.12.2 → janito-3.12.3}/janito/providers/anthropic/provider.py +0 -0
  337. {janito-3.12.2 → janito-3.12.3}/janito/providers/azure_openai/model_info.py +0 -0
  338. {janito-3.12.2 → janito-3.12.3}/janito/providers/azure_openai/provider.py +0 -0
  339. {janito-3.12.2 → janito-3.12.3}/janito/providers/cerebras/__init__.py +0 -0
  340. {janito-3.12.2 → janito-3.12.3}/janito/providers/cerebras/model_info.py +0 -0
  341. {janito-3.12.2 → janito-3.12.3}/janito/providers/cerebras/provider.py +0 -0
  342. {janito-3.12.2 → janito-3.12.3}/janito/providers/dashscope.bak.zip +0 -0
  343. {janito-3.12.2 → janito-3.12.3}/janito/providers/deepseek/__init__.py +0 -0
  344. {janito-3.12.2 → janito-3.12.3}/janito/providers/deepseek/model_info.py +0 -0
  345. {janito-3.12.2 → janito-3.12.3}/janito/providers/deepseek/provider.py +0 -0
  346. {janito-3.12.2 → janito-3.12.3}/janito/providers/google/__init__.py +0 -0
  347. {janito-3.12.2 → janito-3.12.3}/janito/providers/google/model_info.py +0 -0
  348. {janito-3.12.2 → janito-3.12.3}/janito/providers/google/provider.py +0 -0
  349. {janito-3.12.2 → janito-3.12.3}/janito/providers/ibm/README.md +0 -0
  350. {janito-3.12.2 → janito-3.12.3}/janito/providers/ibm/__init__.py +0 -0
  351. {janito-3.12.2 → janito-3.12.3}/janito/providers/ibm/model_info.py +0 -0
  352. {janito-3.12.2 → janito-3.12.3}/janito/providers/ibm/provider.py +0 -0
  353. {janito-3.12.2 → janito-3.12.3}/janito/providers/mistral/__init__.py +0 -0
  354. {janito-3.12.2 → janito-3.12.3}/janito/providers/mistral/model_info.py +0 -0
  355. {janito-3.12.2 → janito-3.12.3}/janito/providers/mistral/provider.py +0 -0
  356. {janito-3.12.2 → janito-3.12.3}/janito/providers/moonshot/__init__.py +0 -0
  357. {janito-3.12.2 → janito-3.12.3}/janito/providers/moonshot/model_info.py +0 -0
  358. {janito-3.12.2 → janito-3.12.3}/janito/providers/moonshot/provider.py +0 -0
  359. {janito-3.12.2 → janito-3.12.3}/janito/providers/openai/__init__.py +0 -0
  360. {janito-3.12.2 → janito-3.12.3}/janito/providers/openai/model_info.py +0 -0
  361. {janito-3.12.2 → janito-3.12.3}/janito/providers/openai/provider.py +0 -0
  362. {janito-3.12.2 → janito-3.12.3}/janito/providers/openai/schema_generator.py +0 -0
  363. {janito-3.12.2 → janito-3.12.3}/janito/providers/registry.py +0 -0
  364. {janito-3.12.2 → janito-3.12.3}/janito/providers/zai/__init__.py +0 -0
  365. {janito-3.12.2 → janito-3.12.3}/janito/providers/zai/model_info.py +0 -0
  366. {janito-3.12.2 → janito-3.12.3}/janito/providers/zai/provider.py +0 -0
  367. {janito-3.12.2 → janito-3.12.3}/janito/providers/zai/schema_generator.py +0 -0
  368. {janito-3.12.2 → janito-3.12.3}/janito/regions/__init__.py +0 -0
  369. {janito-3.12.2 → janito-3.12.3}/janito/regions/cli.py +0 -0
  370. {janito-3.12.2 → janito-3.12.3}/janito/regions/geo_utils.py +0 -0
  371. {janito-3.12.2 → janito-3.12.3}/janito/regions/provider_regions.py +0 -0
  372. {janito-3.12.2 → janito-3.12.3}/janito/report_events.py +0 -0
  373. {janito-3.12.2 → janito-3.12.3}/janito/shell.bak.zip +0 -0
  374. {janito-3.12.2 → janito-3.12.3}/janito/tests/test_tool_adapter_case_insensitive.py +0 -0
  375. {janito-3.12.2 → janito-3.12.3}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  376. {janito-3.12.2 → janito-3.12.3}/janito/tools/README.md +0 -0
  377. {janito-3.12.2 → janito-3.12.3}/janito/tools/__init__.py +0 -0
  378. {janito-3.12.2 → janito-3.12.3}/janito/tools/base.py +0 -0
  379. {janito-3.12.2 → janito-3.12.3}/janito/tools/disabled_tools.py +0 -0
  380. {janito-3.12.2 → janito-3.12.3}/janito/tools/function_adapter.py +0 -0
  381. {janito-3.12.2 → janito-3.12.3}/janito/tools/inspect_registry.py +0 -0
  382. {janito-3.12.2 → janito-3.12.3}/janito/tools/loop_protection.py +0 -0
  383. {janito-3.12.2 → janito-3.12.3}/janito/tools/loop_protection_decorator.py +0 -0
  384. {janito-3.12.2 → janito-3.12.3}/janito/tools/outline_file.bak.zip +0 -0
  385. {janito-3.12.2 → janito-3.12.3}/janito/tools/path_security.py +0 -0
  386. {janito-3.12.2 → janito-3.12.3}/janito/tools/path_utils.py +0 -0
  387. {janito-3.12.2 → janito-3.12.3}/janito/tools/permissions.py +0 -0
  388. {janito-3.12.2 → janito-3.12.3}/janito/tools/permissions_parse.py +0 -0
  389. {janito-3.12.2 → janito-3.12.3}/janito/tools/tool_base.py +0 -0
  390. {janito-3.12.2 → janito-3.12.3}/janito/tools/tool_events.py +0 -0
  391. {janito-3.12.2 → janito-3.12.3}/janito/tools/tool_run_exception.py +0 -0
  392. {janito-3.12.2 → janito-3.12.3}/janito/tools/tool_use_tracker.py +0 -0
  393. {janito-3.12.2 → janito-3.12.3}/janito/tools/tool_utils.py +0 -0
  394. {janito-3.12.2 → janito-3.12.3}/janito/tools/tools_adapter.py +0 -0
  395. {janito-3.12.2 → janito-3.12.3}/janito/tools/tools_schema.py +0 -0
  396. {janito-3.12.2 → janito-3.12.3}/janito/tools/url_whitelist.py +0 -0
  397. {janito-3.12.2 → janito-3.12.3}/janito/utils.py +0 -0
  398. {janito-3.12.2 → janito-3.12.3}/janito.egg-info/SOURCES.txt +0 -0
  399. {janito-3.12.2 → janito-3.12.3}/janito.egg-info/dependency_links.txt +0 -0
  400. {janito-3.12.2 → janito-3.12.3}/janito.egg-info/entry_points.txt +0 -0
  401. {janito-3.12.2 → janito-3.12.3}/janito.egg-info/requires.txt +0 -0
  402. {janito-3.12.2 → janito-3.12.3}/janito.egg-info/top_level.txt +0 -0
  403. {janito-3.12.2 → janito-3.12.3}/market_prompt_fix.py +0 -0
  404. {janito-3.12.2 → janito-3.12.3}/mkdocs.log +0 -0
  405. {janito-3.12.2 → janito-3.12.3}/mkdocs.yml +0 -0
  406. {janito-3.12.2 → janito-3.12.3}/mkdocs_hooks.py +0 -0
  407. {janito-3.12.2 → janito-3.12.3}/penguin_ascii.py +0 -0
  408. {janito-3.12.2 → janito-3.12.3}/plugins/__init__.py +0 -0
  409. {janito-3.12.2 → janito-3.12.3}/plugins/core/__init__.py +0 -0
  410. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/__init__.py +0 -0
  411. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py +0 -0
  412. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/get_file_outline/core.py +0 -0
  413. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/get_file_outline/java_outline.py +0 -0
  414. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/get_file_outline/markdown_outline.py +0 -0
  415. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/get_file_outline/python_outline.py +0 -0
  416. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/get_file_outline/search_outline.py +0 -0
  417. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/search_text/__init__.py +0 -0
  418. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/search_text/match_lines.py +0 -0
  419. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/search_text/pattern_utils.py +0 -0
  420. {janito-3.12.2 → janito-3.12.3}/plugins/core/codeanalyzer/tools/search_text/traverse_directory.py +0 -0
  421. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/__init__.py +0 -0
  422. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/copy_file.py +0 -0
  423. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/create_file.py +0 -0
  424. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/delete_text_in_file.py +0 -0
  425. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/find_files.py +0 -0
  426. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/move_file.py +0 -0
  427. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/read_files.py +0 -0
  428. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/remove_directory.py +0 -0
  429. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/remove_file.py +0 -0
  430. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
  431. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/core.py +0 -0
  432. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/css_validator.py +0 -0
  433. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/html_validator.py +0 -0
  434. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/jinja2_validator.py +0 -0
  435. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/js_validator.py +0 -0
  436. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/json_validator.py +0 -0
  437. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/markdown_validator.py +0 -0
  438. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/ps1_validator.py +0 -0
  439. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/python_validator.py +0 -0
  440. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/xml_validator.py +0 -0
  441. {janito-3.12.2 → janito-3.12.3}/plugins/core/filemanager/tools/validate_file_syntax/yaml_validator.py +0 -0
  442. {janito-3.12.2 → janito-3.12.3}/plugins/core/imagedisplay/__init__.py +0 -0
  443. {janito-3.12.2 → janito-3.12.3}/plugins/core/imagedisplay/plugin.py +0 -0
  444. {janito-3.12.2 → janito-3.12.3}/plugins/core/imagedisplay/tools/__init__.py +0 -0
  445. {janito-3.12.2 → janito-3.12.3}/plugins/core/imagedisplay/tools/show_image.py +0 -0
  446. {janito-3.12.2 → janito-3.12.3}/plugins/core/imagedisplay/tools/show_image_grid.py +0 -0
  447. {janito-3.12.2 → janito-3.12.3}/plugins/core/system/__init__.py +0 -0
  448. {janito-3.12.2 → janito-3.12.3}/plugins/core/system/tools/run_bash_command.py +0 -0
  449. {janito-3.12.2 → janito-3.12.3}/plugins/core/system/tools/run_powershell_command.py +0 -0
  450. {janito-3.12.2 → janito-3.12.3}/plugins/dev/__init__.py +0 -0
  451. {janito-3.12.2 → janito-3.12.3}/plugins/dev/pythondev/__init__.py +0 -0
  452. {janito-3.12.2 → janito-3.12.3}/plugins/dev/pythondev/tools/python_code_run.py +0 -0
  453. {janito-3.12.2 → janito-3.12.3}/plugins/dev/pythondev/tools/python_command_run.py +0 -0
  454. {janito-3.12.2 → janito-3.12.3}/plugins/dev/pythondev/tools/python_file_run.py +0 -0
  455. {janito-3.12.2 → janito-3.12.3}/plugins/dev/visualization/__init__.py +0 -0
  456. {janito-3.12.2 → janito-3.12.3}/plugins/dev/visualization/tools/read_chart.py +0 -0
  457. {janito-3.12.2 → janito-3.12.3}/plugins/example_plugin.py +0 -0
  458. {janito-3.12.2 → janito-3.12.3}/plugins/ui/__init__.py +0 -0
  459. {janito-3.12.2 → janito-3.12.3}/plugins/ui/userinterface/__init__.py +0 -0
  460. {janito-3.12.2 → janito-3.12.3}/plugins/ui/userinterface/tools/ask_user.py +0 -0
  461. {janito-3.12.2 → janito-3.12.3}/plugins/web/__init__.py +0 -0
  462. {janito-3.12.2 → janito-3.12.3}/plugins/web/webtools/__init__.py +0 -0
  463. {janito-3.12.2 → janito-3.12.3}/plugins/web/webtools/tools/fetch_url.py +0 -0
  464. {janito-3.12.2 → janito-3.12.3}/plugins/web/webtools/tools/open_html_in_browser.py +0 -0
  465. {janito-3.12.2 → janito-3.12.3}/plugins/web/webtools/tools/open_url.py +0 -0
  466. {janito-3.12.2 → janito-3.12.3}/pyproject.toml +0 -0
  467. {janito-3.12.2 → janito-3.12.3}/requirements-dev.txt +0 -0
  468. {janito-3.12.2 → janito-3.12.3}/requirements.txt +0 -0
  469. {janito-3.12.2 → janito-3.12.3}/setup.cfg +0 -0
  470. {janito-3.12.2 → janito-3.12.3}/tests/local/get_file_outline/test_core_outline.py +0 -0
  471. {janito-3.12.2 → janito-3.12.3}/tests/local/test_read_file/__init__.py +0 -0
  472. {janito-3.12.2 → janito-3.12.3}/tests/local/test_read_file/read_file.py +0 -0
  473. {janito-3.12.2 → janito-3.12.3}/tests/local/test_read_file/test_read_file.py +0 -0
  474. {janito-3.12.2 → janito-3.12.3}/tests/local/test_read_files.py +0 -0
  475. {janito-3.12.2 → janito-3.12.3}/tests/test_cli_list_models.py +0 -0
  476. {janito-3.12.2 → janito-3.12.3}/tests/test_cli_list_providers.py +0 -0
  477. {janito-3.12.2 → janito-3.12.3}/tests/test_cli_list_providers_alibaba.py +0 -0
  478. {janito-3.12.2 → janito-3.12.3}/tests/test_cli_list_providers_moonshot.py +0 -0
  479. {janito-3.12.2 → janito-3.12.3}/tests/test_cli_version.py +0 -0
  480. {janito-3.12.2 → janito-3.12.3}/tests/test_disabled_tools.py +0 -0
  481. {janito-3.12.2 → janito-3.12.3}/tests/test_plugin_system.py +0 -0
  482. {janito-3.12.2 → janito-3.12.3}/tests/test_provider_alibaba.py +0 -0
  483. {janito-3.12.2 → janito-3.12.3}/tests/test_provider_cerebras.py +0 -0
  484. {janito-3.12.2 → janito-3.12.3}/tests/test_provider_moonshot.py +0 -0
  485. {janito-3.12.2 → janito-3.12.3}/tools/release.py +0 -0
  486. {janito-3.12.2 → janito-3.12.3}/tox.ini +0 -0
  487. {janito-3.12.2 → janito-3.12.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 3.12.2
3
+ Version: 3.12.3
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
@@ -1,49 +1,49 @@
1
- # Changelog
2
-
3
- All notable changes to Janito will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ### Removed
11
-
12
- - **Breaking Change**: Removed `--role` argument and interactive profile selection
13
- - The `--role` argument has been completely removed from the CLI
14
- - Interactive profile selection has been removed from chat mode
15
- - Use `--profile <name>` or shorthand flags like `--developer` and `--market` instead
16
- - Default behavior now uses the Developer profile when no profile is specified
17
-
18
- ### Changed
19
-
20
- - Updated documentation to reflect removal of role argument
21
- - Added comprehensive profile documentation in `PROFILES.md`
22
- - Simplified profile selection to use explicit flags only
23
-
24
- ## [Previous Versions]
25
-
26
- ### Added
27
-
28
- - Initial support for profiles and roles
29
- - Interactive profile selection in chat mode
30
- - `--role` argument for specifying developer roles
31
- - `--profile` argument for system prompt templates
32
- - `--developer` and `--market` shorthand flags
33
-
34
- ### Available Profiles
35
-
36
- - **Developer**: Optimized for software development tasks
37
- - **Market Analyst**: Specialized for market analysis and business insights
38
-
39
- ### Supported Providers
40
-
41
- - Moonshot AI (default)
42
- - OpenAI
43
- - Anthropic
44
- - IBM WatsonX
45
- - Google AI
46
-
47
- ---
48
-
1
+ # Changelog
2
+
3
+ All notable changes to Janito will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [3.12.3] - 2025-09-12
9
+
10
+ ### Removed
11
+
12
+ - **Breaking Change**: Removed `--role` argument and interactive profile selection
13
+ - The `--role` argument has been completely removed from the CLI
14
+ - Interactive profile selection has been removed from chat mode
15
+ - Use `--profile <name>` or shorthand flags like `--developer` and `--market` instead
16
+ - Default behavior now uses the Developer profile when no profile is specified
17
+
18
+ ### Changed
19
+
20
+ - Updated documentation to reflect removal of role argument
21
+ - Added comprehensive profile documentation in `PROFILES.md`
22
+ - Simplified profile selection to use explicit flags only
23
+
24
+ ## [Previous Versions]
25
+
26
+ ### Added
27
+
28
+ - Initial support for profiles and roles
29
+ - Interactive profile selection in chat mode
30
+ - `--role` argument for specifying developer roles
31
+ - `--profile` argument for system prompt templates
32
+ - `--developer` and `--market` shorthand flags
33
+
34
+ ### Available Profiles
35
+
36
+ - **Developer**: Optimized for software development tasks
37
+ - **Market Analyst**: Specialized for market analysis and business insights
38
+
39
+ ### Supported Providers
40
+
41
+ - Moonshot AI (default)
42
+ - OpenAI
43
+ - Anthropic
44
+ - IBM WatsonX
45
+ - Google AI
46
+
47
+ ---
48
+
49
49
  For detailed information about profiles and their usage, see [PROFILES.md](PROFILES.md).
@@ -43,7 +43,7 @@ class ReadFilesTool(ToolBase):
43
43
  with open(path, "r", encoding="utf-8", errors="replace") as f:
44
44
  content = f.read()
45
45
  results.append(f"--- File: {disp_path} ---\n{content}\n")
46
- self.report_success(tr("✅ Read {disp_path}", disp_path=disp_path))
46
+ self.report_success(tr("✅ Read {disp_path}", disp_path=""))
47
47
  except Exception as e:
48
48
  self.report_error(
49
49
  tr(
@@ -43,7 +43,7 @@ class ReplaceTextInFileTool(ToolBase):
43
43
  from janito.tools.tool_utils import display_path
44
44
 
45
45
  disp_path = display_path(path)
46
- action = "(all)" if replace_all else ""
46
+ action = "" if replace_all else ""
47
47
  search_lines = len(search_text.splitlines())
48
48
  replace_lines = len(replacement_text.splitlines())
49
49
  info_msg = self._format_info_msg(
@@ -98,7 +98,7 @@ class SearchTextTool(ToolBase):
98
98
  if max_depth > 0:
99
99
  info_str += tr(" [max_depth={max_depth}]", max_depth=max_depth)
100
100
  if count_only:
101
- info_str += " [count]"
101
+ info_str += " 🔢"
102
102
  self.report_action(info_str, ReportAction.READ)
103
103
  if os.path.isfile(search_path):
104
104
  dir_output, dir_limit_reached, per_file_counts = self._handle_file(
@@ -141,7 +141,7 @@ class SearchTextTool(ToolBase):
141
141
  file_word = pluralize("match", count)
142
142
  num_files = len(per_file_counts)
143
143
  file_label = pluralize("file", num_files)
144
- file_word_max = file_word + (" (max)" if dir_limit_reached else "")
144
+ file_word_max = file_word + (" 🛑" if dir_limit_reached else "")
145
145
  self.report_success(
146
146
  tr(
147
147
  " ✅ {count} {file_word}/{num_files} {file_label}",
@@ -21,7 +21,7 @@ class ViewFileTool(ToolBase):
21
21
  Returns:
22
22
  str: File content with a header indicating the file name and line range. Example:
23
23
  - "---\nFile: /path/to/file.py | Lines: 1-10 (of 100)\n---\n<lines...>"
24
- - "---\nFile: /path/to/file.py | All lines (total: 100 (all))\n---\n<all lines...>"
24
+ - "---\nFile: /path/to/file.py | All lines (total: 100 )\n---\n<all lines...>"
25
25
  - "Error reading file: <error message>"
26
26
  - "❗ not found"
27
27
  """
@@ -123,7 +123,7 @@ class ViewFileTool(ToolBase):
123
123
  else:
124
124
  self.report_success(
125
125
  tr(
126
- " ✅ {selected_len} {line_word} (all)",
126
+ " ✅ {selected_len} {line_word} ",
127
127
  selected_len=selected_len,
128
128
  line_word=pluralize("line", selected_len),
129
129
  )
@@ -158,7 +158,7 @@ class ViewFileTool(ToolBase):
158
158
  )
159
159
  else:
160
160
  return tr(
161
- "---\n{disp_path} All lines (total: {total_lines} (all))\n---\n",
161
+ "---\n{disp_path} All lines (total: {total_lines} )\n---\n",
162
162
  disp_path=disp_path,
163
163
  total_lines=total_lines,
164
164
  )
@@ -1,104 +1,104 @@
1
- from janito.llm.provider import LLMProvider
2
- from janito.llm.model import LLMModelInfo
3
- from janito.llm.auth import LLMAuthManager
4
- from janito.llm.driver_config import LLMDriverConfig
5
- from janito.drivers.openai.driver import OpenAIModelDriver
6
- from janito.tools import get_local_tools_adapter
7
- from janito.providers.registry import LLMProviderRegistry
8
- from .model_info import MODEL_SPECS
9
- from queue import Queue
10
-
11
- available = OpenAIModelDriver.available
12
- unavailable_reason = OpenAIModelDriver.unavailable_reason
13
-
14
-
15
- class AlibabaProvider(LLMProvider):
16
- name = "alibaba"
17
- NAME = "alibaba"
18
- MAINTAINER = "João Pinto <janito@ikignosis.org>"
19
- MODEL_SPECS = MODEL_SPECS
20
- DEFAULT_MODEL = "qwen3-max-preview" # 128k context, latest preview model
21
-
22
- def __init__(
23
- self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None
24
- ):
25
- # Always set a tools adapter so that even if the driver is unavailable,
26
- # generic code paths that expect provider.execute_tool() continue to work.
27
- self._tools_adapter = get_local_tools_adapter()
28
-
29
- # Always initialize _driver_config to avoid AttributeError
30
- self._driver_config = config or LLMDriverConfig(model=None)
31
-
32
- if not self.available:
33
- self._driver = None
34
- else:
35
- self.auth_manager = auth_manager or LLMAuthManager()
36
- self._api_key = self.auth_manager.get_credentials(type(self).NAME)
37
- if not self._api_key:
38
- from janito.llm.auth_utils import handle_missing_api_key
39
-
40
- handle_missing_api_key(self.name, "ALIBABA_API_KEY")
41
-
42
- if not self._driver_config.model:
43
- self._driver_config.model = self.DEFAULT_MODEL
44
- if not self._driver_config.api_key:
45
- self._driver_config.api_key = self._api_key
46
- # Set Alibaba international endpoint as default base_url if not provided
47
- if not getattr(self._driver_config, "base_url", None):
48
- self._driver_config.base_url = (
49
- "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
50
- )
51
- self.fill_missing_device_info(self._driver_config)
52
- self._driver = None # to be provided by factory/agent
53
-
54
- @property
55
- def driver(self) -> OpenAIModelDriver:
56
- if not self.available:
57
- raise ImportError(f"AlibabaProvider unavailable: {self.unavailable_reason}")
58
- return self._driver
59
-
60
- @property
61
- def available(self):
62
- return available
63
-
64
- @property
65
- def unavailable_reason(self):
66
- return unavailable_reason
67
-
68
- def create_driver(self):
69
- """
70
- Creates and returns a new OpenAIModelDriver instance with input/output queues.
71
- """
72
- driver = OpenAIModelDriver(
73
- tools_adapter=self._tools_adapter, provider_name=self.name
74
- )
75
- driver.config = self.driver_config
76
- # NOTE: The caller is responsible for calling driver.start() if background processing is needed.
77
- return driver
78
-
79
- def create_agent(self, tools_adapter=None, agent_name: str = None, **kwargs):
80
- from janito.llm.agent import LLMAgent
81
-
82
- # Always create a new driver with the passed-in tools_adapter
83
- if tools_adapter is None:
84
- tools_adapter = get_local_tools_adapter()
85
- # Should use new-style driver construction via queues/factory (handled elsewhere)
86
- raise NotImplementedError(
87
- "create_agent must be constructed via new factory using input/output queues and config."
88
- )
89
-
90
- @property
91
- def model_name(self):
92
- return self._driver_config.model
93
-
94
- @property
95
- def driver_config(self):
96
- """Public, read-only access to the provider's LLMDriverConfig object."""
97
- return self._driver_config
98
-
99
- def execute_tool(self, tool_name: str, event_bus, *args, **kwargs):
100
- self._tools_adapter.event_bus = event_bus
101
- return self._tools_adapter.execute_by_name(tool_name, *args, **kwargs)
102
-
103
-
104
- LLMProviderRegistry.register(AlibabaProvider.NAME, AlibabaProvider)
1
+ from janito.llm.provider import LLMProvider
2
+ from janito.llm.model import LLMModelInfo
3
+ from janito.llm.auth import LLMAuthManager
4
+ from janito.llm.driver_config import LLMDriverConfig
5
+ from janito.drivers.openai.driver import OpenAIModelDriver
6
+ from janito.tools import get_local_tools_adapter
7
+ from janito.providers.registry import LLMProviderRegistry
8
+ from .model_info import MODEL_SPECS
9
+ from queue import Queue
10
+
11
+ available = OpenAIModelDriver.available
12
+ unavailable_reason = OpenAIModelDriver.unavailable_reason
13
+
14
+
15
+ class AlibabaProvider(LLMProvider):
16
+ name = "alibaba"
17
+ NAME = "alibaba"
18
+ MAINTAINER = "João Pinto <janito@ikignosis.org>"
19
+ MODEL_SPECS = MODEL_SPECS
20
+ DEFAULT_MODEL = "qwen3-next-80b-a3b-instruct" # 256k context, latest Qwen3 Next model
21
+
22
+ def __init__(
23
+ self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None
24
+ ):
25
+ # Always set a tools adapter so that even if the driver is unavailable,
26
+ # generic code paths that expect provider.execute_tool() continue to work.
27
+ self._tools_adapter = get_local_tools_adapter()
28
+
29
+ # Always initialize _driver_config to avoid AttributeError
30
+ self._driver_config = config or LLMDriverConfig(model=None)
31
+
32
+ if not self.available:
33
+ self._driver = None
34
+ else:
35
+ self.auth_manager = auth_manager or LLMAuthManager()
36
+ self._api_key = self.auth_manager.get_credentials(type(self).NAME)
37
+ if not self._api_key:
38
+ from janito.llm.auth_utils import handle_missing_api_key
39
+
40
+ handle_missing_api_key(self.name, "ALIBABA_API_KEY")
41
+
42
+ if not self._driver_config.model:
43
+ self._driver_config.model = self.DEFAULT_MODEL
44
+ if not self._driver_config.api_key:
45
+ self._driver_config.api_key = self._api_key
46
+ # Set Alibaba international endpoint as default base_url if not provided
47
+ if not getattr(self._driver_config, "base_url", None):
48
+ self._driver_config.base_url = (
49
+ "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
50
+ )
51
+ self.fill_missing_device_info(self._driver_config)
52
+ self._driver = None # to be provided by factory/agent
53
+
54
+ @property
55
+ def driver(self) -> OpenAIModelDriver:
56
+ if not self.available:
57
+ raise ImportError(f"AlibabaProvider unavailable: {self.unavailable_reason}")
58
+ return self._driver
59
+
60
+ @property
61
+ def available(self):
62
+ return available
63
+
64
+ @property
65
+ def unavailable_reason(self):
66
+ return unavailable_reason
67
+
68
+ def create_driver(self):
69
+ """
70
+ Creates and returns a new OpenAIModelDriver instance with input/output queues.
71
+ """
72
+ driver = OpenAIModelDriver(
73
+ tools_adapter=self._tools_adapter, provider_name=self.name
74
+ )
75
+ driver.config = self.driver_config
76
+ # NOTE: The caller is responsible for calling driver.start() if background processing is needed.
77
+ return driver
78
+
79
+ def create_agent(self, tools_adapter=None, agent_name: str = None, **kwargs):
80
+ from janito.llm.agent import LLMAgent
81
+
82
+ # Always create a new driver with the passed-in tools_adapter
83
+ if tools_adapter is None:
84
+ tools_adapter = get_local_tools_adapter()
85
+ # Should use new-style driver construction via queues/factory (handled elsewhere)
86
+ raise NotImplementedError(
87
+ "create_agent must be constructed via new factory using input/output queues and config."
88
+ )
89
+
90
+ @property
91
+ def model_name(self):
92
+ return self._driver_config.model
93
+
94
+ @property
95
+ def driver_config(self):
96
+ """Public, read-only access to the provider's LLMDriverConfig object."""
97
+ return self._driver_config
98
+
99
+ def execute_tool(self, tool_name: str, event_bus, *args, **kwargs):
100
+ self._tools_adapter.event_bus = event_bus
101
+ return self._tools_adapter.execute_by_name(tool_name, *args, **kwargs)
102
+
103
+
104
+ LLMProviderRegistry.register(AlibabaProvider.NAME, AlibabaProvider)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 3.12.2
3
+ Version: 3.12.3
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
@@ -98,7 +98,7 @@ class SearchTextTool(ToolBase):
98
98
  if max_depth > 0:
99
99
  info_str += tr(" [max_depth={max_depth}]", max_depth=max_depth)
100
100
  if count_only:
101
- info_str += " [count]"
101
+ info_str += " 🔢"
102
102
  self.report_action(info_str, ReportAction.READ)
103
103
  if os.path.isfile(search_path):
104
104
  dir_output, dir_limit_reached, per_file_counts = self._handle_file(
@@ -141,7 +141,7 @@ class SearchTextTool(ToolBase):
141
141
  file_word = pluralize("match", count)
142
142
  num_files = len(per_file_counts)
143
143
  file_label = pluralize("file", num_files)
144
- file_word_max = file_word + (" (max)" if dir_limit_reached else "")
144
+ file_word_max = file_word + (" 🛑" if dir_limit_reached else "")
145
145
  self.report_success(
146
146
  tr(
147
147
  " ✅ {count} {file_word}/{num_files} {file_label}",
@@ -43,7 +43,7 @@ class ReplaceTextInFileTool(ToolBase):
43
43
  from janito.tools.tool_utils import display_path
44
44
 
45
45
  disp_path = display_path(path)
46
- action = "(all)" if replace_all else ""
46
+ action = "" if replace_all else ""
47
47
  search_lines = len(search_text.splitlines())
48
48
  replace_lines = len(replacement_text.splitlines())
49
49
  info_msg = self._format_info_msg(
@@ -21,7 +21,7 @@ class ViewFileTool(ToolBase):
21
21
  Returns:
22
22
  str: File content with a header indicating the file name and line range. Example:
23
23
  - "---\nFile: /path/to/file.py | Lines: 1-10 (of 100)\n---\n<lines...>"
24
- - "---\nFile: /path/to/file.py | All lines (total: 100 (all))\n---\n<all lines...>"
24
+ - "---\nFile: /path/to/file.py | All lines (total: 100 )\n---\n<all lines...>"
25
25
  - "Error reading file: <error message>"
26
26
  - "❗ not found"
27
27
  """
@@ -123,7 +123,7 @@ class ViewFileTool(ToolBase):
123
123
  else:
124
124
  self.report_success(
125
125
  tr(
126
- " ✅ {selected_len} {line_word} (all)",
126
+ " ✅ {selected_len} {line_word} ",
127
127
  selected_len=selected_len,
128
128
  line_word=pluralize("line", selected_len),
129
129
  )
@@ -158,7 +158,7 @@ class ViewFileTool(ToolBase):
158
158
  )
159
159
  else:
160
160
  return tr(
161
- "---\n{disp_path} All lines (total: {total_lines} (all))\n---\n",
161
+ "---\n{disp_path} All lines (total: {total_lines} )\n---\n",
162
162
  disp_path=disp_path,
163
163
  total_lines=total_lines,
164
164
  )
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes