janito 2.32.0__tar.gz → 2.33.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 (482) hide show
  1. {janito-2.32.0 → janito-2.33.0}/PKG-INFO +1 -1
  2. {janito-2.32.0 → janito-2.33.0}/janito/agent/setup_agent.py +26 -0
  3. {janito-2.32.0 → janito-2.33.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +2 -0
  4. {janito-2.32.0 → janito-2.33.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +2 -0
  5. {janito-2.32.0 → janito-2.33.0}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +2 -0
  6. {janito-2.32.0 → janito-2.33.0}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +2 -0
  7. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/fetch_url.py +45 -27
  8. {janito-2.32.0 → janito-2.33.0}/janito.egg-info/PKG-INFO +1 -1
  9. {janito-2.32.0 → janito-2.33.0}/janito.egg-info/SOURCES.txt +2 -0
  10. {janito-2.32.0 → janito-2.33.0}/plugins/web/webtools/tools/fetch_url.py +37 -27
  11. janito-2.33.0/test_http_errors.py +100 -0
  12. janito-2.33.0/test_http_errors_direct.py +53 -0
  13. {janito-2.32.0 → janito-2.33.0}/.codespellrc +0 -0
  14. {janito-2.32.0 → janito-2.33.0}/.gitattributes +0 -0
  15. {janito-2.32.0 → janito-2.33.0}/.github/workflows/python-app.yml.disabled +0 -0
  16. {janito-2.32.0 → janito-2.33.0}/.gitignore +0 -0
  17. {janito-2.32.0 → janito-2.33.0}/.pre-commit-config.yaml +0 -0
  18. {janito-2.32.0 → janito-2.33.0}/.secrets.baseline +0 -0
  19. {janito-2.32.0 → janito-2.33.0}/.vscode/settings.json +0 -0
  20. {janito-2.32.0 → janito-2.33.0}/LICENSE +0 -0
  21. {janito-2.32.0 → janito-2.33.0}/MARKET_ANALYST_README.md +0 -0
  22. {janito-2.32.0 → janito-2.33.0}/README-dev.md +0 -0
  23. {janito-2.32.0 → janito-2.33.0}/README.md +0 -0
  24. {janito-2.32.0 → janito-2.33.0}/RELEASE_COMPARISON.md +0 -0
  25. {janito-2.32.0 → janito-2.33.0}/UPDATING_DOCS.md +0 -0
  26. {janito-2.32.0 → janito-2.33.0}/adding_mcp.txt +0 -0
  27. {janito-2.32.0 → janito-2.33.0}/docs/CHANGELOG.md +0 -0
  28. {janito-2.32.0 → janito-2.33.0}/docs/DIV.md +0 -0
  29. {janito-2.32.0 → janito-2.33.0}/docs/Interfaces.txt +0 -0
  30. {janito-2.32.0 → janito-2.33.0}/docs/PROFILES.md +0 -0
  31. {janito-2.32.0 → janito-2.33.0}/docs/TOOLBAR-STYLING.md +0 -0
  32. {janito-2.32.0 → janito-2.33.0}/docs/about/costs.md +0 -0
  33. {janito-2.32.0 → janito-2.33.0}/docs/about/vs-webchats.md +0 -0
  34. {janito-2.32.0 → janito-2.33.0}/docs/about/why.md +0 -0
  35. {janito-2.32.0 → janito-2.33.0}/docs/alibaba-setup.md +0 -0
  36. {janito-2.32.0 → janito-2.33.0}/docs/alternatives.md +0 -0
  37. {janito-2.32.0 → janito-2.33.0}/docs/cerebras-setup.md +0 -0
  38. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/CHANGELOG.md +0 -0
  39. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
  40. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
  41. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
  42. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
  43. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
  44. {janito-2.32.0 → janito-2.33.0}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
  45. {janito-2.32.0 → janito-2.33.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  46. {janito-2.32.0 → janito-2.33.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
  47. {janito-2.32.0 → janito-2.33.0}/docs/code_intelligence/code-generation-observability.md +0 -0
  48. {janito-2.32.0 → janito-2.33.0}/docs/code_intelligence/our-approach.md +0 -0
  49. {janito-2.32.0 → janito-2.33.0}/docs/code_intelligence/why-string-replacement.md +0 -0
  50. {janito-2.32.0 → janito-2.33.0}/docs/concepts/analysis-style.md +0 -0
  51. {janito-2.32.0 → janito-2.33.0}/docs/concepts/human-guided-ai.md +0 -0
  52. {janito-2.32.0 → janito-2.33.0}/docs/concepts/index.md +0 -0
  53. {janito-2.32.0 → janito-2.33.0}/docs/concepts/language-model-clients.md +0 -0
  54. {janito-2.32.0 → janito-2.33.0}/docs/concepts/prompt-design-style.md +0 -0
  55. {janito-2.32.0 → janito-2.33.0}/docs/deepseek-setup.md +0 -0
  56. {janito-2.32.0 → janito-2.33.0}/docs/driver-flow.md +0 -0
  57. {janito-2.32.0 → janito-2.33.0}/docs/driver-request-cancellation.md +0 -0
  58. {janito-2.32.0 → janito-2.33.0}/docs/drivers/events.md +0 -0
  59. {janito-2.32.0 → janito-2.33.0}/docs/drivers.md +0 -0
  60. {janito-2.32.0 → janito-2.33.0}/docs/event-bus.md +0 -0
  61. {janito-2.32.0 → janito-2.33.0}/docs/guides/configuration.md +0 -0
  62. {janito-2.32.0 → janito-2.33.0}/docs/guides/developing.md +0 -0
  63. {janito-2.32.0 → janito-2.33.0}/docs/guides/disabled-tools.md +0 -0
  64. {janito-2.32.0 → janito-2.33.0}/docs/guides/installation.md +0 -0
  65. {janito-2.32.0 → janito-2.33.0}/docs/guides/market-data-sources.md +0 -0
  66. {janito-2.32.0 → janito-2.33.0}/docs/guides/profiles.md +0 -0
  67. {janito-2.32.0 → janito-2.33.0}/docs/guides/prompting/README.md +0 -0
  68. {janito-2.32.0 → janito-2.33.0}/docs/guides/read-chart-examples.md +0 -0
  69. {janito-2.32.0 → janito-2.33.0}/docs/guides/security-commands.md +0 -0
  70. {janito-2.32.0 → janito-2.33.0}/docs/guides/single-shot-terminal.md +0 -0
  71. {janito-2.32.0 → janito-2.33.0}/docs/guides/stock-market-guide.md +0 -0
  72. {janito-2.32.0 → janito-2.33.0}/docs/guides/terminal-shell.md +0 -0
  73. {janito-2.32.0 → janito-2.33.0}/docs/guides/tools-developer-guide.md +0 -0
  74. {janito-2.32.0 → janito-2.33.0}/docs/guides/url-whitelist.md +0 -0
  75. {janito-2.32.0 → janito-2.33.0}/docs/guides/using.md +0 -0
  76. {janito-2.32.0 → janito-2.33.0}/docs/guides/using_tools.md +0 -0
  77. {janito-2.32.0 → janito-2.33.0}/docs/ibm-setup.md +0 -0
  78. {janito-2.32.0 → janito-2.33.0}/docs/imgs/code-generation-observability.png +0 -0
  79. {janito-2.32.0 → janito-2.33.0}/docs/imgs/code_generation_observability.png +0 -0
  80. {janito-2.32.0 → janito-2.33.0}/docs/imgs/happy-programmer.png +0 -0
  81. {janito-2.32.0 → janito-2.33.0}/docs/imgs/happy-programmer.svg +0 -0
  82. {janito-2.32.0 → janito-2.33.0}/docs/imgs/terminal-one-shot.png +0 -0
  83. {janito-2.32.0 → janito-2.33.0}/docs/imgs/terminal-shell.png +0 -0
  84. {janito-2.32.0 → janito-2.33.0}/docs/imgs/terminal_one_shot.png +0 -0
  85. {janito-2.32.0 → janito-2.33.0}/docs/imgs/terminal_shell.png +0 -0
  86. {janito-2.32.0 → janito-2.33.0}/docs/index.md +0 -0
  87. {janito-2.32.0 → janito-2.33.0}/docs/llm-drivers-required-config.md +0 -0
  88. {janito-2.32.0 → janito-2.33.0}/docs/llm-drivers.md +0 -0
  89. {janito-2.32.0 → janito-2.33.0}/docs/meta/developer-toolchain.md +0 -0
  90. {janito-2.32.0 → janito-2.33.0}/docs/meta/quality-checks.txt +0 -0
  91. {janito-2.32.0 → janito-2.33.0}/docs/mistral-setup.md +0 -0
  92. {janito-2.32.0 → janito-2.33.0}/docs/moonshot-setup.md +0 -0
  93. {janito-2.32.0 → janito-2.33.0}/docs/openai-setup.md +0 -0
  94. {janito-2.32.0 → janito-2.33.0}/docs/overrides/partials/copyright.html +0 -0
  95. {janito-2.32.0 → janito-2.33.0}/docs/plugins/ACTUAL_TOOLS_LOCATION.md +0 -0
  96. {janito-2.32.0 → janito-2.33.0}/docs/plugins/MIGRATION_COMPLETE.md +0 -0
  97. {janito-2.32.0 → janito-2.33.0}/docs/plugins/README.md +0 -0
  98. {janito-2.32.0 → janito-2.33.0}/docs/plugins/api-reference.md +0 -0
  99. {janito-2.32.0 → janito-2.33.0}/docs/plugins/architecture.md +0 -0
  100. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
  101. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/filemanager.md +0 -0
  102. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/imagedisplay.md +0 -0
  103. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/pythondev.md +0 -0
  104. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/system.md +0 -0
  105. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/userinterface.md +0 -0
  106. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/visualization.md +0 -0
  107. {janito-2.32.0 → janito-2.33.0}/docs/plugins/built-in-plugins/webtools.md +0 -0
  108. {janito-2.32.0 → janito-2.33.0}/docs/plugins/configuration.md +0 -0
  109. {janito-2.32.0 → janito-2.33.0}/docs/plugins/examples/advanced.md +0 -0
  110. {janito-2.32.0 → janito-2.33.0}/docs/plugins/examples/basic.md +0 -0
  111. {janito-2.32.0 → janito-2.33.0}/docs/plugins/examples/intermediate.md +0 -0
  112. {janito-2.32.0 → janito-2.33.0}/docs/plugins/plugin-development.md +0 -0
  113. {janito-2.32.0 → janito-2.33.0}/docs/plugins/plugin-resources.md +0 -0
  114. {janito-2.32.0 → janito-2.33.0}/docs/plugins/publishing.md +0 -0
  115. {janito-2.32.0 → janito-2.33.0}/docs/plugins/remote-plugins.md +0 -0
  116. {janito-2.32.0 → janito-2.33.0}/docs/plugins/testing.md +0 -0
  117. {janito-2.32.0 → janito-2.33.0}/docs/provider-platform-access.md +0 -0
  118. {janito-2.32.0 → janito-2.33.0}/docs/public-sources.md +0 -0
  119. {janito-2.32.0 → janito-2.33.0}/docs/reference/api.md +0 -0
  120. {janito-2.32.0 → janito-2.33.0}/docs/reference/azure-openai.md +0 -0
  121. {janito-2.32.0 → janito-2.33.0}/docs/reference/cli-options.md +0 -0
  122. {janito-2.32.0 → janito-2.33.0}/docs/reference/message-handler-model.md +0 -0
  123. {janito-2.32.0 → janito-2.33.0}/docs/reference/rich-message-handler.md +0 -0
  124. {janito-2.32.0 → janito-2.33.0}/docs/security.md +0 -0
  125. {janito-2.32.0 → janito-2.33.0}/docs/supported-providers-models.md +0 -0
  126. {janito-2.32.0 → janito-2.33.0}/docs/tools/search-text.md +0 -0
  127. {janito-2.32.0 → janito-2.33.0}/docs/tools/show-image-grid.md +0 -0
  128. {janito-2.32.0 → janito-2.33.0}/docs/tools/show-image.md +0 -0
  129. {janito-2.32.0 → janito-2.33.0}/docs/tools-index.md +0 -0
  130. {janito-2.32.0 → janito-2.33.0}/docs/tools-natural-results.md +0 -0
  131. {janito-2.32.0 → janito-2.33.0}/docs/tools-precision.md +0 -0
  132. {janito-2.32.0 → janito-2.33.0}/docs/z-ai-setup.md +0 -0
  133. {janito-2.32.0 → janito-2.33.0}/examples/loop_protection_example.py +0 -0
  134. {janito-2.32.0 → janito-2.33.0}/examples/loop_protection_tool_example.py +0 -0
  135. {janito-2.32.0 → janito-2.33.0}/get_nasdaq_top.py +0 -0
  136. {janito-2.32.0 → janito-2.33.0}/ibm-logo.txt +0 -0
  137. {janito-2.32.0 → janito-2.33.0}/janito/README.md +0 -0
  138. {janito-2.32.0 → janito-2.33.0}/janito/__init__.py +0 -0
  139. {janito-2.32.0 → janito-2.33.0}/janito/__main__.py +0 -0
  140. {janito-2.32.0 → janito-2.33.0}/janito/_version.py +0 -0
  141. {janito-2.32.0 → janito-2.33.0}/janito/cli/__init__.py +0 -0
  142. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/bindings.py +0 -0
  143. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/chat_entry.py +0 -0
  144. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/prompt_style.py +0 -0
  145. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/script_runner.py +0 -0
  146. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/session.py +0 -0
  147. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  148. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  149. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  150. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  151. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  152. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  153. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  154. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  155. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  156. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  157. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  158. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  159. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  160. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  161. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  162. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  163. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
  164. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  165. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  166. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
  167. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
  168. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
  169. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  170. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  171. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  172. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
  173. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  174. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  175. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  176. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  177. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
  178. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  179. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
  180. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  181. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  182. {janito-2.32.0 → janito-2.33.0}/janito/cli/chat_mode/toolbar.py +0 -0
  183. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
  184. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_config.py +0 -0
  185. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_drivers.py +0 -0
  186. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_models.py +0 -0
  187. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_plugins.py +0 -0
  188. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_profiles.py +0 -0
  189. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_providers.py +0 -0
  190. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
  191. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/list_tools.py +0 -0
  192. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/model_selection.py +0 -0
  193. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/model_utils.py +0 -0
  194. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/ping_providers.py +0 -0
  195. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/set_api_key.py +0 -0
  196. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/show_config.py +0 -0
  197. {janito-2.32.0 → janito-2.33.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  198. {janito-2.32.0 → janito-2.33.0}/janito/cli/config.py +0 -0
  199. {janito-2.32.0 → janito-2.33.0}/janito/cli/console.py +0 -0
  200. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/__init__.py +0 -0
  201. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/event_logger.py +0 -0
  202. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/getters.py +0 -0
  203. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/model_guesser.py +0 -0
  204. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/runner.py +0 -0
  205. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/setters.py +0 -0
  206. {janito-2.32.0 → janito-2.33.0}/janito/cli/core/unsetters.py +0 -0
  207. {janito-2.32.0 → janito-2.33.0}/janito/cli/main.py +0 -0
  208. {janito-2.32.0 → janito-2.33.0}/janito/cli/main_cli.py +0 -0
  209. {janito-2.32.0 → janito-2.33.0}/janito/cli/prompt_core.py +0 -0
  210. {janito-2.32.0 → janito-2.33.0}/janito/cli/prompt_handler.py +0 -0
  211. {janito-2.32.0 → janito-2.33.0}/janito/cli/prompt_setup.py +0 -0
  212. {janito-2.32.0 → janito-2.33.0}/janito/cli/rich_terminal_reporter.py +0 -0
  213. {janito-2.32.0 → janito-2.33.0}/janito/cli/single_shot_mode/__init__.py +0 -0
  214. {janito-2.32.0 → janito-2.33.0}/janito/cli/single_shot_mode/handler.py +0 -0
  215. {janito-2.32.0 → janito-2.33.0}/janito/cli/utils.py +0 -0
  216. {janito-2.32.0 → janito-2.33.0}/janito/cli/verbose_output.py +0 -0
  217. {janito-2.32.0 → janito-2.33.0}/janito/config.py +0 -0
  218. {janito-2.32.0 → janito-2.33.0}/janito/config_manager.py +0 -0
  219. {janito-2.32.0 → janito-2.33.0}/janito/conversation_history.py +0 -0
  220. {janito-2.32.0 → janito-2.33.0}/janito/dir_walk_utils.py +0 -0
  221. {janito-2.32.0 → janito-2.33.0}/janito/docs/GETTING_STARTED.md +0 -0
  222. {janito-2.32.0 → janito-2.33.0}/janito/driver_events.py +0 -0
  223. {janito-2.32.0 → janito-2.33.0}/janito/drivers/azure_openai/driver.py +0 -0
  224. {janito-2.32.0 → janito-2.33.0}/janito/drivers/cerebras/__init__.py +0 -0
  225. {janito-2.32.0 → janito-2.33.0}/janito/drivers/dashscope.bak.zip +0 -0
  226. {janito-2.32.0 → janito-2.33.0}/janito/drivers/openai/README.md +0 -0
  227. {janito-2.32.0 → janito-2.33.0}/janito/drivers/openai/driver.py +0 -0
  228. {janito-2.32.0 → janito-2.33.0}/janito/drivers/openai_responses.bak.zip +0 -0
  229. {janito-2.32.0 → janito-2.33.0}/janito/drivers/zai/__init__.py +0 -0
  230. {janito-2.32.0 → janito-2.33.0}/janito/drivers/zai/driver.py +0 -0
  231. {janito-2.32.0 → janito-2.33.0}/janito/event_bus/__init__.py +0 -0
  232. {janito-2.32.0 → janito-2.33.0}/janito/event_bus/bus.py +0 -0
  233. {janito-2.32.0 → janito-2.33.0}/janito/event_bus/event.py +0 -0
  234. {janito-2.32.0 → janito-2.33.0}/janito/event_bus/handler.py +0 -0
  235. {janito-2.32.0 → janito-2.33.0}/janito/event_bus/queue_bus.py +0 -0
  236. {janito-2.32.0 → janito-2.33.0}/janito/exceptions.py +0 -0
  237. {janito-2.32.0 → janito-2.33.0}/janito/formatting.py +0 -0
  238. {janito-2.32.0 → janito-2.33.0}/janito/formatting_token.py +0 -0
  239. {janito-2.32.0 → janito-2.33.0}/janito/gitignore_utils.py +0 -0
  240. {janito-2.32.0 → janito-2.33.0}/janito/i18n/__init__.py +0 -0
  241. {janito-2.32.0 → janito-2.33.0}/janito/i18n/it.py +0 -0
  242. {janito-2.32.0 → janito-2.33.0}/janito/i18n/messages.py +0 -0
  243. {janito-2.32.0 → janito-2.33.0}/janito/i18n/pt.py +0 -0
  244. {janito-2.32.0 → janito-2.33.0}/janito/llm/README.md +0 -0
  245. {janito-2.32.0 → janito-2.33.0}/janito/llm/__init__.py +0 -0
  246. {janito-2.32.0 → janito-2.33.0}/janito/llm/agent.py +0 -0
  247. {janito-2.32.0 → janito-2.33.0}/janito/llm/auth.py +0 -0
  248. {janito-2.32.0 → janito-2.33.0}/janito/llm/auth_utils.py +0 -0
  249. {janito-2.32.0 → janito-2.33.0}/janito/llm/driver.py +0 -0
  250. {janito-2.32.0 → janito-2.33.0}/janito/llm/driver_config.py +0 -0
  251. {janito-2.32.0 → janito-2.33.0}/janito/llm/driver_config_builder.py +0 -0
  252. {janito-2.32.0 → janito-2.33.0}/janito/llm/driver_input.py +0 -0
  253. {janito-2.32.0 → janito-2.33.0}/janito/llm/message_parts.py +0 -0
  254. {janito-2.32.0 → janito-2.33.0}/janito/llm/model.py +0 -0
  255. {janito-2.32.0 → janito-2.33.0}/janito/llm/provider.py +0 -0
  256. {janito-2.32.0 → janito-2.33.0}/janito/mkdocs.yml +0 -0
  257. {janito-2.32.0 → janito-2.33.0}/janito/perf_singleton.py +0 -0
  258. {janito-2.32.0 → janito-2.33.0}/janito/performance_collector.py +0 -0
  259. {janito-2.32.0 → janito-2.33.0}/janito/platform_discovery.py +0 -0
  260. {janito-2.32.0 → janito-2.33.0}/janito/plugins/__init__.py +0 -0
  261. {janito-2.32.0 → janito-2.33.0}/janito/plugins/auto_loader.py +0 -0
  262. {janito-2.32.0 → janito-2.33.0}/janito/plugins/auto_loader_fixed.py +0 -0
  263. {janito-2.32.0 → janito-2.33.0}/janito/plugins/base.py +0 -0
  264. {janito-2.32.0 → janito-2.33.0}/janito/plugins/builtin.py +0 -0
  265. {janito-2.32.0 → janito-2.33.0}/janito/plugins/config.py +0 -0
  266. {janito-2.32.0 → janito-2.33.0}/janito/plugins/core_adapter.py +0 -0
  267. {janito-2.32.0 → janito-2.33.0}/janito/plugins/core_loader.py +0 -0
  268. {janito-2.32.0 → janito-2.33.0}/janito/plugins/core_loader_fixed.py +0 -0
  269. {janito-2.32.0 → janito-2.33.0}/janito/plugins/discovery.py +0 -0
  270. {janito-2.32.0 → janito-2.33.0}/janito/plugins/discovery_core.py +0 -0
  271. {janito-2.32.0 → janito-2.33.0}/janito/plugins/manager.py +0 -0
  272. {janito-2.32.0 → janito-2.33.0}/janito/provider_config.py +0 -0
  273. {janito-2.32.0 → janito-2.33.0}/janito/provider_registry.py +0 -0
  274. {janito-2.32.0 → janito-2.33.0}/janito/providers/__init__.py +0 -0
  275. {janito-2.32.0 → janito-2.33.0}/janito/providers/alibaba/__init__.py +0 -0
  276. {janito-2.32.0 → janito-2.33.0}/janito/providers/alibaba/model_info.py +0 -0
  277. {janito-2.32.0 → janito-2.33.0}/janito/providers/alibaba/provider.py +0 -0
  278. {janito-2.32.0 → janito-2.33.0}/janito/providers/anthropic/model_info.py +0 -0
  279. {janito-2.32.0 → janito-2.33.0}/janito/providers/anthropic/provider.py +0 -0
  280. {janito-2.32.0 → janito-2.33.0}/janito/providers/azure_openai/model_info.py +0 -0
  281. {janito-2.32.0 → janito-2.33.0}/janito/providers/azure_openai/provider.py +0 -0
  282. {janito-2.32.0 → janito-2.33.0}/janito/providers/cerebras/__init__.py +0 -0
  283. {janito-2.32.0 → janito-2.33.0}/janito/providers/cerebras/model_info.py +0 -0
  284. {janito-2.32.0 → janito-2.33.0}/janito/providers/cerebras/provider.py +0 -0
  285. {janito-2.32.0 → janito-2.33.0}/janito/providers/dashscope.bak.zip +0 -0
  286. {janito-2.32.0 → janito-2.33.0}/janito/providers/deepseek/__init__.py +0 -0
  287. {janito-2.32.0 → janito-2.33.0}/janito/providers/deepseek/model_info.py +0 -0
  288. {janito-2.32.0 → janito-2.33.0}/janito/providers/deepseek/provider.py +0 -0
  289. {janito-2.32.0 → janito-2.33.0}/janito/providers/google/__init__.py +0 -0
  290. {janito-2.32.0 → janito-2.33.0}/janito/providers/google/model_info.py +0 -0
  291. {janito-2.32.0 → janito-2.33.0}/janito/providers/google/provider.py +0 -0
  292. {janito-2.32.0 → janito-2.33.0}/janito/providers/ibm/README.md +0 -0
  293. {janito-2.32.0 → janito-2.33.0}/janito/providers/ibm/__init__.py +0 -0
  294. {janito-2.32.0 → janito-2.33.0}/janito/providers/ibm/model_info.py +0 -0
  295. {janito-2.32.0 → janito-2.33.0}/janito/providers/ibm/provider.py +0 -0
  296. {janito-2.32.0 → janito-2.33.0}/janito/providers/mistral/__init__.py +0 -0
  297. {janito-2.32.0 → janito-2.33.0}/janito/providers/mistral/model_info.py +0 -0
  298. {janito-2.32.0 → janito-2.33.0}/janito/providers/mistral/provider.py +0 -0
  299. {janito-2.32.0 → janito-2.33.0}/janito/providers/moonshot/__init__.py +0 -0
  300. {janito-2.32.0 → janito-2.33.0}/janito/providers/moonshot/model_info.py +0 -0
  301. {janito-2.32.0 → janito-2.33.0}/janito/providers/moonshot/provider.py +0 -0
  302. {janito-2.32.0 → janito-2.33.0}/janito/providers/openai/__init__.py +0 -0
  303. {janito-2.32.0 → janito-2.33.0}/janito/providers/openai/model_info.py +0 -0
  304. {janito-2.32.0 → janito-2.33.0}/janito/providers/openai/provider.py +0 -0
  305. {janito-2.32.0 → janito-2.33.0}/janito/providers/openai/schema_generator.py +0 -0
  306. {janito-2.32.0 → janito-2.33.0}/janito/providers/registry.py +0 -0
  307. {janito-2.32.0 → janito-2.33.0}/janito/providers/zai/__init__.py +0 -0
  308. {janito-2.32.0 → janito-2.33.0}/janito/providers/zai/model_info.py +0 -0
  309. {janito-2.32.0 → janito-2.33.0}/janito/providers/zai/provider.py +0 -0
  310. {janito-2.32.0 → janito-2.33.0}/janito/providers/zai/schema_generator.py +0 -0
  311. {janito-2.32.0 → janito-2.33.0}/janito/regions/__init__.py +0 -0
  312. {janito-2.32.0 → janito-2.33.0}/janito/regions/cli.py +0 -0
  313. {janito-2.32.0 → janito-2.33.0}/janito/regions/geo_utils.py +0 -0
  314. {janito-2.32.0 → janito-2.33.0}/janito/regions/provider_regions.py +0 -0
  315. {janito-2.32.0 → janito-2.33.0}/janito/report_events.py +0 -0
  316. {janito-2.32.0 → janito-2.33.0}/janito/shell.bak.zip +0 -0
  317. {janito-2.32.0 → janito-2.33.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  318. {janito-2.32.0 → janito-2.33.0}/janito/tools/README.md +0 -0
  319. {janito-2.32.0 → janito-2.33.0}/janito/tools/__init__.py +0 -0
  320. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/__init__.py +0 -0
  321. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/__init__.py +0 -0
  322. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/adapter.py +0 -0
  323. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/ask_user.py +0 -0
  324. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/copy_file.py +0 -0
  325. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/create_directory.py +0 -0
  326. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/create_file.py +0 -0
  327. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
  328. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/find_files.py +0 -0
  329. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
  330. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
  331. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
  332. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
  333. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
  334. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
  335. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/move_file.py +0 -0
  336. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
  337. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/open_url.py +0 -0
  338. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/python_code_run.py +0 -0
  339. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/python_command_run.py +0 -0
  340. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/python_file_run.py +0 -0
  341. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/read_chart.py +0 -0
  342. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/read_files.py +0 -0
  343. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/remove_directory.py +0 -0
  344. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/remove_file.py +0 -0
  345. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
  346. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/run_bash_command.py +0 -0
  347. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/run_powershell_command.py +0 -0
  348. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
  349. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/search_text/core.py +0 -0
  350. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
  351. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
  352. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
  353. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/show_image.py +0 -0
  354. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/show_image_grid.py +0 -0
  355. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
  356. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
  357. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
  358. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
  359. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py +0 -0
  360. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
  361. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
  362. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
  363. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
  364. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
  365. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
  366. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
  367. {janito-2.32.0 → janito-2.33.0}/janito/tools/adapters/local/view_file.py +0 -0
  368. {janito-2.32.0 → janito-2.33.0}/janito/tools/base.py +0 -0
  369. {janito-2.32.0 → janito-2.33.0}/janito/tools/disabled_tools.py +0 -0
  370. {janito-2.32.0 → janito-2.33.0}/janito/tools/function_adapter.py +0 -0
  371. {janito-2.32.0 → janito-2.33.0}/janito/tools/inspect_registry.py +0 -0
  372. {janito-2.32.0 → janito-2.33.0}/janito/tools/loop_protection.py +0 -0
  373. {janito-2.32.0 → janito-2.33.0}/janito/tools/loop_protection_decorator.py +0 -0
  374. {janito-2.32.0 → janito-2.33.0}/janito/tools/outline_file.bak.zip +0 -0
  375. {janito-2.32.0 → janito-2.33.0}/janito/tools/path_security.py +0 -0
  376. {janito-2.32.0 → janito-2.33.0}/janito/tools/path_utils.py +0 -0
  377. {janito-2.32.0 → janito-2.33.0}/janito/tools/permissions.py +0 -0
  378. {janito-2.32.0 → janito-2.33.0}/janito/tools/permissions_parse.py +0 -0
  379. {janito-2.32.0 → janito-2.33.0}/janito/tools/tool_base.py +0 -0
  380. {janito-2.32.0 → janito-2.33.0}/janito/tools/tool_events.py +0 -0
  381. {janito-2.32.0 → janito-2.33.0}/janito/tools/tool_run_exception.py +0 -0
  382. {janito-2.32.0 → janito-2.33.0}/janito/tools/tool_use_tracker.py +0 -0
  383. {janito-2.32.0 → janito-2.33.0}/janito/tools/tool_utils.py +0 -0
  384. {janito-2.32.0 → janito-2.33.0}/janito/tools/tools_adapter.py +0 -0
  385. {janito-2.32.0 → janito-2.33.0}/janito/tools/tools_schema.py +0 -0
  386. {janito-2.32.0 → janito-2.33.0}/janito/tools/url_whitelist.py +0 -0
  387. {janito-2.32.0 → janito-2.33.0}/janito/utils.py +0 -0
  388. {janito-2.32.0 → janito-2.33.0}/janito.egg-info/dependency_links.txt +0 -0
  389. {janito-2.32.0 → janito-2.33.0}/janito.egg-info/entry_points.txt +0 -0
  390. {janito-2.32.0 → janito-2.33.0}/janito.egg-info/requires.txt +0 -0
  391. {janito-2.32.0 → janito-2.33.0}/janito.egg-info/top_level.txt +0 -0
  392. {janito-2.32.0 → janito-2.33.0}/market_prompt_fix.py +0 -0
  393. {janito-2.32.0 → janito-2.33.0}/market_test.py +0 -0
  394. {janito-2.32.0 → janito-2.33.0}/mkdocs.yml +0 -0
  395. {janito-2.32.0 → janito-2.33.0}/mkdocs_hooks.py +0 -0
  396. {janito-2.32.0 → janito-2.33.0}/plugins/__init__.py +0 -0
  397. {janito-2.32.0 → janito-2.33.0}/plugins/core/__init__.py +0 -0
  398. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/__init__.py +0 -0
  399. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py +0 -0
  400. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/get_file_outline/core.py +0 -0
  401. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/get_file_outline/java_outline.py +0 -0
  402. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/get_file_outline/markdown_outline.py +0 -0
  403. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/get_file_outline/python_outline.py +0 -0
  404. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/get_file_outline/search_outline.py +0 -0
  405. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/search_text/__init__.py +0 -0
  406. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/search_text/core.py +0 -0
  407. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/search_text/match_lines.py +0 -0
  408. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/search_text/pattern_utils.py +0 -0
  409. {janito-2.32.0 → janito-2.33.0}/plugins/core/codeanalyzer/tools/search_text/traverse_directory.py +0 -0
  410. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/__init__.py +0 -0
  411. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/copy_file.py +0 -0
  412. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/create_directory.py +0 -0
  413. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/create_file.py +0 -0
  414. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/delete_text_in_file.py +0 -0
  415. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/find_files.py +0 -0
  416. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/move_file.py +0 -0
  417. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/read_files.py +0 -0
  418. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/remove_directory.py +0 -0
  419. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/remove_file.py +0 -0
  420. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/replace_text_in_file.py +0 -0
  421. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
  422. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/core.py +0 -0
  423. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/css_validator.py +0 -0
  424. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/html_validator.py +0 -0
  425. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/jinja2_validator.py +0 -0
  426. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/js_validator.py +0 -0
  427. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/json_validator.py +0 -0
  428. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/markdown_validator.py +0 -0
  429. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/ps1_validator.py +0 -0
  430. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/python_validator.py +0 -0
  431. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/xml_validator.py +0 -0
  432. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/validate_file_syntax/yaml_validator.py +0 -0
  433. {janito-2.32.0 → janito-2.33.0}/plugins/core/filemanager/tools/view_file.py +0 -0
  434. {janito-2.32.0 → janito-2.33.0}/plugins/core/imagedisplay/__init__.py +0 -0
  435. {janito-2.32.0 → janito-2.33.0}/plugins/core/imagedisplay/plugin.py +0 -0
  436. {janito-2.32.0 → janito-2.33.0}/plugins/core/imagedisplay/tools/__init__.py +0 -0
  437. {janito-2.32.0 → janito-2.33.0}/plugins/core/imagedisplay/tools/show_image.py +0 -0
  438. {janito-2.32.0 → janito-2.33.0}/plugins/core/imagedisplay/tools/show_image_grid.py +0 -0
  439. {janito-2.32.0 → janito-2.33.0}/plugins/core/system/__init__.py +0 -0
  440. {janito-2.32.0 → janito-2.33.0}/plugins/core/system/tools/run_bash_command.py +0 -0
  441. {janito-2.32.0 → janito-2.33.0}/plugins/core/system/tools/run_powershell_command.py +0 -0
  442. {janito-2.32.0 → janito-2.33.0}/plugins/dev/__init__.py +0 -0
  443. {janito-2.32.0 → janito-2.33.0}/plugins/dev/pythondev/__init__.py +0 -0
  444. {janito-2.32.0 → janito-2.33.0}/plugins/dev/pythondev/tools/python_code_run.py +0 -0
  445. {janito-2.32.0 → janito-2.33.0}/plugins/dev/pythondev/tools/python_command_run.py +0 -0
  446. {janito-2.32.0 → janito-2.33.0}/plugins/dev/pythondev/tools/python_file_run.py +0 -0
  447. {janito-2.32.0 → janito-2.33.0}/plugins/dev/visualization/__init__.py +0 -0
  448. {janito-2.32.0 → janito-2.33.0}/plugins/dev/visualization/tools/read_chart.py +0 -0
  449. {janito-2.32.0 → janito-2.33.0}/plugins/example_plugin.py +0 -0
  450. {janito-2.32.0 → janito-2.33.0}/plugins/ui/__init__.py +0 -0
  451. {janito-2.32.0 → janito-2.33.0}/plugins/ui/userinterface/__init__.py +0 -0
  452. {janito-2.32.0 → janito-2.33.0}/plugins/ui/userinterface/tools/ask_user.py +0 -0
  453. {janito-2.32.0 → janito-2.33.0}/plugins/web/__init__.py +0 -0
  454. {janito-2.32.0 → janito-2.33.0}/plugins/web/webtools/__init__.py +0 -0
  455. {janito-2.32.0 → janito-2.33.0}/plugins/web/webtools/tools/open_html_in_browser.py +0 -0
  456. {janito-2.32.0 → janito-2.33.0}/plugins/web/webtools/tools/open_url.py +0 -0
  457. {janito-2.32.0 → janito-2.33.0}/plugins.txt +0 -0
  458. {janito-2.32.0 → janito-2.33.0}/pyproject.toml +0 -0
  459. {janito-2.32.0 → janito-2.33.0}/pytest.ini +0 -0
  460. {janito-2.32.0 → janito-2.33.0}/requirements-dev.txt +0 -0
  461. {janito-2.32.0 → janito-2.33.0}/requirements.txt +0 -0
  462. {janito-2.32.0 → janito-2.33.0}/setup.cfg +0 -0
  463. {janito-2.32.0 → janito-2.33.0}/test.txt +0 -0
  464. {janito-2.32.0 → janito-2.33.0}/test_example.py +0 -0
  465. {janito-2.32.0 → janito-2.33.0}/test_key_field_behavior.py +0 -0
  466. {janito-2.32.0 → janito-2.33.0}/test_key_field_protection.py +0 -0
  467. {janito-2.32.0 → janito-2.33.0}/test_loop_protection_return.py +0 -0
  468. {janito-2.32.0 → janito-2.33.0}/test_market_analyst.py +0 -0
  469. {janito-2.32.0 → janito-2.33.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  470. {janito-2.32.0 → janito-2.33.0}/tests/adapters/local/test_read_files.py +0 -0
  471. {janito-2.32.0 → janito-2.33.0}/tests/test_cli_list_models.py +0 -0
  472. {janito-2.32.0 → janito-2.33.0}/tests/test_cli_list_providers.py +0 -0
  473. {janito-2.32.0 → janito-2.33.0}/tests/test_cli_list_providers_alibaba.py +0 -0
  474. {janito-2.32.0 → janito-2.33.0}/tests/test_cli_list_providers_moonshot.py +0 -0
  475. {janito-2.32.0 → janito-2.33.0}/tests/test_cli_version.py +0 -0
  476. {janito-2.32.0 → janito-2.33.0}/tests/test_disabled_tools.py +0 -0
  477. {janito-2.32.0 → janito-2.33.0}/tests/test_plugin_system.py +0 -0
  478. {janito-2.32.0 → janito-2.33.0}/tests/test_provider_alibaba.py +0 -0
  479. {janito-2.32.0 → janito-2.33.0}/tests/test_provider_cerebras.py +0 -0
  480. {janito-2.32.0 → janito-2.33.0}/tests/test_provider_moonshot.py +0 -0
  481. {janito-2.32.0 → janito-2.33.0}/tools/release.py +0 -0
  482. {janito-2.32.0 → janito-2.33.0}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.32.0
3
+ Version: 2.33.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
@@ -155,6 +155,32 @@ def _prepare_template_context(role, profile, allowed_permissions, args=None):
155
155
  getattr(args, "emoji", False) if "args" in locals() else False
156
156
  )
157
157
 
158
+ # Add current date/time with timezone using standard library
159
+ from datetime import datetime, timezone
160
+ import time
161
+
162
+ # Get local time with timezone info
163
+ local_time = datetime.now()
164
+
165
+ # Get timezone offset
166
+ if time.daylight:
167
+ offset = time.altzone
168
+ else:
169
+ offset = time.timezone
170
+
171
+ # Format offset as +HHMM or -HHMM
172
+ offset_hours = -offset // 3600
173
+ offset_minutes = abs(offset) % 3600 // 60
174
+ offset_str = f"{offset_hours:+03d}{offset_minutes:02d}"
175
+
176
+ # Get timezone name
177
+ tz_name = time.tzname[time.daylight and time.daylight or 0]
178
+
179
+ context["current_datetime"] = local_time.strftime(
180
+ f"%Y-%m-%d %H:%M:%S {tz_name}{offset_str}"
181
+ )
182
+ context["timezone"] = f"{tz_name} (UTC{offset_str})"
183
+
158
184
  return context
159
185
 
160
186
 
@@ -4,6 +4,8 @@
4
4
  {% if description %}Description: {{ description }}{% endif %}
5
5
  {% if author %}Author: {{ author }}{% endif %}
6
6
  {% if tags %}Tags: {{ tags | join(', ') }}{% endif %}
7
+ {% if current_datetime %}Current Date/Time: {{ current_datetime }}{% endif %}
8
+ {% if timezone %}Timezone: {{ timezone }}{% endif %}
7
9
 
8
10
  {# General role setup
9
11
  ex. "Search in code" -> Python Developer -> find(*.py) | Java Developer -> find(*.java)
@@ -4,6 +4,8 @@
4
4
  {% if description %}Description: {{ description }}{% endif %}
5
5
  {% if author %}Author: {{ author }}{% endif %}
6
6
  {% if tags %}Tags: {{ tags | join(', ') }}{% endif %}
7
+ {% if current_datetime %}Current Date/Time: {{ current_datetime }}{% endif %}
8
+ {% if timezone %}Timezone: {{ timezone }}{% endif %}
7
9
 
8
10
  You are: {{ role | default('software developer') }}
9
11
 
@@ -4,6 +4,8 @@
4
4
  {% if description %}Description: {{ description }}{% endif %}
5
5
  {% if author %}Author: {{ author }}{% endif %}
6
6
  {% if tags %}Tags: {{ tags | join(', ') }}{% endif %}
7
+ {% if current_datetime %}Current Date/Time: {{ current_datetime }}{% endif %}
8
+ {% if timezone %}Timezone: {{ timezone }}{% endif %}
7
9
 
8
10
  You are: {{ role | default('market analyst specializing in financial markets, business intelligence, and economic research') }}
9
11
 
@@ -4,6 +4,8 @@
4
4
  {% if description %}Description: {{ description }}{% endif %}
5
5
  {% if author %}Author: {{ author }}{% endif %}
6
6
  {% if tags %}Tags: {{ tags | join(', ') }}{% endif %}
7
+ {% if current_datetime %}Current Date/Time: {{ current_datetime }}{% endif %}
8
+ {% if timezone %}Timezone: {{ timezone }}{% endif %}
7
9
 
8
10
  You are: {{ role | default('helpful assistant') }}
9
11
 
@@ -246,11 +246,11 @@ class FetchUrlTool(ToolBase):
246
246
  return content
247
247
  except requests.exceptions.HTTPError as http_err:
248
248
  status_code = http_err.response.status_code if http_err.response else None
249
-
249
+
250
250
  # Map status codes to descriptions
251
251
  status_descriptions = {
252
252
  400: "Bad Request",
253
- 401: "Unauthorized",
253
+ 401: "Unauthorized",
254
254
  403: "Forbidden",
255
255
  404: "Not Found",
256
256
  405: "Method Not Allowed",
@@ -266,50 +266,68 @@ class FetchUrlTool(ToolBase):
266
266
  502: "Bad Gateway",
267
267
  503: "Service Unavailable",
268
268
  504: "Gateway Timeout",
269
- 505: "HTTP Version Not Supported"
269
+ 505: "HTTP Version Not Supported",
270
270
  }
271
-
271
+
272
272
  if status_code and 400 <= status_code < 500:
273
273
  description = status_descriptions.get(status_code, "Client Error")
274
- error_message = tr(
275
- "HTTP Error {status_code} {description}",
276
- status_code=status_code,
277
- description=description,
278
- )
274
+ error_message = f"HTTP {status_code} {description}"
279
275
  # Cache 403 and 404 errors
280
276
  if status_code in [403, 404]:
281
277
  self._cache_error(url, status_code, error_message)
282
278
 
283
279
  self.report_error(
284
- tr(
285
- "❗ HTTP Error {status_code} {description}",
286
- status_code=status_code,
287
- description=description,
288
- ),
280
+ f"❗ HTTP {status_code} {description}",
289
281
  ReportAction.READ,
290
282
  )
291
283
  return error_message
292
- else:
293
- description = status_descriptions.get(status_code, "Server Error") if status_code else "Error"
284
+ elif status_code and 500 <= status_code < 600:
285
+ description = status_descriptions.get(status_code, "Server Error")
286
+ error_message = f"HTTP {status_code} {description}"
294
287
  self.report_error(
295
- tr(
296
- "❗ HTTP Error {status_code} {description}",
297
- status_code=status_code or "Error",
298
- description=description,
299
- ),
288
+ f"❗ HTTP {status_code} {description}",
300
289
  ReportAction.READ,
301
290
  )
302
- return tr(
303
- "HTTP Error {status_code} {description}",
304
- status_code=status_code or "Error",
305
- description=description,
291
+ return error_message
292
+ else:
293
+ status_code_str = str(status_code) if status_code else "Error"
294
+ description = status_descriptions.get(
295
+ status_code,
296
+ (
297
+ "Server Error"
298
+ if status_code and status_code >= 500
299
+ else "Client Error"
300
+ ),
306
301
  )
302
+ self.report_error(
303
+ f"❗ HTTP {status_code_str} {description}",
304
+ ReportAction.READ,
305
+ )
306
+ return f"HTTP {status_code_str} {description}"
307
+ except requests.exceptions.ConnectionError as conn_err:
308
+ self.report_error(
309
+ "❗ Network Error",
310
+ ReportAction.READ,
311
+ )
312
+ return f"Network Error: Failed to connect to {url}"
313
+ except requests.exceptions.Timeout as timeout_err:
314
+ self.report_error(
315
+ "❗ Timeout Error",
316
+ ReportAction.READ,
317
+ )
318
+ return f"Timeout Error: Request timed out after {timeout} seconds"
319
+ except requests.exceptions.RequestException as req_err:
320
+ self.report_error(
321
+ "❗ Request Error",
322
+ ReportAction.READ,
323
+ )
324
+ return f"Request Error: {str(req_err)}"
307
325
  except Exception as err:
308
326
  self.report_error(
309
- tr("❗ Error"),
327
+ "❗ Error fetching URL",
310
328
  ReportAction.READ,
311
329
  )
312
- return tr("Error")
330
+ return f"Error: {str(err)}"
313
331
 
314
332
  def _extract_and_clean_text(self, html_content: str) -> str:
315
333
  """Extract and clean text from HTML content."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.32.0
3
+ Version: 2.33.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
@@ -23,6 +23,8 @@ requirements-dev.txt
23
23
  requirements.txt
24
24
  test.txt
25
25
  test_example.py
26
+ test_http_errors.py
27
+ test_http_errors_direct.py
26
28
  test_key_field_behavior.py
27
29
  test_key_field_protection.py
28
30
  test_loop_protection_return.py
@@ -246,11 +246,11 @@ class FetchUrlTool(ToolBase):
246
246
  return content
247
247
  except requests.exceptions.HTTPError as http_err:
248
248
  status_code = http_err.response.status_code if http_err.response else None
249
-
249
+
250
250
  # Map status codes to descriptions
251
251
  status_descriptions = {
252
252
  400: "Bad Request",
253
- 401: "Unauthorized",
253
+ 401: "Unauthorized",
254
254
  403: "Forbidden",
255
255
  404: "Not Found",
256
256
  405: "Method Not Allowed",
@@ -266,50 +266,60 @@ class FetchUrlTool(ToolBase):
266
266
  502: "Bad Gateway",
267
267
  503: "Service Unavailable",
268
268
  504: "Gateway Timeout",
269
- 505: "HTTP Version Not Supported"
269
+ 505: "HTTP Version Not Supported",
270
270
  }
271
-
271
+
272
272
  if status_code and 400 <= status_code < 500:
273
273
  description = status_descriptions.get(status_code, "Client Error")
274
- error_message = tr(
275
- "HTTP Error {status_code} {description}",
276
- status_code=status_code,
277
- description=description,
278
- )
274
+ error_message = f"HTTP {status_code} {description}"
279
275
  # Cache 403 and 404 errors
280
276
  if status_code in [403, 404]:
281
277
  self._cache_error(url, status_code, error_message)
282
278
 
283
279
  self.report_error(
284
- tr(
285
- "❗ HTTP Error {status_code} {description}",
286
- status_code=status_code,
287
- description=description,
288
- ),
280
+ f"❗ HTTP {status_code} {description}",
289
281
  ReportAction.READ,
290
282
  )
291
283
  return error_message
292
284
  else:
293
- description = status_descriptions.get(status_code, "Server Error") if status_code else "Error"
294
- self.report_error(
295
- tr(
296
- "❗ HTTP Error {status_code} {description}",
297
- status_code=status_code or "Error",
298
- description=description,
285
+ status_code_str = str(status_code) if status_code else "Error"
286
+ description = status_descriptions.get(
287
+ status_code,
288
+ (
289
+ "Server Error"
290
+ if status_code and status_code >= 500
291
+ else "Client Error"
299
292
  ),
300
- ReportAction.READ,
301
293
  )
302
- return tr(
303
- "HTTP Error {status_code} {description}",
304
- status_code=status_code or "Error",
305
- description=description,
294
+ self.report_error(
295
+ f"HTTP {status_code_str} {description}",
296
+ ReportAction.READ,
306
297
  )
298
+ return f"HTTP {status_code_str} {description}"
299
+ except requests.exceptions.ConnectionError as conn_err:
300
+ self.report_error(
301
+ "❗ Network Error",
302
+ ReportAction.READ,
303
+ )
304
+ return f"Network Error: Failed to connect to {url}"
305
+ except requests.exceptions.Timeout as timeout_err:
306
+ self.report_error(
307
+ "❗ Timeout Error",
308
+ ReportAction.READ,
309
+ )
310
+ return f"Timeout Error: Request timed out after {timeout} seconds"
311
+ except requests.exceptions.RequestException as req_err:
312
+ self.report_error(
313
+ "❗ Request Error",
314
+ ReportAction.READ,
315
+ )
316
+ return f"Request Error: {str(req_err)}"
307
317
  except Exception as err:
308
318
  self.report_error(
309
- tr("❗ Error"),
319
+ "❗ Error fetching URL",
310
320
  ReportAction.READ,
311
321
  )
312
- return tr("Error")
322
+ return f"Error: {str(err)}"
313
323
 
314
324
  def _extract_and_clean_text(self, html_content: str) -> str:
315
325
  """Extract and clean text from HTML content."""
@@ -0,0 +1,100 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Test file to check HTTP error handling in janito's fetch_url functionality.
4
+ This test will attempt to fetch URLs that should return various HTTP errors.
5
+ """
6
+
7
+ import pytest
8
+ import sys
9
+ import os
10
+
11
+ # Add the janito package to the path
12
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), "."))
13
+
14
+ from janito.tools.adapters.local.fetch_url import FetchUrlTool
15
+
16
+
17
+ class TestHttpErrors:
18
+ """Test HTTP error handling in fetch_url functionality."""
19
+
20
+ def test_404_error(self):
21
+ """Test handling of 404 Not Found errors."""
22
+ fetcher = FetchUrlTool()
23
+
24
+ # Use a URL that should return 404
25
+ result = fetcher.run("https://httpstat.us/404")
26
+
27
+ # Should contain error information
28
+ assert "HTTP Error" in result or "404" in result or "Not Found" in result
29
+ print(f"404 test result: {result}")
30
+
31
+ def test_403_error(self):
32
+ """Test handling of 403 Forbidden errors."""
33
+ fetcher = FetchUrlTool()
34
+
35
+ # Use a URL that should return 403
36
+ result = fetcher.run("https://httpstat.us/403")
37
+
38
+ # Should contain error information
39
+ assert "HTTP Error" in result or "403" in result or "Forbidden" in result
40
+ print(f"403 test result: {result}")
41
+
42
+ def test_500_error(self):
43
+ """Test handling of 500 Internal Server Error."""
44
+ fetcher = FetchUrlTool()
45
+
46
+ # Use a URL that should return 500
47
+ result = fetcher.run("https://httpstat.us/500")
48
+
49
+ # Should contain error information
50
+ assert "HTTP Error" in result or "500" in result or "Server Error" in result
51
+ print(f"500 test result: {result}")
52
+
53
+ def test_timeout_error(self):
54
+ """Test handling of timeout errors."""
55
+ fetcher = FetchUrlTool()
56
+
57
+ # Use a URL that delays response and set short timeout
58
+ result = fetcher.run("https://httpstat.us/200?sleep=5000", timeout=1)
59
+
60
+ # Should contain timeout or error information
61
+ assert "timeout" in result.lower() or "error" in result.lower()
62
+ print(f"Timeout test result: {result}")
63
+
64
+ def test_invalid_url_error(self):
65
+ """Test handling of invalid URLs."""
66
+ fetcher = FetchUrlTool()
67
+
68
+ # Use an invalid URL
69
+ result = fetcher.run("https://this-domain-does-not-exist-12345.com")
70
+
71
+ # Should contain error information
72
+ assert "error" in result.lower() or "failed" in result.lower()
73
+ print(f"Invalid URL test result: {result}")
74
+
75
+ def test_blocked_url(self):
76
+ """Test handling of blocked URLs (whitelist functionality)."""
77
+ fetcher = FetchUrlTool()
78
+
79
+ # Try to fetch a URL that might be blocked
80
+ # Note: This depends on the current whitelist configuration
81
+ result = fetcher.run("http://malware-testing.com")
82
+
83
+ # Should contain blocked information or proceed normally
84
+ print(f"Blocked URL test result: {result}")
85
+
86
+ def test_successful_request(self):
87
+ """Test that successful requests still work."""
88
+ fetcher = FetchUrlTool()
89
+
90
+ # Use a URL that should return 200
91
+ result = fetcher.run("https://httpstat.us/200")
92
+
93
+ # Should contain the expected content
94
+ assert "200" in result or "OK" in result
95
+ print(f"Successful request test result: {result[:100]}...")
96
+
97
+
98
+ if __name__ == "__main__":
99
+ # Run tests when executed directly
100
+ pytest.main([__file__, "-v", "-s"])
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Direct test for HTTP error handling using the fetch_url tool directly.
4
+ This bypasses potential network connectivity issues by testing the tool's behavior.
5
+ """
6
+
7
+ import pytest
8
+ import sys
9
+ import os
10
+
11
+ # Add the janito package to the path
12
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), "."))
13
+
14
+ from janito.tools.adapters.local.fetch_url import FetchUrlTool
15
+
16
+
17
+ def test_direct_tool_usage():
18
+ """Test the fetch_url tool directly with mock scenarios."""
19
+ tool = FetchUrlTool()
20
+
21
+ # Test with a clearly invalid domain
22
+ result = tool.run("https://nonexistent-domain-12345.invalid")
23
+ print(f"Invalid domain result: {result}")
24
+
25
+ # Should contain network error information
26
+ assert "Network Error" in result or "Failed to connect" in result
27
+
28
+ # Test with a well-known accessible URL
29
+ result = tool.run("https://www.google.com")
30
+ print(f"Google result: {result[:100]}...")
31
+
32
+ # Should contain some content
33
+ assert len(result) > 0
34
+
35
+ # Test with httpstat.us for specific HTTP status codes
36
+ # Note: This might fail due to network issues, but we want to see the behavior
37
+ try:
38
+ result = tool.run("https://httpstat.us/404")
39
+ print(f"404 test result: {result}")
40
+ assert "HTTP 404" in result or "404" in result
41
+ except Exception as e:
42
+ print(f"404 test failed with exception: {e}")
43
+ # This is expected if there's no internet connectivity
44
+
45
+ # Test timeout handling
46
+ result = tool.run("https://httpstat.us/200?sleep=10000", timeout=2)
47
+ print(f"Timeout test result: {result}")
48
+ assert "Timeout" in result or "Network Error" in result
49
+
50
+
51
+ if __name__ == "__main__":
52
+ test_direct_tool_usage()
53
+ print("All tests completed!")
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