janito 2.30.0__tar.gz → 2.31.1__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 (485) hide show
  1. {janito-2.30.0 → janito-2.31.1}/PKG-INFO +2 -1
  2. {janito-2.30.0 → janito-2.31.1}/docs/plugins/ACTUAL_TOOLS_LOCATION.md +3 -0
  3. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/filemanager.md +49 -0
  4. janito-2.31.1/docs/plugins/built-in-plugins/imagedisplay.md +19 -0
  5. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/visualization.md +7 -0
  6. {janito-2.30.0 → janito-2.31.1}/docs/plugins/configuration.md +3 -1
  7. janito-2.31.1/docs/tools/show-image-grid.md +19 -0
  8. janito-2.31.1/docs/tools/show-image.md +16 -0
  9. {janito-2.30.0 → janito-2.31.1}/docs/tools-index.md +33 -0
  10. janito-2.31.1/img/tux.png +0 -0
  11. janito-2.31.1/img/tux_display.png +0 -0
  12. janito-2.31.1/janito/cli/cli_commands/list_plugins.py +228 -0
  13. {janito-2.30.0 → janito-2.31.1}/janito/cli/rich_terminal_reporter.py +1 -1
  14. janito-2.31.1/janito/plugins/auto_loader.py +91 -0
  15. janito-2.31.1/janito/plugins/auto_loader_fixed.py +90 -0
  16. janito-2.31.1/janito/plugins/core_adapter.py +53 -0
  17. janito-2.31.1/janito/plugins/core_loader.py +120 -0
  18. janito-2.31.1/janito/plugins/core_loader_fixed.py +125 -0
  19. {janito-2.30.0 → janito-2.31.1}/janito/plugins/discovery.py +8 -0
  20. janito-2.31.1/janito/plugins/discovery_core.py +49 -0
  21. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/__init__.py +4 -0
  22. janito-2.31.1/janito/tools/adapters/local/create_file.py +138 -0
  23. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/fetch_url.py +35 -6
  24. janito-2.31.1/janito/tools/adapters/local/show_image.py +70 -0
  25. janito-2.31.1/janito/tools/adapters/local/show_image_grid.py +75 -0
  26. janito-2.31.1/janito/tools/function_adapter.py +65 -0
  27. {janito-2.30.0 → janito-2.31.1}/janito.egg-info/PKG-INFO +2 -1
  28. {janito-2.30.0 → janito-2.31.1}/janito.egg-info/SOURCES.txt +21 -0
  29. {janito-2.30.0 → janito-2.31.1}/janito.egg-info/requires.txt +1 -0
  30. {janito-2.30.0 → janito-2.31.1}/plugins/__init__.py +2 -1
  31. janito-2.31.1/plugins/core/imagedisplay/__init__.py +14 -0
  32. janito-2.31.1/plugins/core/imagedisplay/plugin.py +51 -0
  33. janito-2.31.1/plugins/core/imagedisplay/tools/__init__.py +1 -0
  34. janito-2.31.1/plugins/core/imagedisplay/tools/show_image.py +70 -0
  35. janito-2.31.1/plugins/core/imagedisplay/tools/show_image_grid.py +74 -0
  36. {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/tools/fetch_url.py +35 -6
  37. {janito-2.30.0 → janito-2.31.1}/requirements.txt +1 -0
  38. janito-2.31.1/test.txt +1 -0
  39. janito-2.31.1/tux.png +0 -0
  40. janito-2.30.0/janito/cli/cli_commands/list_plugins.py +0 -117
  41. janito-2.30.0/plugins/core/filemanager/tools/create_file.py +0 -87
  42. {janito-2.30.0 → janito-2.31.1}/.codespellrc +0 -0
  43. {janito-2.30.0 → janito-2.31.1}/.gitattributes +0 -0
  44. {janito-2.30.0 → janito-2.31.1}/.github/workflows/python-app.yml.disabled +0 -0
  45. {janito-2.30.0 → janito-2.31.1}/.gitignore +0 -0
  46. {janito-2.30.0 → janito-2.31.1}/.pre-commit-config.yaml +0 -0
  47. {janito-2.30.0 → janito-2.31.1}/.secrets.baseline +0 -0
  48. {janito-2.30.0 → janito-2.31.1}/.vscode/settings.json +0 -0
  49. {janito-2.30.0 → janito-2.31.1}/LICENSE +0 -0
  50. {janito-2.30.0 → janito-2.31.1}/MARKET_ANALYST_README.md +0 -0
  51. {janito-2.30.0 → janito-2.31.1}/README-dev.md +0 -0
  52. {janito-2.30.0 → janito-2.31.1}/README.md +0 -0
  53. {janito-2.30.0 → janito-2.31.1}/RELEASE_COMPARISON.md +0 -0
  54. {janito-2.30.0 → janito-2.31.1}/UPDATING_DOCS.md +0 -0
  55. {janito-2.30.0 → janito-2.31.1}/adding_mcp.txt +0 -0
  56. {janito-2.30.0 → janito-2.31.1}/docs/CHANGELOG.md +0 -0
  57. {janito-2.30.0 → janito-2.31.1}/docs/DIV.md +0 -0
  58. {janito-2.30.0 → janito-2.31.1}/docs/Interfaces.txt +0 -0
  59. {janito-2.30.0 → janito-2.31.1}/docs/PROFILES.md +0 -0
  60. {janito-2.30.0 → janito-2.31.1}/docs/TOOLBAR-STYLING.md +0 -0
  61. {janito-2.30.0 → janito-2.31.1}/docs/about/costs.md +0 -0
  62. {janito-2.30.0 → janito-2.31.1}/docs/about/vs-webchats.md +0 -0
  63. {janito-2.30.0 → janito-2.31.1}/docs/about/why.md +0 -0
  64. {janito-2.30.0 → janito-2.31.1}/docs/alibaba-setup.md +0 -0
  65. {janito-2.30.0 → janito-2.31.1}/docs/alternatives.md +0 -0
  66. {janito-2.30.0 → janito-2.31.1}/docs/cerebras-setup.md +0 -0
  67. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG.md +0 -0
  68. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
  69. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
  70. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
  71. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
  72. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
  73. {janito-2.30.0 → janito-2.31.1}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
  74. {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  75. {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/code-generation-challenges.md +0 -0
  76. {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/code-generation-observability.md +0 -0
  77. {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/our-approach.md +0 -0
  78. {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/why-string-replacement.md +0 -0
  79. {janito-2.30.0 → janito-2.31.1}/docs/concepts/analysis-style.md +0 -0
  80. {janito-2.30.0 → janito-2.31.1}/docs/concepts/human-guided-ai.md +0 -0
  81. {janito-2.30.0 → janito-2.31.1}/docs/concepts/index.md +0 -0
  82. {janito-2.30.0 → janito-2.31.1}/docs/concepts/language-model-clients.md +0 -0
  83. {janito-2.30.0 → janito-2.31.1}/docs/concepts/prompt-design-style.md +0 -0
  84. {janito-2.30.0 → janito-2.31.1}/docs/deepseek-setup.md +0 -0
  85. {janito-2.30.0 → janito-2.31.1}/docs/driver-flow.md +0 -0
  86. {janito-2.30.0 → janito-2.31.1}/docs/driver-request-cancellation.md +0 -0
  87. {janito-2.30.0 → janito-2.31.1}/docs/drivers/events.md +0 -0
  88. {janito-2.30.0 → janito-2.31.1}/docs/drivers.md +0 -0
  89. {janito-2.30.0 → janito-2.31.1}/docs/event-bus.md +0 -0
  90. {janito-2.30.0 → janito-2.31.1}/docs/guides/configuration.md +0 -0
  91. {janito-2.30.0 → janito-2.31.1}/docs/guides/developing.md +0 -0
  92. {janito-2.30.0 → janito-2.31.1}/docs/guides/disabled-tools.md +0 -0
  93. {janito-2.30.0 → janito-2.31.1}/docs/guides/installation.md +0 -0
  94. {janito-2.30.0 → janito-2.31.1}/docs/guides/market-data-sources.md +0 -0
  95. {janito-2.30.0 → janito-2.31.1}/docs/guides/profiles.md +0 -0
  96. {janito-2.30.0 → janito-2.31.1}/docs/guides/prompting/README.md +0 -0
  97. {janito-2.30.0 → janito-2.31.1}/docs/guides/read-chart-examples.md +0 -0
  98. {janito-2.30.0 → janito-2.31.1}/docs/guides/security-commands.md +0 -0
  99. {janito-2.30.0 → janito-2.31.1}/docs/guides/single-shot-terminal.md +0 -0
  100. {janito-2.30.0 → janito-2.31.1}/docs/guides/stock-market-guide.md +0 -0
  101. {janito-2.30.0 → janito-2.31.1}/docs/guides/terminal-shell.md +0 -0
  102. {janito-2.30.0 → janito-2.31.1}/docs/guides/tools-developer-guide.md +0 -0
  103. {janito-2.30.0 → janito-2.31.1}/docs/guides/url-whitelist.md +0 -0
  104. {janito-2.30.0 → janito-2.31.1}/docs/guides/using.md +0 -0
  105. {janito-2.30.0 → janito-2.31.1}/docs/guides/using_tools.md +0 -0
  106. {janito-2.30.0 → janito-2.31.1}/docs/ibm-setup.md +0 -0
  107. {janito-2.30.0 → janito-2.31.1}/docs/imgs/code-generation-observability.png +0 -0
  108. {janito-2.30.0 → janito-2.31.1}/docs/imgs/code_generation_observability.png +0 -0
  109. {janito-2.30.0 → janito-2.31.1}/docs/imgs/happy-programmer.png +0 -0
  110. {janito-2.30.0 → janito-2.31.1}/docs/imgs/happy-programmer.svg +0 -0
  111. {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal-one-shot.png +0 -0
  112. {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal-shell.png +0 -0
  113. {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal_one_shot.png +0 -0
  114. {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal_shell.png +0 -0
  115. {janito-2.30.0 → janito-2.31.1}/docs/index.md +0 -0
  116. {janito-2.30.0 → janito-2.31.1}/docs/llm-drivers-required-config.md +0 -0
  117. {janito-2.30.0 → janito-2.31.1}/docs/llm-drivers.md +0 -0
  118. {janito-2.30.0 → janito-2.31.1}/docs/meta/developer-toolchain.md +0 -0
  119. {janito-2.30.0 → janito-2.31.1}/docs/meta/quality-checks.txt +0 -0
  120. {janito-2.30.0 → janito-2.31.1}/docs/mistral-setup.md +0 -0
  121. {janito-2.30.0 → janito-2.31.1}/docs/moonshot-setup.md +0 -0
  122. {janito-2.30.0 → janito-2.31.1}/docs/openai-setup.md +0 -0
  123. {janito-2.30.0 → janito-2.31.1}/docs/overrides/partials/copyright.html +0 -0
  124. {janito-2.30.0 → janito-2.31.1}/docs/plugins/MIGRATION_COMPLETE.md +0 -0
  125. {janito-2.30.0 → janito-2.31.1}/docs/plugins/README.md +0 -0
  126. {janito-2.30.0 → janito-2.31.1}/docs/plugins/api-reference.md +0 -0
  127. {janito-2.30.0 → janito-2.31.1}/docs/plugins/architecture.md +0 -0
  128. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
  129. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/pythondev.md +0 -0
  130. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/system.md +0 -0
  131. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/userinterface.md +0 -0
  132. {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/webtools.md +0 -0
  133. {janito-2.30.0 → janito-2.31.1}/docs/plugins/examples/advanced.md +0 -0
  134. {janito-2.30.0 → janito-2.31.1}/docs/plugins/examples/basic.md +0 -0
  135. {janito-2.30.0 → janito-2.31.1}/docs/plugins/examples/intermediate.md +0 -0
  136. {janito-2.30.0 → janito-2.31.1}/docs/plugins/plugin-development.md +0 -0
  137. {janito-2.30.0 → janito-2.31.1}/docs/plugins/plugin-resources.md +0 -0
  138. {janito-2.30.0 → janito-2.31.1}/docs/plugins/publishing.md +0 -0
  139. {janito-2.30.0 → janito-2.31.1}/docs/plugins/remote-plugins.md +0 -0
  140. {janito-2.30.0 → janito-2.31.1}/docs/plugins/testing.md +0 -0
  141. {janito-2.30.0 → janito-2.31.1}/docs/provider-platform-access.md +0 -0
  142. {janito-2.30.0 → janito-2.31.1}/docs/public-sources.md +0 -0
  143. {janito-2.30.0 → janito-2.31.1}/docs/reference/api.md +0 -0
  144. {janito-2.30.0 → janito-2.31.1}/docs/reference/azure-openai.md +0 -0
  145. {janito-2.30.0 → janito-2.31.1}/docs/reference/cli-options.md +0 -0
  146. {janito-2.30.0 → janito-2.31.1}/docs/reference/message-handler-model.md +0 -0
  147. {janito-2.30.0 → janito-2.31.1}/docs/reference/rich-message-handler.md +0 -0
  148. {janito-2.30.0 → janito-2.31.1}/docs/security.md +0 -0
  149. {janito-2.30.0 → janito-2.31.1}/docs/supported-providers-models.md +0 -0
  150. {janito-2.30.0 → janito-2.31.1}/docs/tools/search-text.md +0 -0
  151. {janito-2.30.0 → janito-2.31.1}/docs/tools-natural-results.md +0 -0
  152. {janito-2.30.0 → janito-2.31.1}/docs/tools-precision.md +0 -0
  153. {janito-2.30.0 → janito-2.31.1}/docs/z-ai-setup.md +0 -0
  154. {janito-2.30.0 → janito-2.31.1}/examples/loop_protection_example.py +0 -0
  155. {janito-2.30.0 → janito-2.31.1}/examples/loop_protection_tool_example.py +0 -0
  156. {janito-2.30.0 → janito-2.31.1}/get_nasdaq_top.py +0 -0
  157. {janito-2.30.0 → janito-2.31.1}/ibm-logo.txt +0 -0
  158. {janito-2.30.0 → janito-2.31.1}/janito/README.md +0 -0
  159. {janito-2.30.0 → janito-2.31.1}/janito/__init__.py +0 -0
  160. {janito-2.30.0 → janito-2.31.1}/janito/__main__.py +0 -0
  161. {janito-2.30.0 → janito-2.31.1}/janito/_version.py +0 -0
  162. {janito-2.30.0 → janito-2.31.1}/janito/agent/setup_agent.py +0 -0
  163. {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
  164. {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
  165. {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
  166. {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
  167. {janito-2.30.0 → janito-2.31.1}/janito/cli/__init__.py +0 -0
  168. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/bindings.py +0 -0
  169. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/chat_entry.py +0 -0
  170. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/prompt_style.py +0 -0
  171. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/script_runner.py +0 -0
  172. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/session.py +0 -0
  173. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  174. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
  175. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  176. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  177. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  178. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  179. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  180. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  181. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  182. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  183. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  184. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  185. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  186. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  187. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  188. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  189. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
  190. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  191. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  192. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
  193. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
  194. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
  195. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  196. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  197. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  198. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
  199. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  200. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  201. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  202. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  203. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/input_history.py +0 -0
  204. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  205. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session/history.py +0 -0
  206. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  207. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  208. {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/toolbar.py +0 -0
  209. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
  210. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_config.py +0 -0
  211. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_drivers.py +0 -0
  212. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_models.py +0 -0
  213. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_profiles.py +0 -0
  214. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_providers.py +0 -0
  215. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_providers_region.py +0 -0
  216. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_tools.py +0 -0
  217. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/model_selection.py +0 -0
  218. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/model_utils.py +0 -0
  219. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/ping_providers.py +0 -0
  220. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/set_api_key.py +0 -0
  221. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/show_config.py +0 -0
  222. {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/show_system_prompt.py +0 -0
  223. {janito-2.30.0 → janito-2.31.1}/janito/cli/config.py +0 -0
  224. {janito-2.30.0 → janito-2.31.1}/janito/cli/console.py +0 -0
  225. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/__init__.py +0 -0
  226. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/event_logger.py +0 -0
  227. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/getters.py +0 -0
  228. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/model_guesser.py +0 -0
  229. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/runner.py +0 -0
  230. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/setters.py +0 -0
  231. {janito-2.30.0 → janito-2.31.1}/janito/cli/core/unsetters.py +0 -0
  232. {janito-2.30.0 → janito-2.31.1}/janito/cli/main.py +0 -0
  233. {janito-2.30.0 → janito-2.31.1}/janito/cli/main_cli.py +0 -0
  234. {janito-2.30.0 → janito-2.31.1}/janito/cli/prompt_core.py +0 -0
  235. {janito-2.30.0 → janito-2.31.1}/janito/cli/prompt_handler.py +0 -0
  236. {janito-2.30.0 → janito-2.31.1}/janito/cli/prompt_setup.py +0 -0
  237. {janito-2.30.0 → janito-2.31.1}/janito/cli/single_shot_mode/__init__.py +0 -0
  238. {janito-2.30.0 → janito-2.31.1}/janito/cli/single_shot_mode/handler.py +0 -0
  239. {janito-2.30.0 → janito-2.31.1}/janito/cli/utils.py +0 -0
  240. {janito-2.30.0 → janito-2.31.1}/janito/cli/verbose_output.py +0 -0
  241. {janito-2.30.0 → janito-2.31.1}/janito/config.py +0 -0
  242. {janito-2.30.0 → janito-2.31.1}/janito/config_manager.py +0 -0
  243. {janito-2.30.0 → janito-2.31.1}/janito/conversation_history.py +0 -0
  244. {janito-2.30.0 → janito-2.31.1}/janito/dir_walk_utils.py +0 -0
  245. {janito-2.30.0 → janito-2.31.1}/janito/docs/GETTING_STARTED.md +0 -0
  246. {janito-2.30.0 → janito-2.31.1}/janito/driver_events.py +0 -0
  247. {janito-2.30.0 → janito-2.31.1}/janito/drivers/azure_openai/driver.py +0 -0
  248. {janito-2.30.0 → janito-2.31.1}/janito/drivers/cerebras/__init__.py +0 -0
  249. {janito-2.30.0 → janito-2.31.1}/janito/drivers/dashscope.bak.zip +0 -0
  250. {janito-2.30.0 → janito-2.31.1}/janito/drivers/openai/README.md +0 -0
  251. {janito-2.30.0 → janito-2.31.1}/janito/drivers/openai/driver.py +0 -0
  252. {janito-2.30.0 → janito-2.31.1}/janito/drivers/openai_responses.bak.zip +0 -0
  253. {janito-2.30.0 → janito-2.31.1}/janito/drivers/zai/__init__.py +0 -0
  254. {janito-2.30.0 → janito-2.31.1}/janito/drivers/zai/driver.py +0 -0
  255. {janito-2.30.0 → janito-2.31.1}/janito/event_bus/__init__.py +0 -0
  256. {janito-2.30.0 → janito-2.31.1}/janito/event_bus/bus.py +0 -0
  257. {janito-2.30.0 → janito-2.31.1}/janito/event_bus/event.py +0 -0
  258. {janito-2.30.0 → janito-2.31.1}/janito/event_bus/handler.py +0 -0
  259. {janito-2.30.0 → janito-2.31.1}/janito/event_bus/queue_bus.py +0 -0
  260. {janito-2.30.0 → janito-2.31.1}/janito/exceptions.py +0 -0
  261. {janito-2.30.0 → janito-2.31.1}/janito/formatting.py +0 -0
  262. {janito-2.30.0 → janito-2.31.1}/janito/formatting_token.py +0 -0
  263. {janito-2.30.0 → janito-2.31.1}/janito/gitignore_utils.py +0 -0
  264. {janito-2.30.0 → janito-2.31.1}/janito/i18n/__init__.py +0 -0
  265. {janito-2.30.0 → janito-2.31.1}/janito/i18n/it.py +0 -0
  266. {janito-2.30.0 → janito-2.31.1}/janito/i18n/messages.py +0 -0
  267. {janito-2.30.0 → janito-2.31.1}/janito/i18n/pt.py +0 -0
  268. {janito-2.30.0 → janito-2.31.1}/janito/llm/README.md +0 -0
  269. {janito-2.30.0 → janito-2.31.1}/janito/llm/__init__.py +0 -0
  270. {janito-2.30.0 → janito-2.31.1}/janito/llm/agent.py +0 -0
  271. {janito-2.30.0 → janito-2.31.1}/janito/llm/auth.py +0 -0
  272. {janito-2.30.0 → janito-2.31.1}/janito/llm/auth_utils.py +0 -0
  273. {janito-2.30.0 → janito-2.31.1}/janito/llm/driver.py +0 -0
  274. {janito-2.30.0 → janito-2.31.1}/janito/llm/driver_config.py +0 -0
  275. {janito-2.30.0 → janito-2.31.1}/janito/llm/driver_config_builder.py +0 -0
  276. {janito-2.30.0 → janito-2.31.1}/janito/llm/driver_input.py +0 -0
  277. {janito-2.30.0 → janito-2.31.1}/janito/llm/message_parts.py +0 -0
  278. {janito-2.30.0 → janito-2.31.1}/janito/llm/model.py +0 -0
  279. {janito-2.30.0 → janito-2.31.1}/janito/llm/provider.py +0 -0
  280. {janito-2.30.0 → janito-2.31.1}/janito/mkdocs.yml +0 -0
  281. {janito-2.30.0 → janito-2.31.1}/janito/perf_singleton.py +0 -0
  282. {janito-2.30.0 → janito-2.31.1}/janito/performance_collector.py +0 -0
  283. {janito-2.30.0 → janito-2.31.1}/janito/platform_discovery.py +0 -0
  284. {janito-2.30.0 → janito-2.31.1}/janito/plugins/__init__.py +0 -0
  285. {janito-2.30.0 → janito-2.31.1}/janito/plugins/base.py +0 -0
  286. {janito-2.30.0 → janito-2.31.1}/janito/plugins/builtin.py +0 -0
  287. {janito-2.30.0 → janito-2.31.1}/janito/plugins/config.py +0 -0
  288. {janito-2.30.0 → janito-2.31.1}/janito/plugins/manager.py +0 -0
  289. {janito-2.30.0 → janito-2.31.1}/janito/provider_config.py +0 -0
  290. {janito-2.30.0 → janito-2.31.1}/janito/provider_registry.py +0 -0
  291. {janito-2.30.0 → janito-2.31.1}/janito/providers/__init__.py +0 -0
  292. {janito-2.30.0 → janito-2.31.1}/janito/providers/alibaba/__init__.py +0 -0
  293. {janito-2.30.0 → janito-2.31.1}/janito/providers/alibaba/model_info.py +0 -0
  294. {janito-2.30.0 → janito-2.31.1}/janito/providers/alibaba/provider.py +0 -0
  295. {janito-2.30.0 → janito-2.31.1}/janito/providers/anthropic/model_info.py +0 -0
  296. {janito-2.30.0 → janito-2.31.1}/janito/providers/anthropic/provider.py +0 -0
  297. {janito-2.30.0 → janito-2.31.1}/janito/providers/azure_openai/model_info.py +0 -0
  298. {janito-2.30.0 → janito-2.31.1}/janito/providers/azure_openai/provider.py +0 -0
  299. {janito-2.30.0 → janito-2.31.1}/janito/providers/cerebras/__init__.py +0 -0
  300. {janito-2.30.0 → janito-2.31.1}/janito/providers/cerebras/model_info.py +0 -0
  301. {janito-2.30.0 → janito-2.31.1}/janito/providers/cerebras/provider.py +0 -0
  302. {janito-2.30.0 → janito-2.31.1}/janito/providers/dashscope.bak.zip +0 -0
  303. {janito-2.30.0 → janito-2.31.1}/janito/providers/deepseek/__init__.py +0 -0
  304. {janito-2.30.0 → janito-2.31.1}/janito/providers/deepseek/model_info.py +0 -0
  305. {janito-2.30.0 → janito-2.31.1}/janito/providers/deepseek/provider.py +0 -0
  306. {janito-2.30.0 → janito-2.31.1}/janito/providers/google/__init__.py +0 -0
  307. {janito-2.30.0 → janito-2.31.1}/janito/providers/google/model_info.py +0 -0
  308. {janito-2.30.0 → janito-2.31.1}/janito/providers/google/provider.py +0 -0
  309. {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/README.md +0 -0
  310. {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/__init__.py +0 -0
  311. {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/model_info.py +0 -0
  312. {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/provider.py +0 -0
  313. {janito-2.30.0 → janito-2.31.1}/janito/providers/mistral/__init__.py +0 -0
  314. {janito-2.30.0 → janito-2.31.1}/janito/providers/mistral/model_info.py +0 -0
  315. {janito-2.30.0 → janito-2.31.1}/janito/providers/mistral/provider.py +0 -0
  316. {janito-2.30.0 → janito-2.31.1}/janito/providers/moonshot/__init__.py +0 -0
  317. {janito-2.30.0 → janito-2.31.1}/janito/providers/moonshot/model_info.py +0 -0
  318. {janito-2.30.0 → janito-2.31.1}/janito/providers/moonshot/provider.py +0 -0
  319. {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/__init__.py +0 -0
  320. {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/model_info.py +0 -0
  321. {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/provider.py +0 -0
  322. {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/schema_generator.py +0 -0
  323. {janito-2.30.0 → janito-2.31.1}/janito/providers/registry.py +0 -0
  324. {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/__init__.py +0 -0
  325. {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/model_info.py +0 -0
  326. {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/provider.py +0 -0
  327. {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/schema_generator.py +0 -0
  328. {janito-2.30.0 → janito-2.31.1}/janito/regions/__init__.py +0 -0
  329. {janito-2.30.0 → janito-2.31.1}/janito/regions/cli.py +0 -0
  330. {janito-2.30.0 → janito-2.31.1}/janito/regions/geo_utils.py +0 -0
  331. {janito-2.30.0 → janito-2.31.1}/janito/regions/provider_regions.py +0 -0
  332. {janito-2.30.0 → janito-2.31.1}/janito/report_events.py +0 -0
  333. {janito-2.30.0 → janito-2.31.1}/janito/shell.bak.zip +0 -0
  334. {janito-2.30.0 → janito-2.31.1}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  335. {janito-2.30.0 → janito-2.31.1}/janito/tools/README.md +0 -0
  336. {janito-2.30.0 → janito-2.31.1}/janito/tools/__init__.py +0 -0
  337. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/__init__.py +0 -0
  338. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/adapter.py +0 -0
  339. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/ask_user.py +0 -0
  340. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/copy_file.py +0 -0
  341. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/create_directory.py +0 -0
  342. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
  343. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/find_files.py +0 -0
  344. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
  345. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
  346. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
  347. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
  348. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
  349. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
  350. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/move_file.py +0 -0
  351. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
  352. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/open_url.py +0 -0
  353. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/python_code_run.py +0 -0
  354. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/python_command_run.py +0 -0
  355. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/python_file_run.py +0 -0
  356. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/read_chart.py +0 -0
  357. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/read_files.py +0 -0
  358. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/remove_directory.py +0 -0
  359. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/remove_file.py +0 -0
  360. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
  361. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/run_bash_command.py +0 -0
  362. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/run_powershell_command.py +0 -0
  363. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/__init__.py +0 -0
  364. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/core.py +0 -0
  365. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
  366. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
  367. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
  368. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
  369. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
  370. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
  371. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
  372. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py +0 -0
  373. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
  374. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
  375. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
  376. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
  377. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
  378. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
  379. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
  380. {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/view_file.py +0 -0
  381. {janito-2.30.0 → janito-2.31.1}/janito/tools/base.py +0 -0
  382. {janito-2.30.0 → janito-2.31.1}/janito/tools/disabled_tools.py +0 -0
  383. {janito-2.30.0 → janito-2.31.1}/janito/tools/inspect_registry.py +0 -0
  384. {janito-2.30.0 → janito-2.31.1}/janito/tools/loop_protection.py +0 -0
  385. {janito-2.30.0 → janito-2.31.1}/janito/tools/loop_protection_decorator.py +0 -0
  386. {janito-2.30.0 → janito-2.31.1}/janito/tools/outline_file.bak.zip +0 -0
  387. {janito-2.30.0 → janito-2.31.1}/janito/tools/path_security.py +0 -0
  388. {janito-2.30.0 → janito-2.31.1}/janito/tools/path_utils.py +0 -0
  389. {janito-2.30.0 → janito-2.31.1}/janito/tools/permissions.py +0 -0
  390. {janito-2.30.0 → janito-2.31.1}/janito/tools/permissions_parse.py +0 -0
  391. {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_base.py +0 -0
  392. {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_events.py +0 -0
  393. {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_run_exception.py +0 -0
  394. {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_use_tracker.py +0 -0
  395. {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_utils.py +0 -0
  396. {janito-2.30.0 → janito-2.31.1}/janito/tools/tools_adapter.py +0 -0
  397. {janito-2.30.0 → janito-2.31.1}/janito/tools/tools_schema.py +0 -0
  398. {janito-2.30.0 → janito-2.31.1}/janito/tools/url_whitelist.py +0 -0
  399. {janito-2.30.0 → janito-2.31.1}/janito/utils.py +0 -0
  400. {janito-2.30.0 → janito-2.31.1}/janito.egg-info/dependency_links.txt +0 -0
  401. {janito-2.30.0 → janito-2.31.1}/janito.egg-info/entry_points.txt +0 -0
  402. {janito-2.30.0 → janito-2.31.1}/janito.egg-info/top_level.txt +0 -0
  403. {janito-2.30.0 → janito-2.31.1}/market_prompt_fix.py +0 -0
  404. {janito-2.30.0 → janito-2.31.1}/market_test.py +0 -0
  405. {janito-2.30.0 → janito-2.31.1}/mkdocs.yml +0 -0
  406. {janito-2.30.0 → janito-2.31.1}/mkdocs_hooks.py +0 -0
  407. {janito-2.30.0 → janito-2.31.1}/plugins/core/__init__.py +0 -0
  408. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/__init__.py +0 -0
  409. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py +0 -0
  410. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/core.py +0 -0
  411. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/java_outline.py +0 -0
  412. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/markdown_outline.py +0 -0
  413. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/python_outline.py +0 -0
  414. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/search_outline.py +0 -0
  415. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/__init__.py +0 -0
  416. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/core.py +0 -0
  417. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/match_lines.py +0 -0
  418. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/pattern_utils.py +0 -0
  419. {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/traverse_directory.py +0 -0
  420. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/__init__.py +0 -0
  421. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/copy_file.py +0 -0
  422. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/create_directory.py +0 -0
  423. {janito-2.30.0/janito/tools/adapters/local → janito-2.31.1/plugins/core/filemanager/tools}/create_file.py +0 -0
  424. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/delete_text_in_file.py +0 -0
  425. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/find_files.py +0 -0
  426. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/move_file.py +0 -0
  427. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/read_files.py +0 -0
  428. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/remove_directory.py +0 -0
  429. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/remove_file.py +0 -0
  430. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/replace_text_in_file.py +0 -0
  431. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
  432. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/core.py +0 -0
  433. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/css_validator.py +0 -0
  434. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/html_validator.py +0 -0
  435. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/jinja2_validator.py +0 -0
  436. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/js_validator.py +0 -0
  437. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/json_validator.py +0 -0
  438. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/markdown_validator.py +0 -0
  439. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/ps1_validator.py +0 -0
  440. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/python_validator.py +0 -0
  441. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/xml_validator.py +0 -0
  442. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/yaml_validator.py +0 -0
  443. {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/view_file.py +0 -0
  444. {janito-2.30.0 → janito-2.31.1}/plugins/core/system/__init__.py +0 -0
  445. {janito-2.30.0 → janito-2.31.1}/plugins/core/system/tools/run_bash_command.py +0 -0
  446. {janito-2.30.0 → janito-2.31.1}/plugins/core/system/tools/run_powershell_command.py +0 -0
  447. {janito-2.30.0 → janito-2.31.1}/plugins/dev/__init__.py +0 -0
  448. {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/__init__.py +0 -0
  449. {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/tools/python_code_run.py +0 -0
  450. {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/tools/python_command_run.py +0 -0
  451. {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/tools/python_file_run.py +0 -0
  452. {janito-2.30.0 → janito-2.31.1}/plugins/dev/visualization/__init__.py +0 -0
  453. {janito-2.30.0 → janito-2.31.1}/plugins/dev/visualization/tools/read_chart.py +0 -0
  454. {janito-2.30.0 → janito-2.31.1}/plugins/example_plugin.py +0 -0
  455. {janito-2.30.0 → janito-2.31.1}/plugins/ui/__init__.py +0 -0
  456. {janito-2.30.0 → janito-2.31.1}/plugins/ui/userinterface/__init__.py +0 -0
  457. {janito-2.30.0 → janito-2.31.1}/plugins/ui/userinterface/tools/ask_user.py +0 -0
  458. {janito-2.30.0 → janito-2.31.1}/plugins/web/__init__.py +0 -0
  459. {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/__init__.py +0 -0
  460. {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/tools/open_html_in_browser.py +0 -0
  461. {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/tools/open_url.py +0 -0
  462. {janito-2.30.0 → janito-2.31.1}/plugins.txt +0 -0
  463. {janito-2.30.0 → janito-2.31.1}/pyproject.toml +0 -0
  464. {janito-2.30.0 → janito-2.31.1}/pytest.ini +0 -0
  465. {janito-2.30.0 → janito-2.31.1}/requirements-dev.txt +0 -0
  466. {janito-2.30.0 → janito-2.31.1}/setup.cfg +0 -0
  467. {janito-2.30.0 → janito-2.31.1}/test_example.py +0 -0
  468. {janito-2.30.0 → janito-2.31.1}/test_key_field_behavior.py +0 -0
  469. {janito-2.30.0 → janito-2.31.1}/test_key_field_protection.py +0 -0
  470. {janito-2.30.0 → janito-2.31.1}/test_loop_protection_return.py +0 -0
  471. {janito-2.30.0 → janito-2.31.1}/test_market_analyst.py +0 -0
  472. {janito-2.30.0 → janito-2.31.1}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  473. {janito-2.30.0 → janito-2.31.1}/tests/adapters/local/test_read_files.py +0 -0
  474. {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_models.py +0 -0
  475. {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_providers.py +0 -0
  476. {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_providers_alibaba.py +0 -0
  477. {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_providers_moonshot.py +0 -0
  478. {janito-2.30.0 → janito-2.31.1}/tests/test_cli_version.py +0 -0
  479. {janito-2.30.0 → janito-2.31.1}/tests/test_disabled_tools.py +0 -0
  480. {janito-2.30.0 → janito-2.31.1}/tests/test_plugin_system.py +0 -0
  481. {janito-2.30.0 → janito-2.31.1}/tests/test_provider_alibaba.py +0 -0
  482. {janito-2.30.0 → janito-2.31.1}/tests/test_provider_cerebras.py +0 -0
  483. {janito-2.30.0 → janito-2.31.1}/tests/test_provider_moonshot.py +0 -0
  484. {janito-2.30.0 → janito-2.31.1}/tools/release.py +0 -0
  485. {janito-2.30.0 → janito-2.31.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.30.0
3
+ Version: 2.31.1
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
@@ -19,6 +19,7 @@ Requires-Dist: requests>=2.32.4
19
19
  Requires-Dist: bs4>=0.0.2
20
20
  Requires-Dist: questionary>=2.0.1
21
21
  Requires-Dist: openai>=1.68.0
22
+ Requires-Dist: Pillow>=10.0.0
22
23
  Provides-Extra: dev
23
24
  Requires-Dist: pytest; extra == "dev"
24
25
  Requires-Dist: pre-commit; extra == "dev"
@@ -39,6 +39,9 @@ janito/tools/adapters/local/
39
39
  | `python_file_run` | `janito/tools/adapters/local/python_file_run.py` | Python script execution |
40
40
  | **dev.visualization** | | |
41
41
  | `read_chart` | `janito/tools/adapters/local/read_chart.py` | Data visualization |
42
+ | **core.imagedisplay** | | |
43
+ | `show_image` | `janito/tools/adapters/local/show_image.py` | Display single image |
44
+ | `show_image_grid` | `janito/tools/adapters/local/show_image_grid.py` | Display multiple images in a grid |
42
45
  | **ui.userinterface** | | |
43
46
  | `ask_user` | `janito/tools/adapters/local/ask_user.py` | User interaction |
44
47
 
@@ -25,6 +25,10 @@ The File Manager plugin provides essential file and directory operations for man
25
25
  ## Usage Examples
26
26
 
27
27
  ### Creating a New File
28
+
29
+ The `create_file` tool provides comprehensive file creation with built-in safety features and automatic validation.
30
+
31
+ **Basic Usage:**
28
32
  ```json
29
33
  {
30
34
  "tool": "create_file",
@@ -33,6 +37,51 @@ The File Manager plugin provides essential file and directory operations for man
33
37
  }
34
38
  ```
35
39
 
40
+ **Advanced Examples:**
41
+
42
+ Create nested directory structure:
43
+ ```json
44
+ {
45
+ "tool": "create_file",
46
+ "path": "src/components/Button/index.js",
47
+ "content": "export default function Button() { return <button>Click me</button>; }"
48
+ }
49
+ ```
50
+
51
+ Create configuration file with environment variables:
52
+ ```json
53
+ {
54
+ "tool": "create_file",
55
+ "path": "$HOME/.myapp/config.json",
56
+ "content": "{\n \"api_url\": \"https://api.example.com\",\n \"timeout\": 30\n}"
57
+ }
58
+ ```
59
+
60
+ Overwrite existing file (use with caution):
61
+ ```json
62
+ {
63
+ "tool": "create_file",
64
+ "path": "README.md",
65
+ "content": "# My Project\n\nUpdated documentation...",
66
+ "overwrite": true
67
+ }
68
+ ```
69
+
70
+ **Safety Features:**
71
+
72
+ - **Overwrite Protection**: Prevents accidental file overwrites by default
73
+ - **Syntax Validation**: Automatically checks Python, JavaScript, JSON, YAML, and other common file types
74
+ - **Path Expansion**: Supports `~` for home directory and environment variables like `$HOME`
75
+ - **Directory Creation**: Automatically creates parent directories as needed
76
+ - **Encoding Safety**: Uses UTF-8 encoding with proper error handling for international characters
77
+ - **Loop Protection**: Prevents excessive file creation calls (max 5 per 10 seconds per file)
78
+
79
+ **Return Values:**
80
+
81
+ - Success: Includes line count and syntax validation results
82
+ - Failure: Provides detailed error messages and existing content preview when overwrite is blocked
83
+ - Validation: Shows syntax check results for supported file types
84
+
36
85
  ### Reading Multiple Files
37
86
  ```json
38
87
  {
@@ -0,0 +1,19 @@
1
+ # Image Display Plugin (core.imagedisplay)
2
+
3
+ Display images inline in the terminal using the rich library.
4
+
5
+ Tools provided:
6
+
7
+ - show_image: display a single image
8
+ - show_image_grid: display multiple images in a grid
9
+
10
+ Dependencies:
11
+
12
+ - rich
13
+ - pillow
14
+
15
+ Example:
16
+
17
+ ```bash
18
+ janito --tool show_image --path img/tux.png --width 60
19
+ ```
@@ -11,6 +11,8 @@ The Visualization plugin provides data visualization and charting capabilities.
11
11
  | Tool Name | Function | Description |
12
12
  |-----------|----------|-------------|
13
13
  | `read_chart` | Display charts in terminal | Renders various chart types (bar, line, pie, table) in the terminal using rich formatting |
14
+ | `show_image` | Display single image | Shows a single image inline in the terminal using rich |
15
+ | `show_image_grid` | Display image grid | Shows multiple images in a grid inline in the terminal |
14
16
 
15
17
  ## Usage Examples
16
18
 
@@ -69,6 +71,11 @@ The Visualization plugin provides data visualization and charting capabilities.
69
71
 
70
72
  This plugin does not require any specific configuration. Chart rendering uses default dimensions and styling.
71
73
 
74
+ Image Display tools (core.imagedisplay) have optional settings:
75
+ - default_width (int): Default width for image display
76
+ - default_height (int): Default height for image display
77
+ - preserve_aspect (bool): Preserve aspect ratio by default
78
+
72
79
  ## Security Considerations
73
80
 
74
81
  - Chart data is rendered client-side with no external dependencies
@@ -14,6 +14,7 @@ Plugins can be configured through the main configuration file `janito.json`. The
14
14
  "load": {
15
15
  "core.filemanager": true,
16
16
  "core.codeanalyzer": true,
17
+ "core.imagedisplay": true,
17
18
  "web.webtools": false
18
19
  },
19
20
  "config": {
@@ -41,7 +42,8 @@ The `plugins.load` section controls which plugins are enabled:
41
42
  "load": {
42
43
  "core.filemanager": true,
43
44
  "dev.pythondev": true,
44
- "ui.userinterface": true
45
+ "ui.userinterface": true,
46
+ "core.imagedisplay": true
45
47
  }
46
48
  }
47
49
  ```
@@ -0,0 +1,19 @@
1
+ # show_image_grid
2
+
3
+ Display multiple images in a grid inline in the terminal using rich.
4
+
5
+ Arguments:
6
+
7
+ - paths (list[str]): List of image file paths.
8
+ - columns (int, optional): Number of columns in the grid. Default: 2.
9
+ - width (int, optional): Max width for each image cell. Default: None (auto).
10
+ - height (int, optional): Max height for each image cell. Default: None (auto).
11
+ - preserve_aspect (bool, optional): Preserve aspect ratio. Default: True.
12
+
13
+ Returns:
14
+
15
+ - Status string summarizing the grid display.
16
+
17
+ Example Usage:
18
+
19
+ - `show_image_grid(paths=["img/tux.png", "img/tux_display.png"], columns=2, width=40)`
@@ -0,0 +1,16 @@
1
+ # show_image
2
+
3
+ Display an image inline in the terminal using the rich library.
4
+
5
+ Arguments:
6
+ - path (str): Path to the image file.
7
+ - width (int, optional): Target width in terminal cells. If unset, auto-fit.
8
+ - height (int, optional): Target height in terminal rows. If unset, auto-fit.
9
+ - preserve_aspect (bool, optional): Preserve aspect ratio. Default: True.
10
+
11
+ Returns:
12
+ - Status message indicating display result or error details.
13
+
14
+ Example Usage:
15
+ - show a PNG: `show_image(path="img/tux.png", width=60)`
16
+ - auto-fit: `show_image(path="~/Pictures/photo.jpg")`
@@ -6,6 +6,39 @@ Janito provides a comprehensive set of tools for file operations, code execution
6
6
 
7
7
  ### Visualization Tools
8
8
 
9
+ #### show_image
10
+
11
+ Display an image inline in the terminal using rich.
12
+
13
+ Arguments:
14
+ - path (str): Path to the image file.
15
+ - width (int, optional): Target width in terminal cells. If unset, auto-fit.
16
+ - height (int, optional): Target height in terminal rows. If unset, auto-fit.
17
+ - preserve_aspect (bool, optional): Preserve aspect ratio. Default: True.
18
+
19
+ Returns:
20
+ - Status message indicating display result or error details.
21
+
22
+ Example Usage:
23
+ - show a PNG: `show_image(path="img/tux.png", width=60)`
24
+
25
+ #### show_image_grid
26
+
27
+ Display multiple images in a grid inline in the terminal using rich.
28
+
29
+ Arguments:
30
+ - paths (list[str]): List of image file paths.
31
+ - columns (int, optional): Number of columns in the grid. Default: 2.
32
+ - width (int, optional): Max width for each image cell. Default: None (auto).
33
+ - height (int, optional): Max height for each image cell. Default: None (auto).
34
+ - preserve_aspect (bool, optional): Preserve aspect ratio. Default: True.
35
+
36
+ Returns:
37
+ - Status string summarizing the grid display.
38
+
39
+ Example Usage:
40
+ - `show_image_grid(paths=["img/tux.png", "img/tux_display.png"], columns=2, width=40)`
41
+
9
42
  #### read_chart
10
43
 
11
44
  Display charts and data visualizations in the terminal using rich.
Binary file
Binary file
@@ -0,0 +1,228 @@
1
+ """
2
+ CLI command to list available and loaded plugins.
3
+ """
4
+
5
+ import argparse
6
+ from typing import List, Dict, Any
7
+ from janito.plugins.discovery import list_available_plugins
8
+ import os
9
+ from janito.plugins.manager import PluginManager
10
+ from janito.plugins.builtin import BuiltinPluginRegistry
11
+ from janito.plugins.auto_loader_fixed import load_core_plugins, get_loaded_core_plugins, is_core_plugin
12
+ from rich.console import Console
13
+ from rich.table import Table
14
+ from rich.panel import Panel
15
+ from rich.text import Text
16
+
17
+
18
+ def handle_list_plugins(args: argparse.Namespace) -> None:
19
+ """List plugins command handler."""
20
+
21
+ if getattr(args, "list_plugins_available", False):
22
+ _list_available_plugins()
23
+ elif getattr(args, "list_resources", False):
24
+ _list_plugin_resources()
25
+ else:
26
+ _list_loaded_plugins()
27
+
28
+
29
+ def _list_available_plugins():
30
+ """List available plugins using rich formatting."""
31
+ console = Console()
32
+ available = list_available_plugins()
33
+ builtin_plugins = BuiltinPluginRegistry.list_builtin_plugins()
34
+
35
+ if available or builtin_plugins:
36
+ # Create main table
37
+ table = Table(title="Available Plugins")
38
+ table.add_column("Plugin Name", style="cyan", no_wrap=True)
39
+ table.add_column("Type", style="magenta")
40
+ table.add_column("Status", style="green")
41
+
42
+ # Add builtin plugins
43
+ for plugin in builtin_plugins:
44
+ table.add_row(plugin, "Builtin", "📦")
45
+
46
+ # Add external plugins
47
+ other_plugins = [p for p in available if p not in builtin_plugins]
48
+ for plugin in other_plugins:
49
+ table.add_row(plugin, "External", "🔌")
50
+
51
+ console.print(table)
52
+
53
+ # Show core plugins
54
+ from janito.plugins.core_loader_fixed import get_core_plugins
55
+ core_plugins = get_core_plugins()
56
+ core_table = Table(title="Core Plugins (Enabled by Default)")
57
+ core_table.add_column("Plugin Name", style="cyan", no_wrap=True)
58
+ core_table.add_column("Status", style="yellow")
59
+
60
+ for plugin in core_plugins:
61
+ core_table.add_row(plugin, "✅ Available")
62
+
63
+ console.print(core_table)
64
+ else:
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
+ ))
73
+
74
+
75
+ def _print_builtin_plugins(builtin_plugins):
76
+ """Print builtin plugins."""
77
+ if builtin_plugins:
78
+ print(" Builtin plugins:")
79
+ for plugin in builtin_plugins:
80
+ print(f" - {plugin} [BUILTIN]")
81
+
82
+
83
+ def _print_external_plugins(available, builtin_plugins):
84
+ """Print external plugins."""
85
+ other_plugins = [p for p in available if p not in builtin_plugins]
86
+ if other_plugins:
87
+ print(" External plugins:")
88
+ for plugin in other_plugins:
89
+ print(f" - {plugin}")
90
+
91
+
92
+ def _list_plugin_resources():
93
+ """List all resources from loaded plugins using rich formatting."""
94
+ from janito.plugins.auto_loader_fixed import get_plugin_manager
95
+
96
+ console = Console()
97
+ manager = get_plugin_manager()
98
+ all_resources = manager.list_all_resources()
99
+
100
+ if all_resources:
101
+ for plugin_name, resources in all_resources.items():
102
+ metadata = manager.get_plugin_metadata(plugin_name)
103
+ version = metadata.version if metadata else 'unknown'
104
+
105
+ # Create panel for each plugin
106
+ panel_content = []
107
+
108
+ tools = [r for r in resources if r["type"] == "tool"]
109
+ commands = [r for r in resources if r["type"] == "command"]
110
+ configs = [r for r in resources if r["type"] == "config"]
111
+
112
+ if tools:
113
+ panel_content.append("[bold blue]Tools:[/bold blue]")
114
+ for tool in tools:
115
+ panel_content.append(f" • {tool['name']}: {tool['description']}")
116
+
117
+ if commands:
118
+ panel_content.append("[bold green]Commands:[/bold green]")
119
+ for cmd in commands:
120
+ panel_content.append(f" • {cmd['name']}: {cmd['description']}")
121
+
122
+ if configs:
123
+ panel_content.append("[bold yellow]Configuration:[/bold yellow]")
124
+ for config in configs:
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
+ ))
132
+ else:
133
+ console.print(Panel(
134
+ "No plugins are currently loaded.",
135
+ title="No Plugin Resources",
136
+ style="yellow"
137
+ ))
138
+
139
+
140
+ def _print_resources_by_type(resources):
141
+ """Print resources grouped by type."""
142
+ tools = [r for r in resources if r["type"] == "tool"]
143
+ commands = [r for r in resources if r["type"] == "command"]
144
+ configs = [r for r in resources if r["type"] == "config"]
145
+
146
+ if tools:
147
+ print(" Tools:")
148
+ for tool in tools:
149
+ print(f" - {tool['name']}: {tool['description']}")
150
+
151
+ if commands:
152
+ print(" Commands:")
153
+ for cmd in commands:
154
+ print(f" - {cmd['name']}: {cmd['description']}")
155
+
156
+ if configs:
157
+ print(" Configuration:")
158
+ for config in configs:
159
+ print(f" - {config['name']}: {config['description']}")
160
+
161
+
162
+ def _list_loaded_plugins():
163
+ """List loaded plugins using rich formatting."""
164
+ from janito.plugins.auto_loader_fixed import get_plugin_manager
165
+
166
+ console = Console()
167
+ manager = get_plugin_manager()
168
+ loaded = manager.list_plugins()
169
+
170
+ if loaded:
171
+ # Create main table
172
+ table = Table(title="Loaded Plugins")
173
+ table.add_column("Plugin Name", style="cyan", no_wrap=True)
174
+ table.add_column("Version", style="magenta")
175
+ table.add_column("Description", style="green", max_width=50)
176
+ table.add_column("Type", style="yellow")
177
+
178
+ core_plugins = []
179
+ other_plugins = []
180
+
181
+ for plugin_name in loaded:
182
+ if is_core_plugin(plugin_name):
183
+ core_plugins.append(plugin_name)
184
+ else:
185
+ other_plugins.append(plugin_name)
186
+
187
+ # Add core plugins
188
+ for plugin_name in core_plugins:
189
+ metadata = manager.get_plugin_metadata(plugin_name)
190
+ if metadata:
191
+ table.add_row(
192
+ metadata.name,
193
+ metadata.version,
194
+ metadata.description,
195
+ "🔵 Core"
196
+ )
197
+
198
+ # Add other plugins
199
+ for plugin_name in other_plugins:
200
+ metadata = manager.get_plugin_metadata(plugin_name)
201
+ if metadata:
202
+ table.add_row(
203
+ metadata.name,
204
+ metadata.version,
205
+ metadata.description,
206
+ "🔶 External"
207
+ )
208
+
209
+ console.print(table)
210
+ else:
211
+ console.print(Panel(
212
+ "No plugins are currently loaded.",
213
+ title="No Plugins Loaded",
214
+ style="yellow"
215
+ ))
216
+
217
+
218
+ def _print_plugin_details(manager, plugin_name):
219
+ """Print details for a loaded plugin."""
220
+ metadata = manager.get_plugin_metadata(plugin_name)
221
+ is_builtin = BuiltinPluginRegistry.is_builtin(plugin_name)
222
+ if metadata:
223
+ builtin_tag = " [BUILTIN]" if is_builtin else ""
224
+ print(f" - {metadata.name} v{metadata.version}{builtin_tag}")
225
+ print(f" {metadata.description}")
226
+ if metadata.author:
227
+ print(f" Author: {metadata.author}")
228
+ print()
@@ -161,7 +161,7 @@ class RichTerminalReporter(EventHandlerBase):
161
161
  self.console.print(msg)
162
162
  self.console.file.flush()
163
163
  elif subtype == ReportSubtype.STDOUT:
164
- self.console.print(Text(msg, style="on dark_green"))
164
+ self.console.print(msg)
165
165
  self.console.file.flush()
166
166
  elif subtype == ReportSubtype.STDERR:
167
167
  self.console.print(Text(msg, style="on red"))
@@ -0,0 +1,91 @@
1
+ """
2
+ Auto-loader for core plugins.
3
+
4
+ This module automatically loads core plugins when the plugin system is initialized.
5
+ """
6
+
7
+ import os
8
+ from pathlib import Path
9
+ from typing import List
10
+ from janito.plugins.manager import PluginManager
11
+ from janito.plugins.discovery import list_available_plugins
12
+
13
+ # List of core plugins that should be enabled by default
14
+ CORE_PLUGINS = [
15
+ "core.filemanager",
16
+ "core.codeanalyzer",
17
+ "core.system",
18
+ "core.imagedisplay",
19
+ "dev.pythondev",
20
+ "dev.visualization",
21
+ "ui.userinterface",
22
+ "web.webtools",
23
+ ]
24
+
25
+
26
+ def load_core_plugins(pm: PluginManager = None) -> List[str]:
27
+ """
28
+ Load all core plugins.
29
+
30
+ Args:
31
+ pm: PluginManager instance. If None, creates a new one.
32
+
33
+ Returns:
34
+ List of successfully loaded plugin names
35
+ """
36
+ if pm is None:
37
+ pm = PluginManager()
38
+
39
+ # Ensure plugins directory is in search path
40
+ plugins_dir = Path.cwd() / "plugins"
41
+ if plugins_dir.exists():
42
+ pm.add_plugin_path(str(plugins_dir))
43
+
44
+ loaded = []
45
+
46
+ # Load core plugins
47
+ for plugin_name in CORE_PLUGINS:
48
+ try:
49
+ if pm.load_plugin(plugin_name):
50
+ loaded.append(plugin_name)
51
+ except Exception as e:
52
+ print(f"Warning: Failed to load core plugin {plugin_name}: {e}")
53
+
54
+ return loaded
55
+
56
+
57
+ def get_loaded_core_plugins() -> List[str]:
58
+ """
59
+ Get list of currently loaded core plugins.
60
+
61
+ Returns:
62
+ List of loaded core plugin names
63
+ """
64
+ pm = PluginManager()
65
+ loaded = pm.list_plugins()
66
+ return [p for p in loaded if p in CORE_PLUGINS]
67
+
68
+
69
+ def is_core_plugin(plugin_name: str) -> bool:
70
+ """
71
+ Check if a plugin is a core plugin.
72
+
73
+ Args:
74
+ plugin_name: Name of the plugin to check
75
+
76
+ Returns:
77
+ True if it's a core plugin
78
+ """
79
+ return plugin_name in CORE_PLUGINS
80
+
81
+
82
+ # Auto-load core plugins when module is imported
83
+ _plugin_manager = None
84
+
85
+ def get_plugin_manager() -> PluginManager:
86
+ """Get the global plugin manager with core plugins loaded."""
87
+ global _plugin_manager
88
+ if _plugin_manager is None:
89
+ _plugin_manager = PluginManager()
90
+ load_core_plugins(_plugin_manager)
91
+ return _plugin_manager
@@ -0,0 +1,90 @@
1
+ """
2
+ Fixed auto-loader for core plugins.
3
+
4
+ This module provides a working implementation to load core plugins
5
+ without the complex discovery mechanism.
6
+ """
7
+
8
+ import os
9
+ from pathlib import Path
10
+ from typing import List
11
+ from janito.plugins.manager import PluginManager
12
+ from janito.plugins.core_loader_fixed import load_core_plugin, get_core_plugins
13
+
14
+ # List of core plugins that should be enabled by default
15
+ CORE_PLUGINS = [
16
+ "core.filemanager",
17
+ "core.codeanalyzer",
18
+ "core.system",
19
+ "core.imagedisplay",
20
+ "dev.pythondev",
21
+ "dev.visualization",
22
+ "ui.userinterface",
23
+ "web.webtools",
24
+ ]
25
+
26
+
27
+ def load_core_plugins(pm: PluginManager = None) -> List[str]:
28
+ """
29
+ Load all core plugins.
30
+
31
+ Args:
32
+ pm: PluginManager instance. If None, creates a new one.
33
+
34
+ Returns:
35
+ List of successfully loaded plugin names
36
+ """
37
+ if pm is None:
38
+ pm = PluginManager()
39
+
40
+ loaded = []
41
+
42
+ # Load core plugins
43
+ for plugin_name in CORE_PLUGINS:
44
+ try:
45
+ plugin = load_core_plugin(plugin_name)
46
+ if plugin:
47
+ # Manually register the plugin
48
+ pm.plugins[plugin_name] = plugin
49
+ loaded.append(plugin_name)
50
+ except Exception as e:
51
+ print(f"Warning: Failed to load core plugin {plugin_name}: {e}")
52
+
53
+ return loaded
54
+
55
+
56
+ def get_loaded_core_plugins() -> List[str]:
57
+ """
58
+ Get list of currently loaded core plugins.
59
+
60
+ Returns:
61
+ List of loaded core plugin names
62
+ """
63
+ pm = PluginManager()
64
+ loaded = pm.list_plugins()
65
+ return [p for p in loaded if p in CORE_PLUGINS]
66
+
67
+
68
+ def is_core_plugin(plugin_name: str) -> bool:
69
+ """
70
+ Check if a plugin is a core plugin.
71
+
72
+ Args:
73
+ plugin_name: Name of the plugin to check
74
+
75
+ Returns:
76
+ True if it's a core plugin
77
+ """
78
+ return plugin_name in CORE_PLUGINS
79
+
80
+
81
+ # Auto-load core plugins when module is imported
82
+ _plugin_manager = None
83
+
84
+ def get_plugin_manager() -> PluginManager:
85
+ """Get the global plugin manager with core plugins loaded."""
86
+ global _plugin_manager
87
+ if _plugin_manager is None:
88
+ _plugin_manager = PluginManager()
89
+ load_core_plugins(_plugin_manager)
90
+ return _plugin_manager