janito 3.3.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 (574) hide show
  1. {janito-3.3.0 → janito-3.4.0}/PKG-INFO +2 -1
  2. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_plugins.py +48 -52
  3. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/getters.py +0 -3
  4. {janito-3.3.0 → janito-3.4.0}/janito/cli/main_cli.py +12 -9
  5. {janito-3.3.0 → janito-3.4.0}/janito/drivers/openai/driver.py +0 -1
  6. {janito-3.3.0 → janito-3.4.0}/janito/drivers/zai/driver.py +0 -1
  7. janito-3.4.0/janito/llm/auth_utils.py +21 -0
  8. janito-3.4.0/janito/plugins/__init__.py +17 -0
  9. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/auto_loader_fixed.py +11 -12
  10. {janito-3.3.0/janito/plugin_system_backup_20250825_070018 → janito-3.4.0/janito/plugins}/base.py +2 -5
  11. {janito-3.3.0 → janito-3.4.0}/janito/plugins/builtin.py +1 -15
  12. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/core_adapter.py +9 -11
  13. {janito-3.3.0/janito/plugin_system_backup_20250825_070018 → janito-3.4.0/janito/plugins}/core_loader.py +34 -58
  14. janito-3.3.0/janito/plugins/core_loader.py → janito-3.4.0/janito/plugins/core_loader_fixed.py +26 -45
  15. {janito-3.3.0 → janito-3.4.0}/janito/plugins/discovery.py +3 -3
  16. janito-3.4.0/janito/providers/alibaba/__init__.py +0 -0
  17. janito-3.4.0/janito/tools/__init__.py +36 -0
  18. janito-3.4.0/janito/tools/adapters/__init__.py +1 -0
  19. janito-3.4.0/janito/tools/adapters/local/__init__.py +73 -0
  20. {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/ask_user.py +3 -3
  21. {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/create_file.py +4 -4
  22. {janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/delete_text_in_file.py +0 -1
  23. {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/fetch_url.py +3 -3
  24. {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/replace_text_in_file.py +4 -4
  25. {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/show_image.py +6 -15
  26. {janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/tools → janito-3.4.0/janito/tools/adapters/local}/show_image_grid.py +5 -13
  27. janito-3.4.0/janito/tools/base.py +12 -0
  28. janito-3.4.0/janito/tools/function_adapter.py +65 -0
  29. {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_base.py +114 -142
  30. {janito-3.3.0 → janito-3.4.0}/janito/tools/tools_schema.py +6 -12
  31. {janito-3.3.0 → janito-3.4.0}/janito.egg-info/PKG-INFO +2 -1
  32. janito-3.4.0/janito.egg-info/SOURCES.txt +481 -0
  33. {janito-3.3.0 → janito-3.4.0}/janito.egg-info/requires.txt +1 -0
  34. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/__init__.py +0 -9
  35. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/filemanager/__init__.py +0 -33
  36. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins/core/filemanager}/tools/copy_file.py +3 -3
  37. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins/core/filemanager}/tools/create_directory.py +3 -3
  38. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/filemanager/tools/delete_text_in_file.py +0 -1
  39. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/imagedisplay/__init__.py +1 -1
  40. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/imagedisplay/plugin.py +2 -2
  41. janito-3.4.0/plugins/core/imagedisplay/tools/__init__.py +1 -0
  42. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/imagedisplay/tools/show_image.py +3 -12
  43. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/imagedisplay/tools/show_image_grid.py +3 -12
  44. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/system/__init__.py +0 -3
  45. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/__init__.py +0 -9
  46. {janito-3.3.0/janito → janito-3.4.0}/plugins/dev/visualization/__init__.py +0 -3
  47. {janito-3.3.0/janito → janito-3.4.0}/plugins/example_plugin.py +1 -1
  48. janito-3.4.0/plugins.txt +1 -0
  49. janito-3.3.0/PLUGIN_CLEANUP_PLAN.md +0 -131
  50. janito-3.3.0/PLUGIN_CLEANUP_SUMMARY.md +0 -109
  51. janito-3.3.0/RELEASE_NOTES_v3.3.0.md +0 -70
  52. janito-3.3.0/init_janito_tools.py +0 -51
  53. janito-3.3.0/janito/cli/cli_commands/check_tools.py +0 -212
  54. janito-3.3.0/janito/llm/auth_utils.py +0 -30
  55. janito-3.3.0/janito/plugin_system_backup_20250825_070018/__init__.py +0 -10
  56. janito-3.3.0/janito/plugin_system_backup_20250825_070018/core_loader_fixed.py +0 -149
  57. janito-3.3.0/janito/plugins/__init__.py +0 -28
  58. janito-3.3.0/janito/plugins/__main__.py +0 -85
  59. janito-3.3.0/janito/plugins/base.py +0 -57
  60. janito-3.3.0/janito/plugins/core/codeanalyzer/__init__.py +0 -43
  61. janito-3.3.0/janito/plugins/core/filemanager/tools/copy_file.py +0 -111
  62. janito-3.3.0/janito/plugins/core/filemanager/tools/create_directory.py +0 -97
  63. janito-3.3.0/janito/plugins/core/filemanager/tools/create_file.py +0 -111
  64. janito-3.3.0/janito/plugins/core/imagedisplay/tools/__init__.py +0 -1
  65. janito-3.3.0/janito/plugins/core/imagedisplay/tools/show_image.py +0 -83
  66. janito-3.3.0/janito/plugins/dev/pythondev/__init__.py +0 -37
  67. janito-3.3.0/janito/plugins_backup_20250825_070018/builtin.py +0 -102
  68. janito-3.3.0/janito/plugins_backup_20250825_070018/config.py +0 -84
  69. janito-3.3.0/janito/plugins_backup_20250825_070018/core/__init__.py +0 -7
  70. janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/__init__.py +0 -124
  71. janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/tools/replace_text_in_file.py +0 -270
  72. janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/__init__.py +0 -14
  73. janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/plugin.py +0 -51
  74. janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/tools/__init__.py +0 -1
  75. janito-3.3.0/janito/plugins_backup_20250825_070018/core/system/__init__.py +0 -23
  76. janito-3.3.0/janito/plugins_backup_20250825_070018/dev/__init__.py +0 -7
  77. janito-3.3.0/janito/plugins_backup_20250825_070018/dev/visualization/__init__.py +0 -23
  78. janito-3.3.0/janito/plugins_backup_20250825_070018/discovery.py +0 -289
  79. janito-3.3.0/janito/plugins_backup_20250825_070018/example_plugin.py +0 -108
  80. janito-3.3.0/janito/plugins_backup_20250825_070018/manager.py +0 -243
  81. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/__init__.py +0 -10
  82. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/core_tools_plugin.py +0 -88
  83. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/decorators.py +0 -19
  84. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/delete_text_in_file.py +0 -135
  85. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/find_files.py +0 -143
  86. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/__init__.py +0 -7
  87. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/core.py +0 -122
  88. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/java_outline.py +0 -47
  89. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/markdown_outline.py +0 -14
  90. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/python_outline.py +0 -303
  91. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/search_outline.py +0 -36
  92. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/move_file.py +0 -131
  93. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/open_html_in_browser.py +0 -51
  94. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/open_url.py +0 -37
  95. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/python_code_run.py +0 -172
  96. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/python_command_run.py +0 -171
  97. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/python_file_run.py +0 -172
  98. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/read_chart.py +0 -259
  99. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/read_files.py +0 -58
  100. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/remove_directory.py +0 -55
  101. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/remove_file.py +0 -58
  102. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/run_bash_command.py +0 -183
  103. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/run_powershell_command.py +0 -218
  104. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/__init__.py +0 -7
  105. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/core.py +0 -205
  106. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/match_lines.py +0 -67
  107. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/pattern_utils.py +0 -73
  108. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/traverse_directory.py +0 -145
  109. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/show_image_grid.py +0 -85
  110. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/__init__.py +0 -7
  111. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/core.py +0 -114
  112. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/css_validator.py +0 -35
  113. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/html_validator.py +0 -100
  114. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/jinja2_validator.py +0 -50
  115. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/js_validator.py +0 -27
  116. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/json_validator.py +0 -6
  117. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/markdown_validator.py +0 -109
  118. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/ps1_validator.py +0 -32
  119. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/python_validator.py +0 -5
  120. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/xml_validator.py +0 -11
  121. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/yaml_validator.py +0 -6
  122. janito-3.3.0/janito/plugins_backup_20250825_070018/tools/view_file.py +0 -172
  123. janito-3.3.0/janito/plugins_backup_20250825_070018/ui/__init__.py +0 -7
  124. janito-3.3.0/janito/plugins_backup_20250825_070018/ui/userinterface/__init__.py +0 -16
  125. janito-3.3.0/janito/plugins_backup_20250825_070018/ui/userinterface/tools/ask_user.py +0 -110
  126. janito-3.3.0/janito/plugins_backup_20250825_070018/web/__init__.py +0 -7
  127. janito-3.3.0/janito/plugins_backup_20250825_070018/web/webtools/__init__.py +0 -33
  128. janito-3.3.0/janito/plugins_backup_20250825_070018/web/webtools/tools/fetch_url.py +0 -458
  129. janito-3.3.0/janito/tools/__init__.py +0 -60
  130. janito-3.3.0/janito/tools/adapters/__init__.py +0 -6
  131. janito-3.3.0/janito/tools/adapters/local/__init__.py +0 -10
  132. janito-3.3.0/janito/tools/base.py +0 -42
  133. janito-3.3.0/janito/tools/cli_initializer.py +0 -88
  134. janito-3.3.0/janito/tools/function_adapter.py +0 -176
  135. janito-3.3.0/janito/tools/initialize.py +0 -70
  136. janito-3.3.0/janito.egg-info/SOURCES.txt +0 -561
  137. janito-3.3.0/test_core_plugins.py +0 -131
  138. janito-3.3.0/test_core_plugins_final.py +0 -131
  139. janito-3.3.0/test_core_plugins_fixed.py +0 -131
  140. {janito-3.3.0 → janito-3.4.0}/.codespellrc +0 -0
  141. {janito-3.3.0 → janito-3.4.0}/.gitattributes +0 -0
  142. {janito-3.3.0 → janito-3.4.0}/.github/workflows/python-app.yml.disabled +0 -0
  143. {janito-3.3.0 → janito-3.4.0}/.gitignore +0 -0
  144. {janito-3.3.0 → janito-3.4.0}/.pre-commit-config.yaml +0 -0
  145. {janito-3.3.0 → janito-3.4.0}/.secrets.baseline +0 -0
  146. {janito-3.3.0 → janito-3.4.0}/.vscode/settings.json +0 -0
  147. {janito-3.3.0 → janito-3.4.0}/LICENSE +0 -0
  148. {janito-3.3.0 → janito-3.4.0}/MARKET_ANALYST_README.md +0 -0
  149. {janito-3.3.0 → janito-3.4.0}/README-dev.md +0 -0
  150. {janito-3.3.0 → janito-3.4.0}/README.md +0 -0
  151. {janito-3.3.0 → janito-3.4.0}/RELEASE_COMPARISON.md +0 -0
  152. {janito-3.3.0 → janito-3.4.0}/UPDATING_DOCS.md +0 -0
  153. {janito-3.3.0 → janito-3.4.0}/adding_mcp.txt +0 -0
  154. {janito-3.3.0 → janito-3.4.0}/docs/CHANGELOG.md +0 -0
  155. {janito-3.3.0 → janito-3.4.0}/docs/DIV.md +0 -0
  156. {janito-3.3.0 → janito-3.4.0}/docs/Interfaces.txt +0 -0
  157. {janito-3.3.0 → janito-3.4.0}/docs/PROFILES.md +0 -0
  158. {janito-3.3.0 → janito-3.4.0}/docs/TOOLBAR-STYLING.md +0 -0
  159. {janito-3.3.0 → janito-3.4.0}/docs/about/costs.md +0 -0
  160. {janito-3.3.0 → janito-3.4.0}/docs/about/vs-webchats.md +0 -0
  161. {janito-3.3.0 → janito-3.4.0}/docs/about/why.md +0 -0
  162. {janito-3.3.0 → janito-3.4.0}/docs/alibaba-setup.md +0 -0
  163. {janito-3.3.0 → janito-3.4.0}/docs/alternatives.md +0 -0
  164. {janito-3.3.0 → janito-3.4.0}/docs/cerebras-setup.md +0 -0
  165. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG.md +0 -0
  166. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
  167. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
  168. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
  169. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
  170. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
  171. {janito-3.3.0 → janito-3.4.0}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
  172. {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  173. {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
  174. {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/code-generation-observability.md +0 -0
  175. {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/our-approach.md +0 -0
  176. {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/why-string-replacement.md +0 -0
  177. {janito-3.3.0 → janito-3.4.0}/docs/concepts/analysis-style.md +0 -0
  178. {janito-3.3.0 → janito-3.4.0}/docs/concepts/human-guided-ai.md +0 -0
  179. {janito-3.3.0 → janito-3.4.0}/docs/concepts/index.md +0 -0
  180. {janito-3.3.0 → janito-3.4.0}/docs/concepts/language-model-clients.md +0 -0
  181. {janito-3.3.0 → janito-3.4.0}/docs/concepts/prompt-design-style.md +0 -0
  182. {janito-3.3.0 → janito-3.4.0}/docs/deepseek-setup.md +0 -0
  183. {janito-3.3.0 → janito-3.4.0}/docs/driver-flow.md +0 -0
  184. {janito-3.3.0 → janito-3.4.0}/docs/driver-request-cancellation.md +0 -0
  185. {janito-3.3.0 → janito-3.4.0}/docs/drivers/events.md +0 -0
  186. {janito-3.3.0 → janito-3.4.0}/docs/drivers.md +0 -0
  187. {janito-3.3.0 → janito-3.4.0}/docs/event-bus.md +0 -0
  188. {janito-3.3.0 → janito-3.4.0}/docs/guides/configuration.md +0 -0
  189. {janito-3.3.0 → janito-3.4.0}/docs/guides/developing.md +0 -0
  190. {janito-3.3.0 → janito-3.4.0}/docs/guides/disabled-tools.md +0 -0
  191. {janito-3.3.0 → janito-3.4.0}/docs/guides/installation.md +0 -0
  192. {janito-3.3.0 → janito-3.4.0}/docs/guides/market-data-sources.md +0 -0
  193. {janito-3.3.0 → janito-3.4.0}/docs/guides/profiles.md +0 -0
  194. {janito-3.3.0 → janito-3.4.0}/docs/guides/prompting/README.md +0 -0
  195. {janito-3.3.0 → janito-3.4.0}/docs/guides/read-chart-examples.md +0 -0
  196. {janito-3.3.0 → janito-3.4.0}/docs/guides/security-commands.md +0 -0
  197. {janito-3.3.0 → janito-3.4.0}/docs/guides/single-shot-terminal.md +0 -0
  198. {janito-3.3.0 → janito-3.4.0}/docs/guides/stock-market-guide.md +0 -0
  199. {janito-3.3.0 → janito-3.4.0}/docs/guides/terminal-shell.md +0 -0
  200. {janito-3.3.0 → janito-3.4.0}/docs/guides/tools-developer-guide.md +0 -0
  201. {janito-3.3.0 → janito-3.4.0}/docs/guides/url-whitelist.md +0 -0
  202. {janito-3.3.0 → janito-3.4.0}/docs/guides/using.md +0 -0
  203. {janito-3.3.0 → janito-3.4.0}/docs/guides/using_tools.md +0 -0
  204. {janito-3.3.0 → janito-3.4.0}/docs/ibm-setup.md +0 -0
  205. {janito-3.3.0 → janito-3.4.0}/docs/imgs/code-generation-observability.png +0 -0
  206. {janito-3.3.0 → janito-3.4.0}/docs/imgs/code_generation_observability.png +0 -0
  207. {janito-3.3.0 → janito-3.4.0}/docs/imgs/happy-programmer.png +0 -0
  208. {janito-3.3.0 → janito-3.4.0}/docs/imgs/happy-programmer.svg +0 -0
  209. {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal-one-shot.png +0 -0
  210. {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal-shell.png +0 -0
  211. {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal_one_shot.png +0 -0
  212. {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal_shell.png +0 -0
  213. {janito-3.3.0 → janito-3.4.0}/docs/index.md +0 -0
  214. {janito-3.3.0 → janito-3.4.0}/docs/llm-drivers-required-config.md +0 -0
  215. {janito-3.3.0 → janito-3.4.0}/docs/llm-drivers.md +0 -0
  216. {janito-3.3.0 → janito-3.4.0}/docs/meta/developer-toolchain.md +0 -0
  217. {janito-3.3.0 → janito-3.4.0}/docs/meta/quality-checks.txt +0 -0
  218. {janito-3.3.0 → janito-3.4.0}/docs/mistral-setup.md +0 -0
  219. {janito-3.3.0 → janito-3.4.0}/docs/moonshot-setup.md +0 -0
  220. {janito-3.3.0 → janito-3.4.0}/docs/openai-setup.md +0 -0
  221. {janito-3.3.0 → janito-3.4.0}/docs/overrides/partials/copyright.html +0 -0
  222. {janito-3.3.0 → janito-3.4.0}/docs/plugins/ACTUAL_TOOLS_LOCATION.md +0 -0
  223. {janito-3.3.0 → janito-3.4.0}/docs/plugins/MIGRATION_COMPLETE.md +0 -0
  224. {janito-3.3.0 → janito-3.4.0}/docs/plugins/README.md +0 -0
  225. {janito-3.3.0 → janito-3.4.0}/docs/plugins/api-reference.md +0 -0
  226. {janito-3.3.0 → janito-3.4.0}/docs/plugins/architecture.md +0 -0
  227. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
  228. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/filemanager.md +0 -0
  229. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/imagedisplay.md +0 -0
  230. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/pythondev.md +0 -0
  231. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/system.md +0 -0
  232. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/userinterface.md +0 -0
  233. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/visualization.md +0 -0
  234. {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/webtools.md +0 -0
  235. {janito-3.3.0 → janito-3.4.0}/docs/plugins/configuration.md +0 -0
  236. {janito-3.3.0 → janito-3.4.0}/docs/plugins/examples/advanced.md +0 -0
  237. {janito-3.3.0 → janito-3.4.0}/docs/plugins/examples/basic.md +0 -0
  238. {janito-3.3.0 → janito-3.4.0}/docs/plugins/examples/intermediate.md +0 -0
  239. {janito-3.3.0 → janito-3.4.0}/docs/plugins/plugin-development.md +0 -0
  240. {janito-3.3.0 → janito-3.4.0}/docs/plugins/plugin-resources.md +0 -0
  241. {janito-3.3.0 → janito-3.4.0}/docs/plugins/publishing.md +0 -0
  242. {janito-3.3.0 → janito-3.4.0}/docs/plugins/remote-plugins.md +0 -0
  243. {janito-3.3.0 → janito-3.4.0}/docs/plugins/testing.md +0 -0
  244. {janito-3.3.0 → janito-3.4.0}/docs/provider-platform-access.md +0 -0
  245. {janito-3.3.0 → janito-3.4.0}/docs/public-sources.md +0 -0
  246. {janito-3.3.0 → janito-3.4.0}/docs/reference/api.md +0 -0
  247. {janito-3.3.0 → janito-3.4.0}/docs/reference/azure-openai.md +0 -0
  248. {janito-3.3.0 → janito-3.4.0}/docs/reference/cli-options.md +0 -0
  249. {janito-3.3.0 → janito-3.4.0}/docs/reference/message-handler-model.md +0 -0
  250. {janito-3.3.0 → janito-3.4.0}/docs/reference/rich-message-handler.md +0 -0
  251. {janito-3.3.0 → janito-3.4.0}/docs/security.md +0 -0
  252. {janito-3.3.0 → janito-3.4.0}/docs/supported-providers-models.md +0 -0
  253. {janito-3.3.0 → janito-3.4.0}/docs/tools/search-text.md +0 -0
  254. {janito-3.3.0 → janito-3.4.0}/docs/tools/show-image-grid.md +0 -0
  255. {janito-3.3.0 → janito-3.4.0}/docs/tools/show-image.md +0 -0
  256. {janito-3.3.0 → janito-3.4.0}/docs/tools-index.md +0 -0
  257. {janito-3.3.0 → janito-3.4.0}/docs/tools-natural-results.md +0 -0
  258. {janito-3.3.0 → janito-3.4.0}/docs/tools-precision.md +0 -0
  259. {janito-3.3.0 → janito-3.4.0}/docs/z-ai-setup.md +0 -0
  260. {janito-3.3.0 → janito-3.4.0}/examples/loop_protection_example.py +0 -0
  261. {janito-3.3.0 → janito-3.4.0}/examples/loop_protection_tool_example.py +0 -0
  262. {janito-3.3.0 → janito-3.4.0}/get_nasdaq_top.py +0 -0
  263. {janito-3.3.0 → janito-3.4.0}/ibm-logo.txt +0 -0
  264. {janito-3.3.0 → janito-3.4.0}/janito/README.md +0 -0
  265. {janito-3.3.0 → janito-3.4.0}/janito/__init__.py +0 -0
  266. {janito-3.3.0 → janito-3.4.0}/janito/__main__.py +0 -0
  267. {janito-3.3.0 → janito-3.4.0}/janito/_version.py +0 -0
  268. {janito-3.3.0 → janito-3.4.0}/janito/agent/setup_agent.py +0 -0
  269. {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
  270. {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
  271. {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
  272. {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
  273. {janito-3.3.0 → janito-3.4.0}/janito/cli/__init__.py +0 -0
  274. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/bindings.py +0 -0
  275. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/chat_entry.py +0 -0
  276. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/prompt_style.py +0 -0
  277. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/script_runner.py +0 -0
  278. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/session.py +0 -0
  279. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  280. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  281. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  282. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  283. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  284. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  285. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  286. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  287. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  288. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  289. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  290. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  291. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  292. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  293. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  294. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  295. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
  296. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  297. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  298. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
  299. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
  300. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
  301. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  302. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  303. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  304. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
  305. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  306. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  307. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  308. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  309. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
  310. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  311. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
  312. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  313. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  314. {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/toolbar.py +0 -0
  315. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
  316. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_config.py +0 -0
  317. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_drivers.py +0 -0
  318. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_models.py +0 -0
  319. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_profiles.py +0 -0
  320. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_providers.py +0 -0
  321. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
  322. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_tools.py +0 -0
  323. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/model_selection.py +0 -0
  324. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/model_utils.py +0 -0
  325. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/ping_providers.py +0 -0
  326. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/set_api_key.py +0 -0
  327. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/show_config.py +0 -0
  328. {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  329. {janito-3.3.0 → janito-3.4.0}/janito/cli/config.py +0 -0
  330. {janito-3.3.0 → janito-3.4.0}/janito/cli/console.py +0 -0
  331. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/__init__.py +0 -0
  332. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/event_logger.py +0 -0
  333. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/model_guesser.py +0 -0
  334. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/runner.py +0 -0
  335. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/setters.py +0 -0
  336. {janito-3.3.0 → janito-3.4.0}/janito/cli/core/unsetters.py +0 -0
  337. {janito-3.3.0 → janito-3.4.0}/janito/cli/main.py +0 -0
  338. {janito-3.3.0 → janito-3.4.0}/janito/cli/prompt_core.py +0 -0
  339. {janito-3.3.0 → janito-3.4.0}/janito/cli/prompt_handler.py +0 -0
  340. {janito-3.3.0 → janito-3.4.0}/janito/cli/prompt_setup.py +0 -0
  341. {janito-3.3.0 → janito-3.4.0}/janito/cli/rich_terminal_reporter.py +0 -0
  342. {janito-3.3.0 → janito-3.4.0}/janito/cli/single_shot_mode/__init__.py +0 -0
  343. {janito-3.3.0 → janito-3.4.0}/janito/cli/single_shot_mode/handler.py +0 -0
  344. {janito-3.3.0 → janito-3.4.0}/janito/cli/utils.py +0 -0
  345. {janito-3.3.0 → janito-3.4.0}/janito/cli/verbose_output.py +0 -0
  346. {janito-3.3.0 → janito-3.4.0}/janito/config.py +0 -0
  347. {janito-3.3.0 → janito-3.4.0}/janito/config_manager.py +0 -0
  348. {janito-3.3.0 → janito-3.4.0}/janito/conversation_history.py +0 -0
  349. {janito-3.3.0 → janito-3.4.0}/janito/dir_walk_utils.py +0 -0
  350. {janito-3.3.0 → janito-3.4.0}/janito/docs/GETTING_STARTED.md +0 -0
  351. {janito-3.3.0 → janito-3.4.0}/janito/driver_events.py +0 -0
  352. {janito-3.3.0 → janito-3.4.0}/janito/drivers/azure_openai/driver.py +0 -0
  353. {janito-3.3.0 → janito-3.4.0}/janito/drivers/cerebras/__init__.py +0 -0
  354. {janito-3.3.0 → janito-3.4.0}/janito/drivers/dashscope.bak.zip +0 -0
  355. {janito-3.3.0 → janito-3.4.0}/janito/drivers/openai/README.md +0 -0
  356. {janito-3.3.0 → janito-3.4.0}/janito/drivers/openai_responses.bak.zip +0 -0
  357. {janito-3.3.0 → janito-3.4.0}/janito/drivers/zai/__init__.py +0 -0
  358. {janito-3.3.0 → janito-3.4.0}/janito/event_bus/__init__.py +0 -0
  359. {janito-3.3.0 → janito-3.4.0}/janito/event_bus/bus.py +0 -0
  360. {janito-3.3.0 → janito-3.4.0}/janito/event_bus/event.py +0 -0
  361. {janito-3.3.0 → janito-3.4.0}/janito/event_bus/handler.py +0 -0
  362. {janito-3.3.0 → janito-3.4.0}/janito/event_bus/queue_bus.py +0 -0
  363. {janito-3.3.0 → janito-3.4.0}/janito/exceptions.py +0 -0
  364. {janito-3.3.0 → janito-3.4.0}/janito/formatting.py +0 -0
  365. {janito-3.3.0 → janito-3.4.0}/janito/formatting_token.py +0 -0
  366. {janito-3.3.0 → janito-3.4.0}/janito/gitignore_utils.py +0 -0
  367. /janito-3.3.0/janito/providers/alibaba/__init__.py → /janito-3.4.0/janito/hello.txt +0 -0
  368. {janito-3.3.0 → janito-3.4.0}/janito/i18n/__init__.py +0 -0
  369. {janito-3.3.0 → janito-3.4.0}/janito/i18n/it.py +0 -0
  370. {janito-3.3.0 → janito-3.4.0}/janito/i18n/messages.py +0 -0
  371. {janito-3.3.0 → janito-3.4.0}/janito/i18n/pt.py +0 -0
  372. {janito-3.3.0 → janito-3.4.0}/janito/llm/README.md +0 -0
  373. {janito-3.3.0 → janito-3.4.0}/janito/llm/__init__.py +0 -0
  374. {janito-3.3.0 → janito-3.4.0}/janito/llm/agent.py +0 -0
  375. {janito-3.3.0 → janito-3.4.0}/janito/llm/auth.py +0 -0
  376. {janito-3.3.0 → janito-3.4.0}/janito/llm/driver.py +0 -0
  377. {janito-3.3.0 → janito-3.4.0}/janito/llm/driver_config.py +0 -0
  378. {janito-3.3.0 → janito-3.4.0}/janito/llm/driver_config_builder.py +0 -0
  379. {janito-3.3.0 → janito-3.4.0}/janito/llm/driver_input.py +0 -0
  380. {janito-3.3.0 → janito-3.4.0}/janito/llm/message_parts.py +0 -0
  381. {janito-3.3.0 → janito-3.4.0}/janito/llm/model.py +0 -0
  382. {janito-3.3.0 → janito-3.4.0}/janito/llm/provider.py +0 -0
  383. {janito-3.3.0 → janito-3.4.0}/janito/mkdocs.yml +0 -0
  384. {janito-3.3.0 → janito-3.4.0}/janito/perf_singleton.py +0 -0
  385. {janito-3.3.0 → janito-3.4.0}/janito/performance_collector.py +0 -0
  386. {janito-3.3.0 → janito-3.4.0}/janito/platform_discovery.py +0 -0
  387. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/auto_loader.py +0 -0
  388. {janito-3.3.0 → janito-3.4.0}/janito/plugins/config.py +0 -0
  389. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/discovery_core.py +0 -0
  390. {janito-3.3.0 → janito-3.4.0}/janito/plugins/manager.py +0 -0
  391. {janito-3.3.0 → janito-3.4.0}/janito/provider_config.py +0 -0
  392. {janito-3.3.0 → janito-3.4.0}/janito/provider_registry.py +0 -0
  393. {janito-3.3.0 → janito-3.4.0}/janito/providers/__init__.py +0 -0
  394. {janito-3.3.0 → janito-3.4.0}/janito/providers/alibaba/model_info.py +0 -0
  395. {janito-3.3.0 → janito-3.4.0}/janito/providers/alibaba/provider.py +0 -0
  396. {janito-3.3.0 → janito-3.4.0}/janito/providers/anthropic/model_info.py +0 -0
  397. {janito-3.3.0 → janito-3.4.0}/janito/providers/anthropic/provider.py +0 -0
  398. {janito-3.3.0 → janito-3.4.0}/janito/providers/azure_openai/model_info.py +0 -0
  399. {janito-3.3.0 → janito-3.4.0}/janito/providers/azure_openai/provider.py +0 -0
  400. {janito-3.3.0 → janito-3.4.0}/janito/providers/cerebras/__init__.py +0 -0
  401. {janito-3.3.0 → janito-3.4.0}/janito/providers/cerebras/model_info.py +0 -0
  402. {janito-3.3.0 → janito-3.4.0}/janito/providers/cerebras/provider.py +0 -0
  403. {janito-3.3.0 → janito-3.4.0}/janito/providers/dashscope.bak.zip +0 -0
  404. {janito-3.3.0 → janito-3.4.0}/janito/providers/deepseek/__init__.py +0 -0
  405. {janito-3.3.0 → janito-3.4.0}/janito/providers/deepseek/model_info.py +0 -0
  406. {janito-3.3.0 → janito-3.4.0}/janito/providers/deepseek/provider.py +0 -0
  407. {janito-3.3.0 → janito-3.4.0}/janito/providers/google/__init__.py +0 -0
  408. {janito-3.3.0 → janito-3.4.0}/janito/providers/google/model_info.py +0 -0
  409. {janito-3.3.0 → janito-3.4.0}/janito/providers/google/provider.py +0 -0
  410. {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/README.md +0 -0
  411. {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/__init__.py +0 -0
  412. {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/model_info.py +0 -0
  413. {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/provider.py +0 -0
  414. {janito-3.3.0 → janito-3.4.0}/janito/providers/mistral/__init__.py +0 -0
  415. {janito-3.3.0 → janito-3.4.0}/janito/providers/mistral/model_info.py +0 -0
  416. {janito-3.3.0 → janito-3.4.0}/janito/providers/mistral/provider.py +0 -0
  417. {janito-3.3.0 → janito-3.4.0}/janito/providers/moonshot/__init__.py +0 -0
  418. {janito-3.3.0 → janito-3.4.0}/janito/providers/moonshot/model_info.py +0 -0
  419. {janito-3.3.0 → janito-3.4.0}/janito/providers/moonshot/provider.py +0 -0
  420. {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/__init__.py +0 -0
  421. {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/model_info.py +0 -0
  422. {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/provider.py +0 -0
  423. {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/schema_generator.py +0 -0
  424. {janito-3.3.0 → janito-3.4.0}/janito/providers/registry.py +0 -0
  425. {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/__init__.py +0 -0
  426. {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/model_info.py +0 -0
  427. {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/provider.py +0 -0
  428. {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/schema_generator.py +0 -0
  429. {janito-3.3.0 → janito-3.4.0}/janito/regions/__init__.py +0 -0
  430. {janito-3.3.0 → janito-3.4.0}/janito/regions/cli.py +0 -0
  431. {janito-3.3.0 → janito-3.4.0}/janito/regions/geo_utils.py +0 -0
  432. {janito-3.3.0 → janito-3.4.0}/janito/regions/provider_regions.py +0 -0
  433. {janito-3.3.0 → janito-3.4.0}/janito/report_events.py +0 -0
  434. {janito-3.3.0 → janito-3.4.0}/janito/shell.bak.zip +0 -0
  435. {janito-3.3.0 → janito-3.4.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  436. {janito-3.3.0 → janito-3.4.0}/janito/tools/README.md +0 -0
  437. {janito-3.3.0 → janito-3.4.0}/janito/tools/adapters/local/adapter.py +0 -0
  438. {janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/copy_file.py +0 -0
  439. {janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/create_directory.py +0 -0
  440. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/find_files.py +0 -0
  441. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/__init__.py +0 -0
  442. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/core.py +0 -0
  443. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/java_outline.py +0 -0
  444. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/markdown_outline.py +0 -0
  445. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/python_outline.py +0 -0
  446. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/search_outline.py +0 -0
  447. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/move_file.py +0 -0
  448. {janito-3.3.0/janito/plugins/web/webtools/tools → janito-3.4.0/janito/tools/adapters/local}/open_html_in_browser.py +0 -0
  449. {janito-3.3.0/janito/plugins/web/webtools/tools → janito-3.4.0/janito/tools/adapters/local}/open_url.py +0 -0
  450. {janito-3.3.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_code_run.py +0 -0
  451. {janito-3.3.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_command_run.py +0 -0
  452. {janito-3.3.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_file_run.py +0 -0
  453. {janito-3.3.0/janito/plugins/dev/visualization/tools → janito-3.4.0/janito/tools/adapters/local}/read_chart.py +0 -0
  454. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/read_files.py +0 -0
  455. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/remove_directory.py +0 -0
  456. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/remove_file.py +0 -0
  457. {janito-3.3.0/janito/plugins/core/system/tools → janito-3.4.0/janito/tools/adapters/local}/run_bash_command.py +0 -0
  458. {janito-3.3.0/janito/plugins/core/system/tools → janito-3.4.0/janito/tools/adapters/local}/run_powershell_command.py +0 -0
  459. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/__init__.py +0 -0
  460. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/core.py +0 -0
  461. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/match_lines.py +0 -0
  462. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/pattern_utils.py +0 -0
  463. {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/traverse_directory.py +0 -0
  464. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/__init__.py +0 -0
  465. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/core.py +0 -0
  466. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/css_validator.py +0 -0
  467. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/html_validator.py +0 -0
  468. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/jinja2_validator.py +0 -0
  469. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/js_validator.py +0 -0
  470. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/json_validator.py +0 -0
  471. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/markdown_validator.py +0 -0
  472. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/ps1_validator.py +0 -0
  473. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/python_validator.py +0 -0
  474. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/xml_validator.py +0 -0
  475. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/yaml_validator.py +0 -0
  476. {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/view_file.py +0 -0
  477. {janito-3.3.0 → janito-3.4.0}/janito/tools/disabled_tools.py +0 -0
  478. {janito-3.3.0 → janito-3.4.0}/janito/tools/inspect_registry.py +0 -0
  479. {janito-3.3.0 → janito-3.4.0}/janito/tools/loop_protection.py +0 -0
  480. {janito-3.3.0 → janito-3.4.0}/janito/tools/loop_protection_decorator.py +0 -0
  481. {janito-3.3.0 → janito-3.4.0}/janito/tools/outline_file.bak.zip +0 -0
  482. {janito-3.3.0 → janito-3.4.0}/janito/tools/path_security.py +0 -0
  483. {janito-3.3.0 → janito-3.4.0}/janito/tools/path_utils.py +0 -0
  484. {janito-3.3.0 → janito-3.4.0}/janito/tools/permissions.py +0 -0
  485. {janito-3.3.0 → janito-3.4.0}/janito/tools/permissions_parse.py +0 -0
  486. {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_events.py +0 -0
  487. {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_run_exception.py +0 -0
  488. {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_use_tracker.py +0 -0
  489. {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_utils.py +0 -0
  490. {janito-3.3.0 → janito-3.4.0}/janito/tools/tools_adapter.py +0 -0
  491. {janito-3.3.0 → janito-3.4.0}/janito/tools/url_whitelist.py +0 -0
  492. {janito-3.3.0 → janito-3.4.0}/janito/utils.py +0 -0
  493. {janito-3.3.0 → janito-3.4.0}/janito.egg-info/dependency_links.txt +0 -0
  494. {janito-3.3.0 → janito-3.4.0}/janito.egg-info/entry_points.txt +0 -0
  495. {janito-3.3.0 → janito-3.4.0}/janito.egg-info/top_level.txt +0 -0
  496. {janito-3.3.0 → janito-3.4.0}/market_prompt_fix.py +0 -0
  497. {janito-3.3.0 → janito-3.4.0}/market_test.py +0 -0
  498. {janito-3.3.0 → janito-3.4.0}/mkdocs.yml +0 -0
  499. {janito-3.3.0 → janito-3.4.0}/mkdocs_hooks.py +0 -0
  500. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/__init__.py +0 -0
  501. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/__init__.py +0 -0
  502. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/__init__.py +0 -0
  503. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/core.py +0 -0
  504. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/java_outline.py +0 -0
  505. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/markdown_outline.py +0 -0
  506. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/python_outline.py +0 -0
  507. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/search_outline.py +0 -0
  508. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/__init__.py +0 -0
  509. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/core.py +0 -0
  510. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/match_lines.py +0 -0
  511. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/pattern_utils.py +0 -0
  512. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/traverse_directory.py +0 -0
  513. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/create_file.py +0 -0
  514. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/find_files.py +0 -0
  515. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/move_file.py +0 -0
  516. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/read_files.py +0 -0
  517. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/remove_directory.py +0 -0
  518. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/remove_file.py +0 -0
  519. {janito-3.3.0/janito → janito-3.4.0}/plugins/core/filemanager/tools/replace_text_in_file.py +0 -0
  520. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
  521. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/core.py +0 -0
  522. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/css_validator.py +0 -0
  523. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/html_validator.py +0 -0
  524. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/jinja2_validator.py +0 -0
  525. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/js_validator.py +0 -0
  526. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/json_validator.py +0 -0
  527. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/markdown_validator.py +0 -0
  528. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/ps1_validator.py +0 -0
  529. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/python_validator.py +0 -0
  530. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/xml_validator.py +0 -0
  531. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/yaml_validator.py +0 -0
  532. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/view_file.py +0 -0
  533. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/system/tools/run_bash_command.py +0 -0
  534. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/system/tools/run_powershell_command.py +0 -0
  535. {janito-3.3.0/janito → janito-3.4.0}/plugins/dev/__init__.py +0 -0
  536. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/tools/python_code_run.py +0 -0
  537. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/tools/python_command_run.py +0 -0
  538. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/tools/python_file_run.py +0 -0
  539. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/visualization/tools/read_chart.py +0 -0
  540. {janito-3.3.0/janito → janito-3.4.0}/plugins/ui/__init__.py +0 -0
  541. {janito-3.3.0/janito → janito-3.4.0}/plugins/ui/userinterface/__init__.py +0 -0
  542. {janito-3.3.0/janito → janito-3.4.0}/plugins/ui/userinterface/tools/ask_user.py +0 -0
  543. {janito-3.3.0/janito → janito-3.4.0}/plugins/web/__init__.py +0 -0
  544. {janito-3.3.0/janito → janito-3.4.0}/plugins/web/webtools/__init__.py +0 -0
  545. {janito-3.3.0/janito → janito-3.4.0}/plugins/web/webtools/tools/fetch_url.py +0 -0
  546. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/web/webtools/tools/open_html_in_browser.py +0 -0
  547. {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/web/webtools/tools/open_url.py +0 -0
  548. {janito-3.3.0 → janito-3.4.0}/pyproject.toml +0 -0
  549. {janito-3.3.0 → janito-3.4.0}/pytest.ini +0 -0
  550. {janito-3.3.0 → janito-3.4.0}/requirements-dev.txt +0 -0
  551. {janito-3.3.0 → janito-3.4.0}/requirements.txt +0 -0
  552. {janito-3.3.0 → janito-3.4.0}/setup.cfg +0 -0
  553. {janito-3.3.0 → janito-3.4.0}/test.txt +0 -0
  554. {janito-3.3.0 → janito-3.4.0}/test_example.py +0 -0
  555. {janito-3.3.0 → janito-3.4.0}/test_http_errors.py +0 -0
  556. {janito-3.3.0 → janito-3.4.0}/test_http_errors_direct.py +0 -0
  557. {janito-3.3.0 → janito-3.4.0}/test_key_field_behavior.py +0 -0
  558. {janito-3.3.0 → janito-3.4.0}/test_key_field_protection.py +0 -0
  559. {janito-3.3.0 → janito-3.4.0}/test_loop_protection_return.py +0 -0
  560. {janito-3.3.0 → janito-3.4.0}/test_market_analyst.py +0 -0
  561. {janito-3.3.0 → janito-3.4.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  562. {janito-3.3.0 → janito-3.4.0}/tests/adapters/local/test_read_files.py +0 -0
  563. {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_models.py +0 -0
  564. {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_providers.py +0 -0
  565. {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_providers_alibaba.py +0 -0
  566. {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_providers_moonshot.py +0 -0
  567. {janito-3.3.0 → janito-3.4.0}/tests/test_cli_version.py +0 -0
  568. {janito-3.3.0 → janito-3.4.0}/tests/test_disabled_tools.py +0 -0
  569. {janito-3.3.0 → janito-3.4.0}/tests/test_plugin_system.py +0 -0
  570. {janito-3.3.0 → janito-3.4.0}/tests/test_provider_alibaba.py +0 -0
  571. {janito-3.3.0 → janito-3.4.0}/tests/test_provider_cerebras.py +0 -0
  572. {janito-3.3.0 → janito-3.4.0}/tests/test_provider_moonshot.py +0 -0
  573. {janito-3.3.0 → janito-3.4.0}/tools/release.py +0 -0
  574. {janito-3.3.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.3.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
@@ -8,8 +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.manager import PluginManager
12
- from janito.plugins.core_loader import get_core_plugins
11
+ from janito.plugins.auto_loader_fixed import load_core_plugins, get_loaded_core_plugins, is_core_plugin
13
12
  from rich.console import Console
14
13
  from rich.table import Table
15
14
  from rich.panel import Panel
@@ -52,8 +51,7 @@ def _list_available_plugins():
52
51
  console.print(table)
53
52
 
54
53
  # Show core plugins
55
- from janito.plugins.core_loader import get_core_plugins
56
-
54
+ from janito.plugins.core_loader_fixed import get_core_plugins
57
55
  core_plugins = get_core_plugins()
58
56
  core_table = Table(title="Core Plugins (Enabled by Default)")
59
57
  core_table.add_column("Plugin Name", style="cyan", no_wrap=True)
@@ -64,16 +62,14 @@ def _list_available_plugins():
64
62
 
65
63
  console.print(core_table)
66
64
  else:
67
- console.print(
68
- Panel(
69
- "No plugins found in search paths\n"
70
- f"[dim]Search paths:[/dim]\n"
71
- f" • {os.getcwd()}/plugins\n"
72
- f" {os.path.expanduser('~')}/.janito/plugins",
73
- title="No Plugins Found",
74
- style="yellow",
75
- )
76
- )
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
+ ))
77
73
 
78
74
 
79
75
  def _print_builtin_plugins(builtin_plugins):
@@ -95,18 +91,20 @@ def _print_external_plugins(available, builtin_plugins):
95
91
 
96
92
  def _list_plugin_resources():
97
93
  """List all resources from loaded plugins using rich formatting."""
94
+ from janito.plugins.auto_loader_fixed import get_plugin_manager
95
+
98
96
  console = Console()
99
- manager = PluginManager()
97
+ manager = get_plugin_manager()
100
98
  all_resources = manager.list_all_resources()
101
99
 
102
100
  if all_resources:
103
101
  for plugin_name, resources in all_resources.items():
104
102
  metadata = manager.get_plugin_metadata(plugin_name)
105
- version = metadata.version if metadata else "unknown"
106
-
103
+ version = metadata.version if metadata else 'unknown'
104
+
107
105
  # Create panel for each plugin
108
106
  panel_content = []
109
-
107
+
110
108
  tools = [r for r in resources if r["type"] == "tool"]
111
109
  commands = [r for r in resources if r["type"] == "command"]
112
110
  configs = [r for r in resources if r["type"] == "config"]
@@ -124,25 +122,19 @@ def _list_plugin_resources():
124
122
  if configs:
125
123
  panel_content.append("[bold yellow]Configuration:[/bold yellow]")
126
124
  for config in configs:
127
- panel_content.append(
128
- f" • {config['name']}: {config['description']}"
129
- )
130
-
131
- console.print(
132
- Panel(
133
- "\n".join(panel_content),
134
- title=f"{plugin_name} v{version}",
135
- style="cyan",
136
- )
137
- )
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
+ ))
138
132
  else:
139
- console.print(
140
- Panel(
141
- "No plugins are currently loaded.",
142
- title="No Plugin Resources",
143
- style="yellow",
144
- )
145
- )
133
+ console.print(Panel(
134
+ "No plugins are currently loaded.",
135
+ title="No Plugin Resources",
136
+ style="yellow"
137
+ ))
146
138
 
147
139
 
148
140
  def _print_resources_by_type(resources):
@@ -169,8 +161,10 @@ def _print_resources_by_type(resources):
169
161
 
170
162
  def _list_loaded_plugins():
171
163
  """List loaded plugins using rich formatting."""
164
+ from janito.plugins.auto_loader_fixed import get_plugin_manager
165
+
172
166
  console = Console()
173
- manager = PluginManager()
167
+ manager = get_plugin_manager()
174
168
  loaded = manager.list_plugins()
175
169
 
176
170
  if loaded:
@@ -183,40 +177,42 @@ def _list_loaded_plugins():
183
177
 
184
178
  core_plugins = []
185
179
  other_plugins = []
186
-
180
+
187
181
  for plugin_name in loaded:
188
- from janito.plugins.core_loader import get_core_plugins
189
- core_plugin_list = get_core_plugins()
190
- if plugin_name in core_plugin_list:
182
+ if is_core_plugin(plugin_name):
191
183
  core_plugins.append(plugin_name)
192
184
  else:
193
185
  other_plugins.append(plugin_name)
194
-
186
+
195
187
  # Add core plugins
196
188
  for plugin_name in core_plugins:
197
189
  metadata = manager.get_plugin_metadata(plugin_name)
198
190
  if metadata:
199
191
  table.add_row(
200
- metadata.name, metadata.version, metadata.description, "🔵 Core"
192
+ metadata.name,
193
+ metadata.version,
194
+ metadata.description,
195
+ "🔵 Core"
201
196
  )
202
-
197
+
203
198
  # Add other plugins
204
199
  for plugin_name in other_plugins:
205
200
  metadata = manager.get_plugin_metadata(plugin_name)
206
201
  if metadata:
207
202
  table.add_row(
208
- metadata.name, metadata.version, metadata.description, "🔶 External"
203
+ metadata.name,
204
+ metadata.version,
205
+ metadata.description,
206
+ "🔶 External"
209
207
  )
210
208
 
211
209
  console.print(table)
212
210
  else:
213
- console.print(
214
- Panel(
215
- "No plugins are currently loaded.",
216
- title="No Plugins Loaded",
217
- style="yellow",
218
- )
219
- )
211
+ console.print(Panel(
212
+ "No plugins are currently loaded.",
213
+ title="No Plugins Loaded",
214
+ style="yellow"
215
+ ))
220
216
 
221
217
 
222
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:
@@ -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)
@@ -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
@@ -0,0 +1,21 @@
1
+ """
2
+ Authentication utilities for LLM providers.
3
+ """
4
+
5
+ import sys
6
+
7
+
8
+ def handle_missing_api_key(provider_name: str, env_var_name: str) -> None:
9
+ """
10
+ Handle missing API key by printing error message and exiting.
11
+
12
+ Args:
13
+ provider_name: Name of the provider (e.g., 'alibaba', 'openai')
14
+ env_var_name: Environment variable name (e.g., 'ALIBABA_API_KEY')
15
+ """
16
+ print(
17
+ f"[ERROR] No API key found for provider '{provider_name}'. Please set the API key using:"
18
+ )
19
+ print(f" janito --set-api-key YOUR_API_KEY -p {provider_name}")
20
+ print(f"Or set the {env_var_name} environment variable.")
21
+ sys.exit(1)
@@ -0,0 +1,17 @@
1
+ """
2
+ Plugin system for janito.
3
+
4
+ This package provides a flexible plugin system that allows extending
5
+ janito's functionality with custom tools, commands, and features.
6
+ """
7
+
8
+ from .manager import PluginManager
9
+ from .base import Plugin, PluginMetadata
10
+ from .discovery import discover_plugins
11
+
12
+ __all__ = [
13
+ "PluginManager",
14
+ "Plugin",
15
+ "PluginMetadata",
16
+ "discover_plugins",
17
+ ]
@@ -9,12 +9,12 @@ import os
9
9
  from pathlib import Path
10
10
  from typing import List
11
11
  from janito.plugins.manager import PluginManager
12
- from janito.plugin_system.core_loader_fixed import load_core_plugin, get_core_plugins
12
+ from janito.plugins.core_loader_fixed import load_core_plugin, get_core_plugins
13
13
 
14
14
  # List of core plugins that should be enabled by default
15
15
  CORE_PLUGINS = [
16
16
  "core.filemanager",
17
- "core.codeanalyzer",
17
+ "core.codeanalyzer",
18
18
  "core.system",
19
19
  "core.imagedisplay",
20
20
  "dev.pythondev",
@@ -27,18 +27,18 @@ CORE_PLUGINS = [
27
27
  def load_core_plugins(pm: PluginManager = None) -> List[str]:
28
28
  """
29
29
  Load all core plugins.
30
-
30
+
31
31
  Args:
32
32
  pm: PluginManager instance. If None, creates a new one.
33
-
33
+
34
34
  Returns:
35
35
  List of successfully loaded plugin names
36
36
  """
37
37
  if pm is None:
38
38
  pm = PluginManager()
39
-
39
+
40
40
  loaded = []
41
-
41
+
42
42
  # Load core plugins
43
43
  for plugin_name in CORE_PLUGINS:
44
44
  try:
@@ -49,14 +49,14 @@ def load_core_plugins(pm: PluginManager = None) -> List[str]:
49
49
  loaded.append(plugin_name)
50
50
  except Exception as e:
51
51
  print(f"Warning: Failed to load core plugin {plugin_name}: {e}")
52
-
52
+
53
53
  return loaded
54
54
 
55
55
 
56
56
  def get_loaded_core_plugins() -> List[str]:
57
57
  """
58
58
  Get list of currently loaded core plugins.
59
-
59
+
60
60
  Returns:
61
61
  List of loaded core plugin names
62
62
  """
@@ -68,10 +68,10 @@ def get_loaded_core_plugins() -> List[str]:
68
68
  def is_core_plugin(plugin_name: str) -> bool:
69
69
  """
70
70
  Check if a plugin is a core plugin.
71
-
71
+
72
72
  Args:
73
73
  plugin_name: Name of the plugin to check
74
-
74
+
75
75
  Returns:
76
76
  True if it's a core plugin
77
77
  """
@@ -81,11 +81,10 @@ def is_core_plugin(plugin_name: str) -> bool:
81
81
  # Auto-load core plugins when module is imported
82
82
  _plugin_manager = None
83
83
 
84
-
85
84
  def get_plugin_manager() -> PluginManager:
86
85
  """Get the global plugin manager with core plugins loaded."""
87
86
  global _plugin_manager
88
87
  if _plugin_manager is None:
89
88
  _plugin_manager = PluginManager()
90
89
  load_core_plugins(_plugin_manager)
91
- return _plugin_manager
90
+ return _plugin_manager
@@ -5,10 +5,7 @@ Base classes for janito plugins.
5
5
  from abc import ABC, abstractmethod
6
6
  from dataclasses import dataclass
7
7
  from typing import Dict, Any, List, Optional, Type, Union
8
- from typing import TYPE_CHECKING
9
-
10
- if TYPE_CHECKING:
11
- from janito.tools.tool_base import ToolBase
8
+ from janito.tools.tool_base import ToolBase
12
9
 
13
10
 
14
11
  @dataclass
@@ -53,7 +50,7 @@ class Plugin(ABC):
53
50
  """Return metadata describing this plugin."""
54
51
  pass
55
52
 
56
- def get_tools(self) -> List[Type["ToolBase"]]:
53
+ def get_tools(self) -> List[Type[ToolBase]]:
57
54
  """
58
55
  Return a list of tool classes provided by this plugin.
59
56
 
@@ -7,7 +7,7 @@ with janito and available by default without requiring external installation.
7
7
 
8
8
  import importlib
9
9
  from typing import Dict, List, Optional, Type
10
- from .base import Plugin
10
+ from janito.plugins.base import Plugin
11
11
 
12
12
 
13
13
  class BuiltinPluginRegistry:
@@ -83,20 +83,6 @@ try:
83
83
  "documentation_generator", DocumentationGeneratorPlugin
84
84
  )
85
85
 
86
- # Register core tools plugin
87
- from janito.plugins.tools import CoreToolsPlugin
88
-
89
- BuiltinPluginRegistry.register("core_tools", CoreToolsPlugin)
90
-
91
86
  except ImportError:
92
87
  # janito-coder not available, skip registration
93
88
  pass
94
-
95
- # Register core tools plugin (always available)
96
- try:
97
- from janito.plugins.tools import CoreToolsPlugin
98
-
99
- BuiltinPluginRegistry.register("core_tools", CoreToolsPlugin)
100
- except ImportError:
101
- # Should not happen, but handle gracefully
102
- pass
@@ -5,7 +5,7 @@ This module provides proper Plugin class implementations for core plugins
5
5
  that use the function-based approach instead of class-based.
6
6
  """
7
7
 
8
- from janito.plugin_system.base import Plugin, PluginMetadata
8
+ from janito.plugins.base import Plugin, PluginMetadata
9
9
  from typing import List, Type
10
10
  from janito.tools.tool_base import ToolBase
11
11
  from janito.tools.function_adapter import create_function_tool
@@ -13,17 +13,17 @@ from janito.tools.function_adapter import create_function_tool
13
13
 
14
14
  class CorePluginAdapter(Plugin):
15
15
  """Adapter for core plugins using function-based tools."""
16
-
16
+
17
17
  def __init__(self, plugin_name: str, description: str, tools_module):
18
18
  super().__init__()
19
19
  self._plugin_name = plugin_name
20
20
  self._description = description
21
21
  self._tools_module = tools_module
22
22
  self._tool_classes = []
23
-
23
+
24
24
  # Set the metadata attribute that Plugin expects
25
25
  self.metadata = self.get_metadata()
26
-
26
+
27
27
  def get_metadata(self) -> PluginMetadata:
28
28
  return PluginMetadata(
29
29
  name=self._plugin_name,
@@ -32,15 +32,15 @@ class CorePluginAdapter(Plugin):
32
32
  author="Janito",
33
33
  license="MIT",
34
34
  )
35
-
35
+
36
36
  def get_tools(self) -> List[Type[ToolBase]]:
37
37
  return self._tool_classes
38
-
38
+
39
39
  def initialize(self):
40
40
  """Initialize the plugin by creating tool classes."""
41
41
  # Get tools from the module
42
42
  tools = getattr(self._tools_module, "__plugin_tools__", [])
43
-
43
+
44
44
  self._tool_classes = []
45
45
  for tool_func in tools:
46
46
  if callable(tool_func):
@@ -48,8 +48,6 @@ class CorePluginAdapter(Plugin):
48
48
  self._tool_classes.append(tool_class)
49
49
 
50
50
 
51
- def create_core_plugin(
52
- plugin_name: str, description: str, tools_module
53
- ) -> CorePluginAdapter:
51
+ def create_core_plugin(plugin_name: str, description: str, tools_module) -> CorePluginAdapter:
54
52
  """Create a core plugin adapter."""
55
- return CorePluginAdapter(plugin_name, description, tools_module)
53
+ return CorePluginAdapter(plugin_name, description, tools_module)
@@ -1,31 +1,30 @@
1
1
  """
2
- Fixed core plugin loader.
2
+ Core plugin loader that properly handles function-based plugins.
3
3
 
4
- This module provides a working implementation to load core plugins
5
- by directly using the Plugin base class properly.
4
+ This module provides a simplified approach to load core plugins
5
+ without the complex discovery mechanism.
6
6
  """
7
7
 
8
- import importlib
9
8
  import importlib.util
10
9
  import sys
11
10
  from pathlib import Path
12
- from typing import Optional, List, Type
11
+ from typing import Optional
13
12
 
14
- from janito.plugin_system.base import Plugin, PluginMetadata
13
+ from janito.plugins.base import Plugin, PluginMetadata
15
14
  from janito.tools.function_adapter import create_function_tool
16
15
  from janito.tools.tool_base import ToolBase
17
16
 
18
17
 
19
18
  class CorePlugin(Plugin):
20
- """Working core plugin implementation."""
21
-
19
+ """Simple core plugin implementation."""
20
+
22
21
  def __init__(self, name: str, description: str, tools: list):
22
+ super().__init__()
23
23
  self._plugin_name = name
24
24
  self._description = description
25
25
  self._tools = tools
26
26
  self._tool_classes = []
27
- super().__init__() # Call super after setting attributes
28
-
27
+
29
28
  def get_metadata(self) -> PluginMetadata:
30
29
  return PluginMetadata(
31
30
  name=self._plugin_name,
@@ -34,10 +33,10 @@ class CorePlugin(Plugin):
34
33
  author="Janito",
35
34
  license="MIT",
36
35
  )
37
-
38
- def get_tools(self) -> List[Type[ToolBase]]:
36
+
37
+ def get_tools(self) -> list:
39
38
  return self._tool_classes
40
-
39
+
41
40
  def initialize(self):
42
41
  """Initialize by creating tool classes."""
43
42
  self._tool_classes = []
@@ -50,10 +49,10 @@ class CorePlugin(Plugin):
50
49
  def load_core_plugin(plugin_name: str) -> Optional[Plugin]:
51
50
  """
52
51
  Load a core plugin by name.
53
-
52
+
54
53
  Args:
55
54
  plugin_name: Name of the plugin (e.g., 'core.filemanager')
56
-
55
+
57
56
  Returns:
58
57
  Plugin instance if loaded successfully
59
58
  """
@@ -61,67 +60,39 @@ def load_core_plugin(plugin_name: str) -> Optional[Plugin]:
61
60
  # Parse plugin name
62
61
  if "." not in plugin_name:
63
62
  return None
64
-
63
+
65
64
  parts = plugin_name.split(".")
66
65
  if len(parts) != 2:
67
66
  return None
68
-
67
+
69
68
  package_name, submodule_name = parts
70
-
71
- # Handle imagedisplay specially
72
- if plugin_name == "core.imagedisplay":
73
- # Import the actual plugin class
74
- try:
75
- # Use dynamic import to avoid circular dependency
76
- plugin_module = importlib.import_module(
77
- "janito.plugins.core.imagedisplay.plugin"
78
- )
79
- return plugin_module.ImageDisplayPlugin()
80
- except ImportError as e:
81
- print(f"Failed to load imagedisplay: {e}")
82
- return None
83
-
69
+
84
70
  # Build path to plugin
85
- plugin_path = (
86
- Path("janito/plugins") / package_name / submodule_name / "__init__.py"
87
- )
71
+ plugin_path = Path("plugins") / package_name / submodule_name / "__init__.py"
88
72
  if not plugin_path.exists():
89
73
  return None
90
-
74
+
91
75
  # Load the module
92
76
  spec = importlib.util.spec_from_file_location(plugin_name, plugin_path)
93
77
  if spec is None or spec.loader is None:
94
78
  return None
95
-
79
+
96
80
  module = importlib.util.module_from_spec(spec)
97
81
  spec.loader.exec_module(module)
98
-
82
+
99
83
  # Get plugin info
100
84
  name = getattr(module, "__plugin_name__", plugin_name)
101
- description = getattr(
102
- module, "__plugin_description__", f"Core plugin: {plugin_name}"
103
- )
85
+ description = getattr(module, "__plugin_description__", f"Core plugin: {plugin_name}")
104
86
  tools = getattr(module, "__plugin_tools__", [])
105
-
87
+
106
88
  if not tools:
107
89
  return None
108
-
109
- # Filter out None values and ensure all tools have tool_name
110
- valid_tools = []
111
- for tool in tools:
112
- if tool is not None:
113
- if not hasattr(tool, "tool_name"):
114
- tool.tool_name = tool.__name__
115
- valid_tools.append(tool)
116
-
117
- if not valid_tools:
118
- return None
119
-
90
+
120
91
  # Create plugin
121
- plugin = CorePlugin(name, description, valid_tools)
92
+ plugin = CorePlugin(name, description, tools)
122
93
  plugin.initialize()
123
94
  return plugin
124
-
95
+
125
96
  except Exception as e:
126
97
  print(f"Error loading core plugin {plugin_name}: {e}")
127
98
  return None
@@ -139,6 +110,11 @@ def get_core_plugins() -> list:
139
110
  "ui.userinterface",
140
111
  "web.webtools",
141
112
  ]
142
-
143
- # All core plugins are always available
144
- return core_plugins
113
+
114
+ available = []
115
+ for plugin_name in core_plugins:
116
+ plugin = load_core_plugin(plugin_name)
117
+ if plugin:
118
+ available.append(plugin_name)
119
+
120
+ return available