janito 3.2.0__tar.gz → 3.4.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 (515) hide show
  1. {janito-3.2.0 → janito-3.4.0}/PKG-INFO +2 -1
  2. janito-3.4.0/docs/CHANGELOG.md +49 -0
  3. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/CHANGELOG.md +0 -33
  4. {janito-3.2.0 → janito-3.4.0}/docs/guides/using.md +0 -1
  5. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/filemanager.md +1 -1
  6. {janito-3.2.0 → janito-3.4.0}/janito/README.md +0 -3
  7. janito-3.4.0/janito/cli/chat_mode/bindings.py +38 -0
  8. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/session.py +1 -12
  9. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +33 -47
  10. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_plugins.py +43 -52
  11. {janito-3.2.0 → janito-3.4.0}/janito/cli/core/getters.py +0 -3
  12. janito-3.4.0/janito/cli/core/model_guesser.py +54 -0
  13. {janito-3.2.0 → janito-3.4.0}/janito/cli/main_cli.py +12 -9
  14. {janito-3.2.0 → janito-3.4.0}/janito/cli/prompt_core.py +9 -20
  15. {janito-3.2.0 → janito-3.4.0}/janito/drivers/openai/driver.py +0 -1
  16. {janito-3.2.0 → janito-3.4.0}/janito/drivers/zai/driver.py +0 -1
  17. {janito-3.2.0 → janito-3.4.0}/janito/i18n/it.py +46 -46
  18. {janito-3.2.0 → janito-3.4.0}/janito/llm/agent.py +16 -32
  19. janito-3.4.0/janito/llm/auth_utils.py +21 -0
  20. {janito-3.2.0 → janito-3.4.0}/janito/llm/driver.py +0 -8
  21. janito-3.4.0/janito/plugins/__init__.py +17 -0
  22. {janito-3.2.0 → janito-3.4.0}/janito/plugins/auto_loader.py +11 -12
  23. {janito-3.2.0 → janito-3.4.0}/janito/plugins/auto_loader_fixed.py +11 -12
  24. {janito-3.2.0/janito/plugin_system → janito-3.4.0/janito/plugins}/base.py +2 -5
  25. {janito-3.2.0 → janito-3.4.0}/janito/plugins/builtin.py +1 -15
  26. janito-3.4.0/janito/plugins/core_adapter.py +53 -0
  27. janito-3.4.0/janito/plugins/core_loader.py +120 -0
  28. janito-3.4.0/janito/plugins/core_loader_fixed.py +125 -0
  29. {janito-3.2.0 → janito-3.4.0}/janito/plugins/discovery.py +5 -5
  30. {janito-3.2.0 → janito-3.4.0}/janito/plugins/discovery_core.py +9 -14
  31. {janito-3.2.0 → janito-3.4.0}/janito/plugins/manager.py +1 -1
  32. {janito-3.2.0 → janito-3.4.0}/janito/providers/__init__.py +0 -1
  33. janito-3.4.0/janito/providers/alibaba/__init__.py +0 -0
  34. janito-3.4.0/janito/tools/__init__.py +36 -0
  35. janito-3.4.0/janito/tools/adapters/__init__.py +1 -0
  36. janito-3.4.0/janito/tools/adapters/local/__init__.py +73 -0
  37. {janito-3.2.0/janito/plugins/tools → janito-3.4.0/janito/tools/adapters/local}/ask_user.py +3 -3
  38. {janito-3.2.0/janito/plugins/tools → janito-3.4.0/janito/tools/adapters/local}/create_file.py +6 -6
  39. {janito-3.2.0/janito/plugins/tools → janito-3.4.0/janito/tools/adapters/local}/fetch_url.py +3 -3
  40. {janito-3.2.0/janito/plugins/tools → janito-3.4.0/janito/tools/adapters/local}/replace_text_in_file.py +4 -4
  41. {janito-3.2.0/janito/plugins/tools → janito-3.4.0/janito/tools/adapters/local}/show_image.py +6 -15
  42. {janito-3.2.0/janito/plugins/tools → janito-3.4.0/janito/tools/adapters/local}/show_image_grid.py +6 -15
  43. janito-3.4.0/janito/tools/function_adapter.py +65 -0
  44. janito-3.4.0/janito/tools/loop_protection_decorator.py +145 -0
  45. {janito-3.2.0 → janito-3.4.0}/janito.egg-info/PKG-INFO +2 -1
  46. {janito-3.2.0 → janito-3.4.0}/janito.egg-info/SOURCES.txt +114 -127
  47. {janito-3.2.0 → janito-3.4.0}/janito.egg-info/requires.txt +1 -0
  48. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/codeanalyzer/__init__.py +0 -9
  49. janito-3.4.0/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py +1 -0
  50. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/get_file_outline/core.py +3 -3
  51. janito-3.4.0/plugins/core/codeanalyzer/tools/search_text/__init__.py +1 -0
  52. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/search_text/core.py +3 -3
  53. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/filemanager/__init__.py +0 -33
  54. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/copy_file.py +3 -3
  55. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/create_directory.py +3 -3
  56. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/filemanager/tools/create_file.py +2 -2
  57. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/delete_text_in_file.py +4 -4
  58. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/find_files.py +3 -3
  59. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/move_file.py +3 -3
  60. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/read_files.py +3 -3
  61. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/remove_directory.py +3 -3
  62. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/remove_file.py +3 -3
  63. janito-3.4.0/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +1 -0
  64. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/core.py +2 -2
  65. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/view_file.py +3 -3
  66. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/imagedisplay/__init__.py +1 -1
  67. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/imagedisplay/plugin.py +2 -2
  68. janito-3.4.0/plugins/core/imagedisplay/tools/__init__.py +1 -0
  69. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/imagedisplay/tools/show_image.py +3 -12
  70. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/imagedisplay/tools/show_image_grid.py +3 -12
  71. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/system/__init__.py +0 -3
  72. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/system}/tools/run_bash_command.py +3 -3
  73. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/system}/tools/run_powershell_command.py +3 -3
  74. {janito-3.2.0/janito → janito-3.4.0}/plugins/dev/pythondev/__init__.py +0 -9
  75. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/dev/pythondev}/tools/python_code_run.py +3 -3
  76. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/dev/pythondev}/tools/python_command_run.py +3 -3
  77. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/dev/pythondev}/tools/python_file_run.py +3 -3
  78. {janito-3.2.0/janito → janito-3.4.0}/plugins/dev/visualization/__init__.py +0 -3
  79. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/dev/visualization}/tools/read_chart.py +3 -3
  80. {janito-3.2.0/janito → janito-3.4.0}/plugins/example_plugin.py +1 -1
  81. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/web/webtools}/tools/open_html_in_browser.py +3 -3
  82. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/web/webtools}/tools/open_url.py +3 -3
  83. janito-3.4.0/plugins.txt +1 -0
  84. janito-3.2.0/ANNOUNCEMENT_v3.1.0.md +0 -63
  85. janito-3.2.0/docs/CHANGELOG.md +0 -133
  86. janito-3.2.0/docs/CHANGELOG_3.0.0.md +0 -141
  87. janito-3.2.0/docs/changelogs/CHANGELOG_3.1.0.md +0 -51
  88. janito-3.2.0/docs/together-setup.md +0 -86
  89. janito-3.2.0/init_janito_tools.py +0 -51
  90. janito-3.2.0/janito/cli/chat_mode/bindings.py +0 -64
  91. janito-3.2.0/janito/cli/cli_commands/check_tools.py +0 -212
  92. janito-3.2.0/janito/cli/core/model_guesser.py +0 -70
  93. janito-3.2.0/janito/llm/auth_utils.py +0 -30
  94. janito-3.2.0/janito/llm/cancellation_manager.py +0 -63
  95. janito-3.2.0/janito/llm/enter_cancellation.py +0 -107
  96. janito-3.2.0/janito/plugin_system/__init__.py +0 -10
  97. janito-3.2.0/janito/plugin_system/core_loader.py +0 -217
  98. janito-3.2.0/janito/plugin_system/core_loader_fixed.py +0 -225
  99. janito-3.2.0/janito/plugins/core/imagedisplay/tools/__init__.py +0 -1
  100. janito-3.2.0/janito/plugins/core_adapter.py +0 -131
  101. janito-3.2.0/janito/plugins/tools/__init__.py +0 -10
  102. janito-3.2.0/janito/plugins/tools/core_tools_plugin.py +0 -87
  103. janito-3.2.0/janito/plugins/tools/decorators.py +0 -19
  104. janito-3.2.0/janito/plugins/tools/get_file_outline/__init__.py +0 -7
  105. janito-3.2.0/janito/plugins/tools/search_text/__init__.py +0 -7
  106. janito-3.2.0/janito/plugins/tools/validate_file_syntax/__init__.py +0 -7
  107. janito-3.2.0/janito/providers/together/__init__.py +0 -1
  108. janito-3.2.0/janito/providers/together/model_info.py +0 -69
  109. janito-3.2.0/janito/providers/together/provider.py +0 -108
  110. janito-3.2.0/janito/tools/__init__.py +0 -60
  111. janito-3.2.0/janito/tools/adapters/__init__.py +0 -6
  112. janito-3.2.0/janito/tools/adapters/local/__init__.py +0 -10
  113. janito-3.2.0/janito/tools/cli_initializer.py +0 -88
  114. janito-3.2.0/janito/tools/initialize.py +0 -70
  115. janito-3.2.0/janito/tools/loop_protection_decorator.py +0 -142
  116. {janito-3.2.0 → janito-3.4.0}/.codespellrc +0 -0
  117. {janito-3.2.0 → janito-3.4.0}/.gitattributes +0 -0
  118. {janito-3.2.0 → janito-3.4.0}/.github/workflows/python-app.yml.disabled +0 -0
  119. {janito-3.2.0 → janito-3.4.0}/.gitignore +0 -0
  120. {janito-3.2.0 → janito-3.4.0}/.pre-commit-config.yaml +0 -0
  121. {janito-3.2.0 → janito-3.4.0}/.secrets.baseline +0 -0
  122. {janito-3.2.0 → janito-3.4.0}/.vscode/settings.json +0 -0
  123. {janito-3.2.0 → janito-3.4.0}/LICENSE +0 -0
  124. {janito-3.2.0 → janito-3.4.0}/MARKET_ANALYST_README.md +0 -0
  125. {janito-3.2.0 → janito-3.4.0}/README-dev.md +0 -0
  126. {janito-3.2.0 → janito-3.4.0}/README.md +0 -0
  127. {janito-3.2.0 → janito-3.4.0}/RELEASE_COMPARISON.md +0 -0
  128. {janito-3.2.0 → janito-3.4.0}/UPDATING_DOCS.md +0 -0
  129. {janito-3.2.0 → janito-3.4.0}/adding_mcp.txt +0 -0
  130. {janito-3.2.0 → janito-3.4.0}/docs/DIV.md +0 -0
  131. {janito-3.2.0 → janito-3.4.0}/docs/Interfaces.txt +0 -0
  132. {janito-3.2.0 → janito-3.4.0}/docs/PROFILES.md +0 -0
  133. {janito-3.2.0 → janito-3.4.0}/docs/TOOLBAR-STYLING.md +0 -0
  134. {janito-3.2.0 → janito-3.4.0}/docs/about/costs.md +0 -0
  135. {janito-3.2.0 → janito-3.4.0}/docs/about/vs-webchats.md +0 -0
  136. {janito-3.2.0 → janito-3.4.0}/docs/about/why.md +0 -0
  137. {janito-3.2.0 → janito-3.4.0}/docs/alibaba-setup.md +0 -0
  138. {janito-3.2.0 → janito-3.4.0}/docs/alternatives.md +0 -0
  139. {janito-3.2.0 → janito-3.4.0}/docs/cerebras-setup.md +0 -0
  140. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
  141. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
  142. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
  143. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
  144. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
  145. {janito-3.2.0 → janito-3.4.0}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
  146. {janito-3.2.0 → janito-3.4.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  147. {janito-3.2.0 → janito-3.4.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
  148. {janito-3.2.0 → janito-3.4.0}/docs/code_intelligence/code-generation-observability.md +0 -0
  149. {janito-3.2.0 → janito-3.4.0}/docs/code_intelligence/our-approach.md +0 -0
  150. {janito-3.2.0 → janito-3.4.0}/docs/code_intelligence/why-string-replacement.md +0 -0
  151. {janito-3.2.0 → janito-3.4.0}/docs/concepts/analysis-style.md +0 -0
  152. {janito-3.2.0 → janito-3.4.0}/docs/concepts/human-guided-ai.md +0 -0
  153. {janito-3.2.0 → janito-3.4.0}/docs/concepts/index.md +0 -0
  154. {janito-3.2.0 → janito-3.4.0}/docs/concepts/language-model-clients.md +0 -0
  155. {janito-3.2.0 → janito-3.4.0}/docs/concepts/prompt-design-style.md +0 -0
  156. {janito-3.2.0 → janito-3.4.0}/docs/deepseek-setup.md +0 -0
  157. {janito-3.2.0 → janito-3.4.0}/docs/driver-flow.md +0 -0
  158. {janito-3.2.0 → janito-3.4.0}/docs/driver-request-cancellation.md +0 -0
  159. {janito-3.2.0 → janito-3.4.0}/docs/drivers/events.md +0 -0
  160. {janito-3.2.0 → janito-3.4.0}/docs/drivers.md +0 -0
  161. {janito-3.2.0 → janito-3.4.0}/docs/event-bus.md +0 -0
  162. {janito-3.2.0 → janito-3.4.0}/docs/guides/configuration.md +0 -0
  163. {janito-3.2.0 → janito-3.4.0}/docs/guides/developing.md +0 -0
  164. {janito-3.2.0 → janito-3.4.0}/docs/guides/disabled-tools.md +0 -0
  165. {janito-3.2.0 → janito-3.4.0}/docs/guides/installation.md +0 -0
  166. {janito-3.2.0 → janito-3.4.0}/docs/guides/market-data-sources.md +0 -0
  167. {janito-3.2.0 → janito-3.4.0}/docs/guides/profiles.md +0 -0
  168. {janito-3.2.0 → janito-3.4.0}/docs/guides/prompting/README.md +0 -0
  169. {janito-3.2.0 → janito-3.4.0}/docs/guides/read-chart-examples.md +0 -0
  170. {janito-3.2.0 → janito-3.4.0}/docs/guides/security-commands.md +0 -0
  171. {janito-3.2.0 → janito-3.4.0}/docs/guides/single-shot-terminal.md +0 -0
  172. {janito-3.2.0 → janito-3.4.0}/docs/guides/stock-market-guide.md +0 -0
  173. {janito-3.2.0 → janito-3.4.0}/docs/guides/terminal-shell.md +0 -0
  174. {janito-3.2.0 → janito-3.4.0}/docs/guides/tools-developer-guide.md +0 -0
  175. {janito-3.2.0 → janito-3.4.0}/docs/guides/url-whitelist.md +0 -0
  176. {janito-3.2.0 → janito-3.4.0}/docs/guides/using_tools.md +0 -0
  177. {janito-3.2.0 → janito-3.4.0}/docs/ibm-setup.md +0 -0
  178. {janito-3.2.0 → janito-3.4.0}/docs/imgs/code-generation-observability.png +0 -0
  179. {janito-3.2.0 → janito-3.4.0}/docs/imgs/code_generation_observability.png +0 -0
  180. {janito-3.2.0 → janito-3.4.0}/docs/imgs/happy-programmer.png +0 -0
  181. {janito-3.2.0 → janito-3.4.0}/docs/imgs/happy-programmer.svg +0 -0
  182. {janito-3.2.0 → janito-3.4.0}/docs/imgs/terminal-one-shot.png +0 -0
  183. {janito-3.2.0 → janito-3.4.0}/docs/imgs/terminal-shell.png +0 -0
  184. {janito-3.2.0 → janito-3.4.0}/docs/imgs/terminal_one_shot.png +0 -0
  185. {janito-3.2.0 → janito-3.4.0}/docs/imgs/terminal_shell.png +0 -0
  186. {janito-3.2.0 → janito-3.4.0}/docs/index.md +0 -0
  187. {janito-3.2.0 → janito-3.4.0}/docs/llm-drivers-required-config.md +0 -0
  188. {janito-3.2.0 → janito-3.4.0}/docs/llm-drivers.md +0 -0
  189. {janito-3.2.0 → janito-3.4.0}/docs/meta/developer-toolchain.md +0 -0
  190. {janito-3.2.0 → janito-3.4.0}/docs/meta/quality-checks.txt +0 -0
  191. {janito-3.2.0 → janito-3.4.0}/docs/mistral-setup.md +0 -0
  192. {janito-3.2.0 → janito-3.4.0}/docs/moonshot-setup.md +0 -0
  193. {janito-3.2.0 → janito-3.4.0}/docs/openai-setup.md +0 -0
  194. {janito-3.2.0 → janito-3.4.0}/docs/overrides/partials/copyright.html +0 -0
  195. {janito-3.2.0 → janito-3.4.0}/docs/plugins/ACTUAL_TOOLS_LOCATION.md +0 -0
  196. {janito-3.2.0 → janito-3.4.0}/docs/plugins/MIGRATION_COMPLETE.md +0 -0
  197. {janito-3.2.0 → janito-3.4.0}/docs/plugins/README.md +0 -0
  198. {janito-3.2.0 → janito-3.4.0}/docs/plugins/api-reference.md +0 -0
  199. {janito-3.2.0 → janito-3.4.0}/docs/plugins/architecture.md +0 -0
  200. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
  201. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/imagedisplay.md +0 -0
  202. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/pythondev.md +0 -0
  203. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/system.md +0 -0
  204. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/userinterface.md +0 -0
  205. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/visualization.md +0 -0
  206. {janito-3.2.0 → janito-3.4.0}/docs/plugins/built-in-plugins/webtools.md +0 -0
  207. {janito-3.2.0 → janito-3.4.0}/docs/plugins/configuration.md +0 -0
  208. {janito-3.2.0 → janito-3.4.0}/docs/plugins/examples/advanced.md +0 -0
  209. {janito-3.2.0 → janito-3.4.0}/docs/plugins/examples/basic.md +0 -0
  210. {janito-3.2.0 → janito-3.4.0}/docs/plugins/examples/intermediate.md +0 -0
  211. {janito-3.2.0 → janito-3.4.0}/docs/plugins/plugin-development.md +0 -0
  212. {janito-3.2.0 → janito-3.4.0}/docs/plugins/plugin-resources.md +0 -0
  213. {janito-3.2.0 → janito-3.4.0}/docs/plugins/publishing.md +0 -0
  214. {janito-3.2.0 → janito-3.4.0}/docs/plugins/remote-plugins.md +0 -0
  215. {janito-3.2.0 → janito-3.4.0}/docs/plugins/testing.md +0 -0
  216. {janito-3.2.0 → janito-3.4.0}/docs/provider-platform-access.md +0 -0
  217. {janito-3.2.0 → janito-3.4.0}/docs/public-sources.md +0 -0
  218. {janito-3.2.0 → janito-3.4.0}/docs/reference/api.md +0 -0
  219. {janito-3.2.0 → janito-3.4.0}/docs/reference/azure-openai.md +0 -0
  220. {janito-3.2.0 → janito-3.4.0}/docs/reference/cli-options.md +0 -0
  221. {janito-3.2.0 → janito-3.4.0}/docs/reference/message-handler-model.md +0 -0
  222. {janito-3.2.0 → janito-3.4.0}/docs/reference/rich-message-handler.md +0 -0
  223. {janito-3.2.0 → janito-3.4.0}/docs/security.md +0 -0
  224. {janito-3.2.0 → janito-3.4.0}/docs/supported-providers-models.md +0 -0
  225. {janito-3.2.0 → janito-3.4.0}/docs/tools/search-text.md +0 -0
  226. {janito-3.2.0 → janito-3.4.0}/docs/tools/show-image-grid.md +0 -0
  227. {janito-3.2.0 → janito-3.4.0}/docs/tools/show-image.md +0 -0
  228. {janito-3.2.0 → janito-3.4.0}/docs/tools-index.md +0 -0
  229. {janito-3.2.0 → janito-3.4.0}/docs/tools-natural-results.md +0 -0
  230. {janito-3.2.0 → janito-3.4.0}/docs/tools-precision.md +0 -0
  231. {janito-3.2.0 → janito-3.4.0}/docs/z-ai-setup.md +0 -0
  232. {janito-3.2.0 → janito-3.4.0}/examples/loop_protection_example.py +0 -0
  233. {janito-3.2.0 → janito-3.4.0}/examples/loop_protection_tool_example.py +0 -0
  234. {janito-3.2.0 → janito-3.4.0}/get_nasdaq_top.py +0 -0
  235. {janito-3.2.0 → janito-3.4.0}/ibm-logo.txt +0 -0
  236. {janito-3.2.0 → janito-3.4.0}/janito/__init__.py +0 -0
  237. {janito-3.2.0 → janito-3.4.0}/janito/__main__.py +0 -0
  238. {janito-3.2.0 → janito-3.4.0}/janito/_version.py +0 -0
  239. {janito-3.2.0 → janito-3.4.0}/janito/agent/setup_agent.py +0 -0
  240. {janito-3.2.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
  241. {janito-3.2.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
  242. {janito-3.2.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
  243. {janito-3.2.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
  244. {janito-3.2.0 → janito-3.4.0}/janito/cli/__init__.py +0 -0
  245. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/chat_entry.py +0 -0
  246. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/prompt_style.py +0 -0
  247. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/script_runner.py +0 -0
  248. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  249. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  250. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  251. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  252. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  253. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  254. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  255. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  256. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  257. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  258. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  259. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  260. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  261. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  262. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  263. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  264. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
  265. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  266. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  267. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
  268. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
  269. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  270. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  271. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  272. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
  273. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  274. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  275. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  276. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  277. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
  278. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  279. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
  280. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  281. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  282. {janito-3.2.0 → janito-3.4.0}/janito/cli/chat_mode/toolbar.py +0 -0
  283. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
  284. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_config.py +0 -0
  285. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_drivers.py +0 -0
  286. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_models.py +0 -0
  287. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_profiles.py +0 -0
  288. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_providers.py +0 -0
  289. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
  290. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/list_tools.py +0 -0
  291. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/model_selection.py +0 -0
  292. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/model_utils.py +0 -0
  293. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/ping_providers.py +0 -0
  294. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/set_api_key.py +0 -0
  295. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/show_config.py +0 -0
  296. {janito-3.2.0 → janito-3.4.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  297. {janito-3.2.0 → janito-3.4.0}/janito/cli/config.py +0 -0
  298. {janito-3.2.0 → janito-3.4.0}/janito/cli/console.py +0 -0
  299. {janito-3.2.0 → janito-3.4.0}/janito/cli/core/__init__.py +0 -0
  300. {janito-3.2.0 → janito-3.4.0}/janito/cli/core/event_logger.py +0 -0
  301. {janito-3.2.0 → janito-3.4.0}/janito/cli/core/runner.py +0 -0
  302. {janito-3.2.0 → janito-3.4.0}/janito/cli/core/setters.py +0 -0
  303. {janito-3.2.0 → janito-3.4.0}/janito/cli/core/unsetters.py +0 -0
  304. {janito-3.2.0 → janito-3.4.0}/janito/cli/main.py +0 -0
  305. {janito-3.2.0 → janito-3.4.0}/janito/cli/prompt_handler.py +0 -0
  306. {janito-3.2.0 → janito-3.4.0}/janito/cli/prompt_setup.py +0 -0
  307. {janito-3.2.0 → janito-3.4.0}/janito/cli/rich_terminal_reporter.py +0 -0
  308. {janito-3.2.0 → janito-3.4.0}/janito/cli/single_shot_mode/__init__.py +0 -0
  309. {janito-3.2.0 → janito-3.4.0}/janito/cli/single_shot_mode/handler.py +0 -0
  310. {janito-3.2.0 → janito-3.4.0}/janito/cli/utils.py +0 -0
  311. {janito-3.2.0 → janito-3.4.0}/janito/cli/verbose_output.py +0 -0
  312. {janito-3.2.0 → janito-3.4.0}/janito/config.py +0 -0
  313. {janito-3.2.0 → janito-3.4.0}/janito/config_manager.py +0 -0
  314. {janito-3.2.0 → janito-3.4.0}/janito/conversation_history.py +0 -0
  315. {janito-3.2.0 → janito-3.4.0}/janito/dir_walk_utils.py +0 -0
  316. {janito-3.2.0 → janito-3.4.0}/janito/docs/GETTING_STARTED.md +0 -0
  317. {janito-3.2.0 → janito-3.4.0}/janito/driver_events.py +0 -0
  318. {janito-3.2.0 → janito-3.4.0}/janito/drivers/azure_openai/driver.py +0 -0
  319. {janito-3.2.0 → janito-3.4.0}/janito/drivers/cerebras/__init__.py +0 -0
  320. {janito-3.2.0 → janito-3.4.0}/janito/drivers/dashscope.bak.zip +0 -0
  321. {janito-3.2.0 → janito-3.4.0}/janito/drivers/openai/README.md +0 -0
  322. {janito-3.2.0 → janito-3.4.0}/janito/drivers/openai_responses.bak.zip +0 -0
  323. {janito-3.2.0 → janito-3.4.0}/janito/drivers/zai/__init__.py +0 -0
  324. {janito-3.2.0 → janito-3.4.0}/janito/event_bus/__init__.py +0 -0
  325. {janito-3.2.0 → janito-3.4.0}/janito/event_bus/bus.py +0 -0
  326. {janito-3.2.0 → janito-3.4.0}/janito/event_bus/event.py +0 -0
  327. {janito-3.2.0 → janito-3.4.0}/janito/event_bus/handler.py +0 -0
  328. {janito-3.2.0 → janito-3.4.0}/janito/event_bus/queue_bus.py +0 -0
  329. {janito-3.2.0 → janito-3.4.0}/janito/exceptions.py +0 -0
  330. {janito-3.2.0 → janito-3.4.0}/janito/formatting.py +0 -0
  331. {janito-3.2.0 → janito-3.4.0}/janito/formatting_token.py +0 -0
  332. {janito-3.2.0 → janito-3.4.0}/janito/gitignore_utils.py +0 -0
  333. /janito-3.2.0/janito/providers/alibaba/__init__.py → /janito-3.4.0/janito/hello.txt +0 -0
  334. {janito-3.2.0 → janito-3.4.0}/janito/i18n/__init__.py +0 -0
  335. {janito-3.2.0 → janito-3.4.0}/janito/i18n/messages.py +0 -0
  336. {janito-3.2.0 → janito-3.4.0}/janito/i18n/pt.py +0 -0
  337. {janito-3.2.0 → janito-3.4.0}/janito/llm/README.md +0 -0
  338. {janito-3.2.0 → janito-3.4.0}/janito/llm/__init__.py +0 -0
  339. {janito-3.2.0 → janito-3.4.0}/janito/llm/auth.py +0 -0
  340. {janito-3.2.0 → janito-3.4.0}/janito/llm/driver_config.py +0 -0
  341. {janito-3.2.0 → janito-3.4.0}/janito/llm/driver_config_builder.py +0 -0
  342. {janito-3.2.0 → janito-3.4.0}/janito/llm/driver_input.py +0 -0
  343. {janito-3.2.0 → janito-3.4.0}/janito/llm/message_parts.py +0 -0
  344. {janito-3.2.0 → janito-3.4.0}/janito/llm/model.py +0 -0
  345. {janito-3.2.0 → janito-3.4.0}/janito/llm/provider.py +0 -0
  346. {janito-3.2.0 → janito-3.4.0}/janito/mkdocs.yml +0 -0
  347. {janito-3.2.0 → janito-3.4.0}/janito/perf_singleton.py +0 -0
  348. {janito-3.2.0 → janito-3.4.0}/janito/performance_collector.py +0 -0
  349. {janito-3.2.0 → janito-3.4.0}/janito/platform_discovery.py +0 -0
  350. {janito-3.2.0 → janito-3.4.0}/janito/plugins/config.py +0 -0
  351. {janito-3.2.0 → janito-3.4.0}/janito/provider_config.py +0 -0
  352. {janito-3.2.0 → janito-3.4.0}/janito/provider_registry.py +0 -0
  353. {janito-3.2.0 → janito-3.4.0}/janito/providers/alibaba/model_info.py +0 -0
  354. {janito-3.2.0 → janito-3.4.0}/janito/providers/alibaba/provider.py +0 -0
  355. {janito-3.2.0 → janito-3.4.0}/janito/providers/anthropic/model_info.py +0 -0
  356. {janito-3.2.0 → janito-3.4.0}/janito/providers/anthropic/provider.py +0 -0
  357. {janito-3.2.0 → janito-3.4.0}/janito/providers/azure_openai/model_info.py +0 -0
  358. {janito-3.2.0 → janito-3.4.0}/janito/providers/azure_openai/provider.py +0 -0
  359. {janito-3.2.0 → janito-3.4.0}/janito/providers/cerebras/__init__.py +0 -0
  360. {janito-3.2.0 → janito-3.4.0}/janito/providers/cerebras/model_info.py +0 -0
  361. {janito-3.2.0 → janito-3.4.0}/janito/providers/cerebras/provider.py +0 -0
  362. {janito-3.2.0 → janito-3.4.0}/janito/providers/dashscope.bak.zip +0 -0
  363. {janito-3.2.0 → janito-3.4.0}/janito/providers/deepseek/__init__.py +0 -0
  364. {janito-3.2.0 → janito-3.4.0}/janito/providers/deepseek/model_info.py +0 -0
  365. {janito-3.2.0 → janito-3.4.0}/janito/providers/deepseek/provider.py +0 -0
  366. {janito-3.2.0 → janito-3.4.0}/janito/providers/google/__init__.py +0 -0
  367. {janito-3.2.0 → janito-3.4.0}/janito/providers/google/model_info.py +0 -0
  368. {janito-3.2.0 → janito-3.4.0}/janito/providers/google/provider.py +0 -0
  369. {janito-3.2.0 → janito-3.4.0}/janito/providers/ibm/README.md +0 -0
  370. {janito-3.2.0 → janito-3.4.0}/janito/providers/ibm/__init__.py +0 -0
  371. {janito-3.2.0 → janito-3.4.0}/janito/providers/ibm/model_info.py +0 -0
  372. {janito-3.2.0 → janito-3.4.0}/janito/providers/ibm/provider.py +0 -0
  373. {janito-3.2.0 → janito-3.4.0}/janito/providers/mistral/__init__.py +0 -0
  374. {janito-3.2.0 → janito-3.4.0}/janito/providers/mistral/model_info.py +0 -0
  375. {janito-3.2.0 → janito-3.4.0}/janito/providers/mistral/provider.py +0 -0
  376. {janito-3.2.0 → janito-3.4.0}/janito/providers/moonshot/__init__.py +0 -0
  377. {janito-3.2.0 → janito-3.4.0}/janito/providers/moonshot/model_info.py +0 -0
  378. {janito-3.2.0 → janito-3.4.0}/janito/providers/moonshot/provider.py +0 -0
  379. {janito-3.2.0 → janito-3.4.0}/janito/providers/openai/__init__.py +0 -0
  380. {janito-3.2.0 → janito-3.4.0}/janito/providers/openai/model_info.py +0 -0
  381. {janito-3.2.0 → janito-3.4.0}/janito/providers/openai/provider.py +0 -0
  382. {janito-3.2.0 → janito-3.4.0}/janito/providers/openai/schema_generator.py +0 -0
  383. {janito-3.2.0 → janito-3.4.0}/janito/providers/registry.py +0 -0
  384. {janito-3.2.0 → janito-3.4.0}/janito/providers/zai/__init__.py +0 -0
  385. {janito-3.2.0 → janito-3.4.0}/janito/providers/zai/model_info.py +0 -0
  386. {janito-3.2.0 → janito-3.4.0}/janito/providers/zai/provider.py +0 -0
  387. {janito-3.2.0 → janito-3.4.0}/janito/providers/zai/schema_generator.py +0 -0
  388. {janito-3.2.0 → janito-3.4.0}/janito/regions/__init__.py +0 -0
  389. {janito-3.2.0 → janito-3.4.0}/janito/regions/cli.py +0 -0
  390. {janito-3.2.0 → janito-3.4.0}/janito/regions/geo_utils.py +0 -0
  391. {janito-3.2.0 → janito-3.4.0}/janito/regions/provider_regions.py +0 -0
  392. {janito-3.2.0 → janito-3.4.0}/janito/report_events.py +0 -0
  393. {janito-3.2.0 → janito-3.4.0}/janito/shell.bak.zip +0 -0
  394. {janito-3.2.0 → janito-3.4.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  395. {janito-3.2.0 → janito-3.4.0}/janito/tools/README.md +0 -0
  396. {janito-3.2.0 → janito-3.4.0}/janito/tools/adapters/local/adapter.py +0 -0
  397. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/copy_file.py +0 -0
  398. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/create_directory.py +0 -0
  399. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/delete_text_in_file.py +0 -0
  400. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/find_files.py +0 -0
  401. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/__init__.py +0 -0
  402. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/core.py +0 -0
  403. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/java_outline.py +0 -0
  404. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/markdown_outline.py +0 -0
  405. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/python_outline.py +0 -0
  406. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/search_outline.py +0 -0
  407. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/move_file.py +0 -0
  408. {janito-3.2.0/janito/plugins/web/webtools/tools → janito-3.4.0/janito/tools/adapters/local}/open_html_in_browser.py +0 -0
  409. {janito-3.2.0/janito/plugins/web/webtools/tools → janito-3.4.0/janito/tools/adapters/local}/open_url.py +0 -0
  410. {janito-3.2.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_code_run.py +0 -0
  411. {janito-3.2.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_command_run.py +0 -0
  412. {janito-3.2.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_file_run.py +0 -0
  413. {janito-3.2.0/janito/plugins/dev/visualization/tools → janito-3.4.0/janito/tools/adapters/local}/read_chart.py +0 -0
  414. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/read_files.py +0 -0
  415. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/remove_directory.py +0 -0
  416. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/remove_file.py +0 -0
  417. {janito-3.2.0/janito/plugins/core/system/tools → janito-3.4.0/janito/tools/adapters/local}/run_bash_command.py +0 -0
  418. {janito-3.2.0/janito/plugins/core/system/tools → janito-3.4.0/janito/tools/adapters/local}/run_powershell_command.py +0 -0
  419. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/__init__.py +0 -0
  420. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/core.py +0 -0
  421. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/match_lines.py +0 -0
  422. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/pattern_utils.py +0 -0
  423. {janito-3.2.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/traverse_directory.py +0 -0
  424. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/__init__.py +0 -0
  425. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/core.py +0 -0
  426. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/css_validator.py +0 -0
  427. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/html_validator.py +0 -0
  428. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/jinja2_validator.py +0 -0
  429. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/js_validator.py +0 -0
  430. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/json_validator.py +0 -0
  431. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/markdown_validator.py +0 -0
  432. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/ps1_validator.py +0 -0
  433. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/python_validator.py +0 -0
  434. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/xml_validator.py +0 -0
  435. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/yaml_validator.py +0 -0
  436. {janito-3.2.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/view_file.py +0 -0
  437. {janito-3.2.0 → janito-3.4.0}/janito/tools/base.py +0 -0
  438. {janito-3.2.0 → janito-3.4.0}/janito/tools/disabled_tools.py +0 -0
  439. {janito-3.2.0 → janito-3.4.0}/janito/tools/inspect_registry.py +0 -0
  440. {janito-3.2.0 → janito-3.4.0}/janito/tools/loop_protection.py +0 -0
  441. {janito-3.2.0 → janito-3.4.0}/janito/tools/outline_file.bak.zip +0 -0
  442. {janito-3.2.0 → janito-3.4.0}/janito/tools/path_security.py +0 -0
  443. {janito-3.2.0 → janito-3.4.0}/janito/tools/path_utils.py +0 -0
  444. {janito-3.2.0 → janito-3.4.0}/janito/tools/permissions.py +0 -0
  445. {janito-3.2.0 → janito-3.4.0}/janito/tools/permissions_parse.py +0 -0
  446. {janito-3.2.0 → janito-3.4.0}/janito/tools/tool_base.py +0 -0
  447. {janito-3.2.0 → janito-3.4.0}/janito/tools/tool_events.py +0 -0
  448. {janito-3.2.0 → janito-3.4.0}/janito/tools/tool_run_exception.py +0 -0
  449. {janito-3.2.0 → janito-3.4.0}/janito/tools/tool_use_tracker.py +0 -0
  450. {janito-3.2.0 → janito-3.4.0}/janito/tools/tool_utils.py +0 -0
  451. {janito-3.2.0 → janito-3.4.0}/janito/tools/tools_adapter.py +0 -0
  452. {janito-3.2.0 → janito-3.4.0}/janito/tools/tools_schema.py +0 -0
  453. {janito-3.2.0 → janito-3.4.0}/janito/tools/url_whitelist.py +0 -0
  454. {janito-3.2.0 → janito-3.4.0}/janito/utils.py +0 -0
  455. {janito-3.2.0 → janito-3.4.0}/janito.egg-info/dependency_links.txt +0 -0
  456. {janito-3.2.0 → janito-3.4.0}/janito.egg-info/entry_points.txt +0 -0
  457. {janito-3.2.0 → janito-3.4.0}/janito.egg-info/top_level.txt +0 -0
  458. {janito-3.2.0 → janito-3.4.0}/market_prompt_fix.py +0 -0
  459. {janito-3.2.0 → janito-3.4.0}/market_test.py +0 -0
  460. {janito-3.2.0 → janito-3.4.0}/mkdocs.yml +0 -0
  461. {janito-3.2.0 → janito-3.4.0}/mkdocs_hooks.py +0 -0
  462. {janito-3.2.0/janito → janito-3.4.0}/plugins/__init__.py +0 -0
  463. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/__init__.py +0 -0
  464. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/get_file_outline/java_outline.py +0 -0
  465. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/get_file_outline/markdown_outline.py +0 -0
  466. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/get_file_outline/python_outline.py +0 -0
  467. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/get_file_outline/search_outline.py +0 -0
  468. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/search_text/match_lines.py +0 -0
  469. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/search_text/pattern_utils.py +0 -0
  470. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/codeanalyzer}/tools/search_text/traverse_directory.py +0 -0
  471. {janito-3.2.0/janito → janito-3.4.0}/plugins/core/filemanager/tools/replace_text_in_file.py +0 -0
  472. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/css_validator.py +0 -0
  473. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/html_validator.py +0 -0
  474. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/jinja2_validator.py +0 -0
  475. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/js_validator.py +0 -0
  476. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/json_validator.py +0 -0
  477. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/markdown_validator.py +0 -0
  478. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/ps1_validator.py +0 -0
  479. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/python_validator.py +0 -0
  480. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/xml_validator.py +0 -0
  481. {janito-3.2.0/janito/plugins → janito-3.4.0/plugins/core/filemanager}/tools/validate_file_syntax/yaml_validator.py +0 -0
  482. {janito-3.2.0/janito → janito-3.4.0}/plugins/dev/__init__.py +0 -0
  483. {janito-3.2.0/janito → janito-3.4.0}/plugins/ui/__init__.py +0 -0
  484. {janito-3.2.0/janito → janito-3.4.0}/plugins/ui/userinterface/__init__.py +0 -0
  485. {janito-3.2.0/janito → janito-3.4.0}/plugins/ui/userinterface/tools/ask_user.py +0 -0
  486. {janito-3.2.0/janito → janito-3.4.0}/plugins/web/__init__.py +0 -0
  487. {janito-3.2.0/janito → janito-3.4.0}/plugins/web/webtools/__init__.py +0 -0
  488. {janito-3.2.0/janito → janito-3.4.0}/plugins/web/webtools/tools/fetch_url.py +0 -0
  489. {janito-3.2.0 → janito-3.4.0}/pyproject.toml +0 -0
  490. {janito-3.2.0 → janito-3.4.0}/pytest.ini +0 -0
  491. {janito-3.2.0 → janito-3.4.0}/requirements-dev.txt +0 -0
  492. {janito-3.2.0 → janito-3.4.0}/requirements.txt +0 -0
  493. {janito-3.2.0 → janito-3.4.0}/setup.cfg +0 -0
  494. {janito-3.2.0 → janito-3.4.0}/test.txt +0 -0
  495. {janito-3.2.0 → janito-3.4.0}/test_example.py +0 -0
  496. {janito-3.2.0 → janito-3.4.0}/test_http_errors.py +0 -0
  497. {janito-3.2.0 → janito-3.4.0}/test_http_errors_direct.py +0 -0
  498. {janito-3.2.0 → janito-3.4.0}/test_key_field_behavior.py +0 -0
  499. {janito-3.2.0 → janito-3.4.0}/test_key_field_protection.py +0 -0
  500. {janito-3.2.0 → janito-3.4.0}/test_loop_protection_return.py +0 -0
  501. {janito-3.2.0 → janito-3.4.0}/test_market_analyst.py +0 -0
  502. {janito-3.2.0 → janito-3.4.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  503. {janito-3.2.0 → janito-3.4.0}/tests/adapters/local/test_read_files.py +0 -0
  504. {janito-3.2.0 → janito-3.4.0}/tests/test_cli_list_models.py +0 -0
  505. {janito-3.2.0 → janito-3.4.0}/tests/test_cli_list_providers.py +0 -0
  506. {janito-3.2.0 → janito-3.4.0}/tests/test_cli_list_providers_alibaba.py +0 -0
  507. {janito-3.2.0 → janito-3.4.0}/tests/test_cli_list_providers_moonshot.py +0 -0
  508. {janito-3.2.0 → janito-3.4.0}/tests/test_cli_version.py +0 -0
  509. {janito-3.2.0 → janito-3.4.0}/tests/test_disabled_tools.py +0 -0
  510. {janito-3.2.0 → janito-3.4.0}/tests/test_plugin_system.py +0 -0
  511. {janito-3.2.0 → janito-3.4.0}/tests/test_provider_alibaba.py +0 -0
  512. {janito-3.2.0 → janito-3.4.0}/tests/test_provider_cerebras.py +0 -0
  513. {janito-3.2.0 → janito-3.4.0}/tests/test_provider_moonshot.py +0 -0
  514. {janito-3.2.0 → janito-3.4.0}/tools/release.py +0 -0
  515. {janito-3.2.0 → janito-3.4.0}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 3.2.0
3
+ Version: 3.4.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
@@ -30,6 +30,7 @@ Requires-Dist: black; extra == "dev"
30
30
  Requires-Dist: questionary>=2.0.1; extra == "dev"
31
31
  Requires-Dist: setuptools_scm>=8.0; extra == "dev"
32
32
  Provides-Extra: coder
33
+ Requires-Dist: janito-coder; extra == "coder"
33
34
  Dynamic: license-file
34
35
 
35
36
  # nctl
@@ -0,0 +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
+
49
+ For detailed information about profiles and their usage, see [PROFILES.md](PROFILES.md).
@@ -517,37 +517,4 @@ For users upgrading from previous versions:
517
517
 
518
518
  ---
519
519
 
520
- ## [3.1.0] - 2025-08-23
521
-
522
- ### Added
523
-
524
- - **Enter Key Cancellation Support for Chat Mode**: Revolutionary usability improvement for interactive chat sessions
525
- - **Instant Request Cancellation**: Press **Enter key** at any time to immediately cancel current LLM operations
526
- - **Global Cancellation Manager**: Robust cross-component cancellation system spanning agent, driver, and prompt handler
527
- - **User Feedback**: Clear visual confirmation with red "Request cancelled by Enter key" message
528
- - **Clean State Management**: Automatic cleanup of cancellation state after request completion
529
- - **Thread-Safe Implementation**: Safe cancellation across multiple threads and async operations
530
-
531
- ### Technical Implementation
532
-
533
- - **Global Cancellation Manager**: New `janito.llm.cancellation_manager` module provides centralized cancellation handling
534
- - **Key Binding Integration**: Enhanced chat mode with dedicated Enter key handling for cancellation
535
- - **Cross-Component Support**: Cancellation signals properly propagate through entire application stack
536
- - **Backward Compatible**: All existing functionality preserved, cancellation is additive feature
537
-
538
- ### Developer Experience
539
-
540
- - **Extensible Architecture**: Cancellation system designed for future integration with other components
541
- - **Clean API**: Simple interface for starting, cancelling, and clearing requests across application
542
- - **Comprehensive Testing**: Full test coverage for cancellation scenarios and edge cases
543
-
544
- ### Documentation
545
-
546
- - Updated CLI options documentation with new cancellation behavior
547
- - Enhanced chat mode guides with cancellation instructions
548
- - Added troubleshooting section for long-running requests
549
- - New dedicated changelog: [CHANGELOG_3.1.0.md](../changelogs/CHANGELOG_3.1.0.md)
550
-
551
- ---
552
-
553
520
  **Full Changelog**: https://github.com/ikignosis/janito/compare/v2.22.0...v2.23.0
@@ -24,7 +24,6 @@ janito --web
24
24
  ## Basic Usage Tips
25
25
  - Use natural language to describe what you want Janito to do (e.g., "Add type hints to all functions in utils.py").
26
26
  - In the chat shell, use `/help` for available commands. Use `/exec on` to enable code/shell execution tools at runtime.
27
- - **Press Enter** at any time to cancel a long-running request in chat mode
28
27
  - Use CLI flags to customize behavior (see [CLI Options](../reference/cli-options.md)).
29
28
 
30
29
  ## More Resources
@@ -74,7 +74,7 @@ Overwrite existing file (use with caution):
74
74
  - **Path Expansion**: Supports `~` for home directory and environment variables like `$HOME`
75
75
  - **Directory Creation**: Automatically creates parent directories as needed
76
76
  - **Encoding Safety**: Uses UTF-8 encoding with proper error handling for international characters
77
- - **Loop Protection**: Prevents repeated create calls for the same path within a short window (1 allowed per 10 seconds)
77
+ - **Loop Protection**: Prevents excessive file creation calls (max 5 per 10 seconds per file)
78
78
 
79
79
  **Return Values:**
80
80
 
@@ -106,9 +106,6 @@ janito --set model=kimi-k1-8k
106
106
 
107
107
  ## Advanced Features
108
108
 
109
- ### 🚀 New in v3.1.0: Enter Key Cancellation
110
- **Chat Mode Enhancement**: Press **Enter** at any time to instantly cancel long-running requests in interactive chat mode. No more waiting for stuck requests!
111
-
112
109
  ### Tool Usage
113
110
 
114
111
  Janito includes powerful built-in tools for:
@@ -0,0 +1,38 @@
1
+ """
2
+ Key bindings for Janito Chat CLI.
3
+ """
4
+
5
+ from prompt_toolkit.key_binding import KeyBindings
6
+ from janito.tools.permissions import get_global_allowed_permissions
7
+
8
+
9
+ class KeyBindingsFactory:
10
+ @staticmethod
11
+ def create():
12
+ bindings = KeyBindings()
13
+
14
+ @bindings.add("c-y")
15
+ def _(event):
16
+ buf = event.app.current_buffer
17
+ buf.text = "Yes"
18
+ buf.validate_and_handle()
19
+
20
+ @bindings.add("c-n")
21
+ def _(event):
22
+ buf = event.app.current_buffer
23
+ buf.text = "No"
24
+ buf.validate_and_handle()
25
+
26
+ @bindings.add("f2")
27
+ def _(event):
28
+ buf = event.app.current_buffer
29
+ buf.text = "/restart"
30
+ buf.validate_and_handle()
31
+
32
+ @bindings.add("f12")
33
+ def _(event):
34
+ buf = event.app.current_buffer
35
+ buf.text = "Do It"
36
+ buf.validate_and_handle()
37
+
38
+ return bindings
@@ -22,7 +22,6 @@ import time
22
22
 
23
23
  # Shared prompt/agent factory
24
24
  from janito.cli.prompt_setup import setup_agent_and_prompt_handler
25
- from janito.llm.cancellation_manager import get_cancellation_manager
26
25
 
27
26
  import time
28
27
 
@@ -114,10 +113,6 @@ class ChatSession:
114
113
 
115
114
  # Check if multi-line mode should be enabled by default
116
115
  self.multi_line_mode = getattr(args, "multi", False) if args else False
117
-
118
- # Default to single-line mode (Enter submits) unless explicitly enabled
119
- if not self.multi_line_mode:
120
- self.multi_line_mode = False
121
116
 
122
117
  def _select_profile_and_role(self, args, role):
123
118
  profile, role_arg, python_profile, market_profile = self._extract_args(args)
@@ -288,13 +283,7 @@ class ChatSession:
288
283
  )
289
284
  )
290
285
 
291
- try:
292
- self._prompt_handler.run_prompt(cmd_input)
293
- finally:
294
- # Ensure cancellation manager is cleared
295
- cancel_manager = get_cancellation_manager()
296
- cancel_manager.clear_current_request()
297
-
286
+ self._prompt_handler.run_prompt(cmd_input)
298
287
  end_time = time.time()
299
288
  elapsed = end_time - start_time
300
289
  self.msg_count += 1
@@ -59,53 +59,39 @@ Examples:
59
59
  command = args[0].lower()
60
60
  whitelist_manager = get_url_whitelist_manager()
61
61
 
62
- handlers = {
63
- "list": self._handle_list,
64
- "add": self._handle_add,
65
- "remove": self._handle_remove,
66
- "clear": self._handle_clear,
67
- }
68
-
69
- handler = handlers.get(command)
70
- if handler:
71
- handler(args, whitelist_manager)
62
+ if command == "list":
63
+ sites = whitelist_manager.get_allowed_sites()
64
+ if sites:
65
+ print("Allowed sites:")
66
+ for site in sites:
67
+ print(f" • {site}")
68
+ else:
69
+ print("No sites are whitelisted (all sites are allowed)")
70
+
71
+ elif command == "add":
72
+ if len(args) < 2:
73
+ print("Error: Please specify a site to add")
74
+ return
75
+ site = args[1]
76
+ if whitelist_manager.add_allowed_site(site):
77
+ print(f"✅ Added '{site}' to allowed sites")
78
+ else:
79
+ print(f"ℹ️ '{site}' is already in allowed sites")
80
+
81
+ elif command == "remove":
82
+ if len(args) < 2:
83
+ print("Error: Please specify a site to remove")
84
+ return
85
+ site = args[1]
86
+ if whitelist_manager.remove_allowed_site(site):
87
+ print(f"✅ Removed '{site}' from allowed sites")
88
+ else:
89
+ print(f"ℹ️ '{site}' was not in allowed sites")
90
+
91
+ elif command == "clear":
92
+ whitelist_manager.clear_whitelist()
93
+ print("✅ Cleared all allowed sites (all sites are now allowed)")
94
+
72
95
  else:
73
96
  print(f"Error: Unknown command '{command}'")
74
97
  print(self.get_usage())
75
-
76
- def _handle_list(self, args, whitelist_manager):
77
- """Handle list command."""
78
- sites = whitelist_manager.get_allowed_sites()
79
- if sites:
80
- print("Allowed sites:")
81
- for site in sites:
82
- print(f" • {site}")
83
- else:
84
- print("No sites are whitelisted (all sites are allowed)")
85
-
86
- def _handle_add(self, args, whitelist_manager):
87
- """Handle add command."""
88
- if len(args) < 2:
89
- print("Error: Please specify a site to add")
90
- return
91
- site = args[1]
92
- if whitelist_manager.add_allowed_site(site):
93
- print(f"✅ Added '{site}' to allowed sites")
94
- else:
95
- print(f"ℹ️ '{site}' is already in allowed sites")
96
-
97
- def _handle_remove(self, args, whitelist_manager):
98
- """Handle remove command."""
99
- if len(args) < 2:
100
- print("Error: Please specify a site to remove")
101
- return
102
- site = args[1]
103
- if whitelist_manager.remove_allowed_site(site):
104
- print(f"✅ Removed '{site}' from allowed sites")
105
- else:
106
- print(f"ℹ️ '{site}' was not in allowed sites")
107
-
108
- def _handle_clear(self, args, whitelist_manager):
109
- """Handle clear command."""
110
- whitelist_manager.clear_whitelist()
111
- print("✅ Cleared all allowed sites (all sites are now allowed)")
@@ -8,11 +8,7 @@ from janito.plugins.discovery import list_available_plugins
8
8
  import os
9
9
  from janito.plugins.manager import PluginManager
10
10
  from janito.plugins.builtin import BuiltinPluginRegistry
11
- from janito.plugins.auto_loader_fixed import (
12
- load_core_plugins,
13
- get_loaded_core_plugins,
14
- is_core_plugin,
15
- )
11
+ from janito.plugins.auto_loader_fixed import load_core_plugins, get_loaded_core_plugins, is_core_plugin
16
12
  from rich.console import Console
17
13
  from rich.table import Table
18
14
  from rich.panel import Panel
@@ -55,8 +51,7 @@ def _list_available_plugins():
55
51
  console.print(table)
56
52
 
57
53
  # Show core plugins
58
- from janito.plugin_system.core_loader_fixed import get_core_plugins
59
-
54
+ from janito.plugins.core_loader_fixed import get_core_plugins
60
55
  core_plugins = get_core_plugins()
61
56
  core_table = Table(title="Core Plugins (Enabled by Default)")
62
57
  core_table.add_column("Plugin Name", style="cyan", no_wrap=True)
@@ -67,16 +62,14 @@ def _list_available_plugins():
67
62
 
68
63
  console.print(core_table)
69
64
  else:
70
- console.print(
71
- Panel(
72
- "No plugins found in search paths\n"
73
- f"[dim]Search paths:[/dim]\n"
74
- f" • {os.getcwd()}/plugins\n"
75
- f" {os.path.expanduser('~')}/.janito/plugins",
76
- title="No Plugins Found",
77
- style="yellow",
78
- )
79
- )
65
+ console.print(Panel(
66
+ "No plugins found in search paths\n"
67
+ f"[dim]Search paths:[/dim]\n"
68
+ f" {os.getcwd()}/plugins\n"
69
+ f" • {os.path.expanduser('~')}/.janito/plugins",
70
+ title="No Plugins Found",
71
+ style="yellow"
72
+ ))
80
73
 
81
74
 
82
75
  def _print_builtin_plugins(builtin_plugins):
@@ -99,7 +92,7 @@ def _print_external_plugins(available, builtin_plugins):
99
92
  def _list_plugin_resources():
100
93
  """List all resources from loaded plugins using rich formatting."""
101
94
  from janito.plugins.auto_loader_fixed import get_plugin_manager
102
-
95
+
103
96
  console = Console()
104
97
  manager = get_plugin_manager()
105
98
  all_resources = manager.list_all_resources()
@@ -107,11 +100,11 @@ def _list_plugin_resources():
107
100
  if all_resources:
108
101
  for plugin_name, resources in all_resources.items():
109
102
  metadata = manager.get_plugin_metadata(plugin_name)
110
- version = metadata.version if metadata else "unknown"
111
-
103
+ version = metadata.version if metadata else 'unknown'
104
+
112
105
  # Create panel for each plugin
113
106
  panel_content = []
114
-
107
+
115
108
  tools = [r for r in resources if r["type"] == "tool"]
116
109
  commands = [r for r in resources if r["type"] == "command"]
117
110
  configs = [r for r in resources if r["type"] == "config"]
@@ -129,25 +122,19 @@ def _list_plugin_resources():
129
122
  if configs:
130
123
  panel_content.append("[bold yellow]Configuration:[/bold yellow]")
131
124
  for config in configs:
132
- panel_content.append(
133
- f" • {config['name']}: {config['description']}"
134
- )
135
-
136
- console.print(
137
- Panel(
138
- "\n".join(panel_content),
139
- title=f"{plugin_name} v{version}",
140
- style="cyan",
141
- )
142
- )
125
+ panel_content.append(f" • {config['name']}: {config['description']}")
126
+
127
+ console.print(Panel(
128
+ "\n".join(panel_content),
129
+ title=f"{plugin_name} v{version}",
130
+ style="cyan"
131
+ ))
143
132
  else:
144
- console.print(
145
- Panel(
146
- "No plugins are currently loaded.",
147
- title="No Plugin Resources",
148
- style="yellow",
149
- )
150
- )
133
+ console.print(Panel(
134
+ "No plugins are currently loaded.",
135
+ title="No Plugin Resources",
136
+ style="yellow"
137
+ ))
151
138
 
152
139
 
153
140
  def _print_resources_by_type(resources):
@@ -175,7 +162,7 @@ def _print_resources_by_type(resources):
175
162
  def _list_loaded_plugins():
176
163
  """List loaded plugins using rich formatting."""
177
164
  from janito.plugins.auto_loader_fixed import get_plugin_manager
178
-
165
+
179
166
  console = Console()
180
167
  manager = get_plugin_manager()
181
168
  loaded = manager.list_plugins()
@@ -190,38 +177,42 @@ def _list_loaded_plugins():
190
177
 
191
178
  core_plugins = []
192
179
  other_plugins = []
193
-
180
+
194
181
  for plugin_name in loaded:
195
182
  if is_core_plugin(plugin_name):
196
183
  core_plugins.append(plugin_name)
197
184
  else:
198
185
  other_plugins.append(plugin_name)
199
-
186
+
200
187
  # Add core plugins
201
188
  for plugin_name in core_plugins:
202
189
  metadata = manager.get_plugin_metadata(plugin_name)
203
190
  if metadata:
204
191
  table.add_row(
205
- metadata.name, metadata.version, metadata.description, "🔵 Core"
192
+ metadata.name,
193
+ metadata.version,
194
+ metadata.description,
195
+ "🔵 Core"
206
196
  )
207
-
197
+
208
198
  # Add other plugins
209
199
  for plugin_name in other_plugins:
210
200
  metadata = manager.get_plugin_metadata(plugin_name)
211
201
  if metadata:
212
202
  table.add_row(
213
- metadata.name, metadata.version, metadata.description, "🔶 External"
203
+ metadata.name,
204
+ metadata.version,
205
+ metadata.description,
206
+ "🔶 External"
214
207
  )
215
208
 
216
209
  console.print(table)
217
210
  else:
218
- console.print(
219
- Panel(
220
- "No plugins are currently loaded.",
221
- title="No Plugins Loaded",
222
- style="yellow",
223
- )
224
- )
211
+ console.print(Panel(
212
+ "No plugins are currently loaded.",
213
+ title="No Plugins Loaded",
214
+ style="yellow"
215
+ ))
225
216
 
226
217
 
227
218
  def _print_plugin_details(manager, plugin_name):
@@ -5,7 +5,6 @@ import sys
5
5
  from janito.cli.cli_commands.list_providers import handle_list_providers
6
6
  from janito.cli.cli_commands.list_models import handle_list_models
7
7
  from janito.cli.cli_commands.list_tools import handle_list_tools
8
- from janito.cli.cli_commands.check_tools import handle_check_tools
9
8
  from janito.cli.cli_commands.show_config import handle_show_config
10
9
  from janito.cli.cli_commands.list_config import handle_list_config
11
10
  from janito.cli.cli_commands.list_drivers import handle_list_drivers
@@ -29,7 +28,6 @@ GETTER_KEYS = [
29
28
  "list_plugins",
30
29
  "list_plugins_available",
31
30
  "list_resources",
32
- "check_tools",
33
31
  ]
34
32
 
35
33
 
@@ -66,7 +64,6 @@ def handle_getter(args, config_mgr=None):
66
64
  "list_plugins": partial(handle_list_plugins, args),
67
65
  "list_plugins_available": partial(handle_list_plugins, args),
68
66
  "list_resources": partial(handle_list_plugins, args),
69
- "check_tools": partial(handle_check_tools, args),
70
67
  }
71
68
  for arg in GETTER_KEYS:
72
69
  if getattr(args, arg, False) and arg in GETTER_DISPATCH:
@@ -0,0 +1,54 @@
1
+ """
2
+ Module for guessing the provider based on model names.
3
+ """
4
+
5
+ from janito.providers.registry import LLMProviderRegistry
6
+
7
+
8
+ def guess_provider_from_model(model_name: str) -> str:
9
+ """
10
+ Guess the provider based on the model name.
11
+
12
+ Args:
13
+ model_name: The name of the model to guess the provider for
14
+
15
+ Returns:
16
+ The provider name if a match is found, None otherwise
17
+ """
18
+ if not model_name:
19
+ return None
20
+
21
+ model_name = model_name.lower()
22
+
23
+ # Check each provider's models
24
+ for provider_name in LLMProviderRegistry.list_providers():
25
+ provider_class = LLMProviderRegistry.get(provider_name)
26
+ if not provider_class:
27
+ continue
28
+
29
+ # Get model specs for this provider
30
+ try:
31
+ if hasattr(provider_class, "MODEL_SPECS"):
32
+ model_specs = provider_class.MODEL_SPECS
33
+ for spec_model_name in model_specs.keys():
34
+ if spec_model_name.lower() == model_name:
35
+ return provider_name
36
+
37
+ # Handle special cases like moonshot
38
+ if provider_name == "moonshot":
39
+ try:
40
+ from janito.providers.moonshot.model_info import (
41
+ MOONSHOT_MODEL_SPECS,
42
+ )
43
+
44
+ for spec_model_name in MOONSHOT_MODEL_SPECS.keys():
45
+ if spec_model_name.lower() == model_name:
46
+ return "moonshot"
47
+ except ImportError:
48
+ pass
49
+
50
+ except Exception:
51
+ # Skip providers that have issues accessing model specs
52
+ continue
53
+
54
+ return None
@@ -238,13 +238,6 @@ definition = [
238
238
  "help": "List all resources (tools, commands, config) from loaded plugins",
239
239
  },
240
240
  ),
241
- (
242
- ["--check-tools"],
243
- {
244
- "action": "store_true",
245
- "help": "Check all registered tools for signature validation and availability",
246
- },
247
- ),
248
241
  ]
249
242
 
250
243
  MODIFIER_KEYS = [
@@ -276,7 +269,18 @@ GETTER_KEYS = [
276
269
  "region_info",
277
270
  "list_providers_region",
278
271
  "ping",
279
- "check_tools",
272
+ ]
273
+ GETTER_KEYS = [
274
+ "show_config",
275
+ "list_providers",
276
+ "list_profiles",
277
+ "list_models",
278
+ "list_tools",
279
+ "list_config",
280
+ "list_drivers",
281
+ "region_info",
282
+ "list_providers_region",
283
+ "ping",
280
284
  ]
281
285
 
282
286
 
@@ -402,7 +406,6 @@ class JanitoCLI:
402
406
  or self.args.list_plugins_available
403
407
  or self.args.list_resources
404
408
  or self.args.ping
405
- or self.args.check_tools
406
409
  ):
407
410
  self._maybe_print_verbose_provider_model()
408
411
  handle_getter(self.args)
@@ -207,26 +207,15 @@ class PromptHandler:
207
207
  """
208
208
  try:
209
209
  self._print_verbose_debug("Calling agent.chat()...")
210
-
211
- # Use global cancellation manager
212
- from janito.llm.cancellation_manager import get_cancellation_manager
213
-
214
- cancel_manager = get_cancellation_manager()
215
- driver_cancel_event = cancel_manager.start_new_request()
216
-
217
- try:
218
- final_event = self.agent.chat(prompt=user_prompt)
219
- if hasattr(self.agent, "set_latest_event"):
220
- self.agent.set_latest_event(final_event)
221
- self.agent.last_event = final_event
222
- self._print_verbose_debug(f"agent.chat() returned: {final_event}")
223
- self._print_verbose_final_event(final_event)
224
- if on_event and final_event is not None:
225
- on_event(final_event)
226
- global_event_bus.publish(final_event)
227
- finally:
228
- cancel_manager.clear_current_request()
229
-
210
+ final_event = self.agent.chat(prompt=user_prompt)
211
+ if hasattr(self.agent, "set_latest_event"):
212
+ self.agent.set_latest_event(final_event)
213
+ self.agent.last_event = final_event
214
+ self._print_verbose_debug(f"agent.chat() returned: {final_event}")
215
+ self._print_verbose_final_event(final_event)
216
+ if on_event and final_event is not None:
217
+ on_event(final_event)
218
+ global_event_bus.publish(final_event)
230
219
  except KeyboardInterrupt:
231
220
  # Capture user interrupt / cancellation
232
221
  self.console.print("[red]Interrupted by the user.[/red]")
@@ -181,7 +181,6 @@ class OpenAIModelDriver(LLMDriver):
181
181
  is_insufficient_quota = (
182
182
  "insufficient_quota" in lower_err
183
183
  or "exceeded your current quota" in lower_err
184
- or "exceeded_current_quota_error" in lower_err
185
184
  )
186
185
  is_rate_limit = (
187
186
  status_code == 429
@@ -174,7 +174,6 @@ class ZAIModelDriver(LLMDriver):
174
174
  is_insufficient_quota = (
175
175
  "insufficient_quota" in lower_err
176
176
  or "exceeded your current quota" in lower_err
177
- or "exceeded_current_quota_error" in lower_err
178
177
  )
179
178
  is_rate_limit = (
180
179
  status_code == 429