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.
- {janito-3.3.0 → janito-3.4.0}/PKG-INFO +2 -1
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_plugins.py +48 -52
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/getters.py +0 -3
- {janito-3.3.0 → janito-3.4.0}/janito/cli/main_cli.py +12 -9
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/openai/driver.py +0 -1
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/zai/driver.py +0 -1
- janito-3.4.0/janito/llm/auth_utils.py +21 -0
- janito-3.4.0/janito/plugins/__init__.py +17 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/auto_loader_fixed.py +11 -12
- {janito-3.3.0/janito/plugin_system_backup_20250825_070018 → janito-3.4.0/janito/plugins}/base.py +2 -5
- {janito-3.3.0 → janito-3.4.0}/janito/plugins/builtin.py +1 -15
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/core_adapter.py +9 -11
- {janito-3.3.0/janito/plugin_system_backup_20250825_070018 → janito-3.4.0/janito/plugins}/core_loader.py +34 -58
- janito-3.3.0/janito/plugins/core_loader.py → janito-3.4.0/janito/plugins/core_loader_fixed.py +26 -45
- {janito-3.3.0 → janito-3.4.0}/janito/plugins/discovery.py +3 -3
- janito-3.4.0/janito/providers/alibaba/__init__.py +0 -0
- janito-3.4.0/janito/tools/__init__.py +36 -0
- janito-3.4.0/janito/tools/adapters/__init__.py +1 -0
- janito-3.4.0/janito/tools/adapters/local/__init__.py +73 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/ask_user.py +3 -3
- {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/create_file.py +4 -4
- {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
- {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/fetch_url.py +3 -3
- {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
- {janito-3.3.0/janito/plugins_backup_20250825_070018/tools → janito-3.4.0/janito/tools/adapters/local}/show_image.py +6 -15
- {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
- janito-3.4.0/janito/tools/base.py +12 -0
- janito-3.4.0/janito/tools/function_adapter.py +65 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_base.py +114 -142
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tools_schema.py +6 -12
- {janito-3.3.0 → janito-3.4.0}/janito.egg-info/PKG-INFO +2 -1
- janito-3.4.0/janito.egg-info/SOURCES.txt +481 -0
- {janito-3.3.0 → janito-3.4.0}/janito.egg-info/requires.txt +1 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/__init__.py +0 -9
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/filemanager/__init__.py +0 -33
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins/core/filemanager}/tools/copy_file.py +3 -3
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins/core/filemanager}/tools/create_directory.py +3 -3
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/filemanager/tools/delete_text_in_file.py +0 -1
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/imagedisplay/__init__.py +1 -1
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/imagedisplay/plugin.py +2 -2
- janito-3.4.0/plugins/core/imagedisplay/tools/__init__.py +1 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/imagedisplay/tools/show_image.py +3 -12
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/imagedisplay/tools/show_image_grid.py +3 -12
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/system/__init__.py +0 -3
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/__init__.py +0 -9
- {janito-3.3.0/janito → janito-3.4.0}/plugins/dev/visualization/__init__.py +0 -3
- {janito-3.3.0/janito → janito-3.4.0}/plugins/example_plugin.py +1 -1
- janito-3.4.0/plugins.txt +1 -0
- janito-3.3.0/PLUGIN_CLEANUP_PLAN.md +0 -131
- janito-3.3.0/PLUGIN_CLEANUP_SUMMARY.md +0 -109
- janito-3.3.0/RELEASE_NOTES_v3.3.0.md +0 -70
- janito-3.3.0/init_janito_tools.py +0 -51
- janito-3.3.0/janito/cli/cli_commands/check_tools.py +0 -212
- janito-3.3.0/janito/llm/auth_utils.py +0 -30
- janito-3.3.0/janito/plugin_system_backup_20250825_070018/__init__.py +0 -10
- janito-3.3.0/janito/plugin_system_backup_20250825_070018/core_loader_fixed.py +0 -149
- janito-3.3.0/janito/plugins/__init__.py +0 -28
- janito-3.3.0/janito/plugins/__main__.py +0 -85
- janito-3.3.0/janito/plugins/base.py +0 -57
- janito-3.3.0/janito/plugins/core/codeanalyzer/__init__.py +0 -43
- janito-3.3.0/janito/plugins/core/filemanager/tools/copy_file.py +0 -111
- janito-3.3.0/janito/plugins/core/filemanager/tools/create_directory.py +0 -97
- janito-3.3.0/janito/plugins/core/filemanager/tools/create_file.py +0 -111
- janito-3.3.0/janito/plugins/core/imagedisplay/tools/__init__.py +0 -1
- janito-3.3.0/janito/plugins/core/imagedisplay/tools/show_image.py +0 -83
- janito-3.3.0/janito/plugins/dev/pythondev/__init__.py +0 -37
- janito-3.3.0/janito/plugins_backup_20250825_070018/builtin.py +0 -102
- janito-3.3.0/janito/plugins_backup_20250825_070018/config.py +0 -84
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/__init__.py +0 -124
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/filemanager/tools/replace_text_in_file.py +0 -270
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/__init__.py +0 -14
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/plugin.py +0 -51
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/imagedisplay/tools/__init__.py +0 -1
- janito-3.3.0/janito/plugins_backup_20250825_070018/core/system/__init__.py +0 -23
- janito-3.3.0/janito/plugins_backup_20250825_070018/dev/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/dev/visualization/__init__.py +0 -23
- janito-3.3.0/janito/plugins_backup_20250825_070018/discovery.py +0 -289
- janito-3.3.0/janito/plugins_backup_20250825_070018/example_plugin.py +0 -108
- janito-3.3.0/janito/plugins_backup_20250825_070018/manager.py +0 -243
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/__init__.py +0 -10
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/core_tools_plugin.py +0 -88
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/decorators.py +0 -19
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/delete_text_in_file.py +0 -135
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/find_files.py +0 -143
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/core.py +0 -122
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/java_outline.py +0 -47
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/markdown_outline.py +0 -14
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/python_outline.py +0 -303
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/get_file_outline/search_outline.py +0 -36
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/move_file.py +0 -131
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/open_html_in_browser.py +0 -51
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/open_url.py +0 -37
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/python_code_run.py +0 -172
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/python_command_run.py +0 -171
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/python_file_run.py +0 -172
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/read_chart.py +0 -259
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/read_files.py +0 -58
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/remove_directory.py +0 -55
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/remove_file.py +0 -58
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/run_bash_command.py +0 -183
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/run_powershell_command.py +0 -218
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/core.py +0 -205
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/match_lines.py +0 -67
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/pattern_utils.py +0 -73
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/search_text/traverse_directory.py +0 -145
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/show_image_grid.py +0 -85
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/core.py +0 -114
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/css_validator.py +0 -35
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/html_validator.py +0 -100
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/jinja2_validator.py +0 -50
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/js_validator.py +0 -27
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/json_validator.py +0 -6
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/markdown_validator.py +0 -109
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/ps1_validator.py +0 -32
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/python_validator.py +0 -5
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/xml_validator.py +0 -11
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/validate_file_syntax/yaml_validator.py +0 -6
- janito-3.3.0/janito/plugins_backup_20250825_070018/tools/view_file.py +0 -172
- janito-3.3.0/janito/plugins_backup_20250825_070018/ui/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/ui/userinterface/__init__.py +0 -16
- janito-3.3.0/janito/plugins_backup_20250825_070018/ui/userinterface/tools/ask_user.py +0 -110
- janito-3.3.0/janito/plugins_backup_20250825_070018/web/__init__.py +0 -7
- janito-3.3.0/janito/plugins_backup_20250825_070018/web/webtools/__init__.py +0 -33
- janito-3.3.0/janito/plugins_backup_20250825_070018/web/webtools/tools/fetch_url.py +0 -458
- janito-3.3.0/janito/tools/__init__.py +0 -60
- janito-3.3.0/janito/tools/adapters/__init__.py +0 -6
- janito-3.3.0/janito/tools/adapters/local/__init__.py +0 -10
- janito-3.3.0/janito/tools/base.py +0 -42
- janito-3.3.0/janito/tools/cli_initializer.py +0 -88
- janito-3.3.0/janito/tools/function_adapter.py +0 -176
- janito-3.3.0/janito/tools/initialize.py +0 -70
- janito-3.3.0/janito.egg-info/SOURCES.txt +0 -561
- janito-3.3.0/test_core_plugins.py +0 -131
- janito-3.3.0/test_core_plugins_final.py +0 -131
- janito-3.3.0/test_core_plugins_fixed.py +0 -131
- {janito-3.3.0 → janito-3.4.0}/.codespellrc +0 -0
- {janito-3.3.0 → janito-3.4.0}/.gitattributes +0 -0
- {janito-3.3.0 → janito-3.4.0}/.github/workflows/python-app.yml.disabled +0 -0
- {janito-3.3.0 → janito-3.4.0}/.gitignore +0 -0
- {janito-3.3.0 → janito-3.4.0}/.pre-commit-config.yaml +0 -0
- {janito-3.3.0 → janito-3.4.0}/.secrets.baseline +0 -0
- {janito-3.3.0 → janito-3.4.0}/.vscode/settings.json +0 -0
- {janito-3.3.0 → janito-3.4.0}/LICENSE +0 -0
- {janito-3.3.0 → janito-3.4.0}/MARKET_ANALYST_README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/README-dev.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/RELEASE_COMPARISON.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/UPDATING_DOCS.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/adding_mcp.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/CHANGELOG.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/DIV.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/Interfaces.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/PROFILES.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/TOOLBAR-STYLING.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/about/costs.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/about/vs-webchats.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/about/why.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/alibaba-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/alternatives.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/cerebras-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/code-generation-observability.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/our-approach.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/code_intelligence/why-string-replacement.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/concepts/analysis-style.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/concepts/human-guided-ai.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/concepts/index.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/concepts/language-model-clients.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/concepts/prompt-design-style.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/deepseek-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/driver-flow.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/driver-request-cancellation.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/drivers/events.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/drivers.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/event-bus.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/configuration.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/developing.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/disabled-tools.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/installation.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/market-data-sources.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/profiles.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/prompting/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/read-chart-examples.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/security-commands.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/single-shot-terminal.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/stock-market-guide.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/terminal-shell.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/tools-developer-guide.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/url-whitelist.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/using.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/guides/using_tools.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/ibm-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/code-generation-observability.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/code_generation_observability.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/happy-programmer.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/happy-programmer.svg +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal-one-shot.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal-shell.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal_one_shot.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/imgs/terminal_shell.png +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/index.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/llm-drivers-required-config.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/llm-drivers.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/meta/developer-toolchain.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/meta/quality-checks.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/mistral-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/moonshot-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/openai-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/overrides/partials/copyright.html +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/ACTUAL_TOOLS_LOCATION.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/MIGRATION_COMPLETE.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/api-reference.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/architecture.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/filemanager.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/imagedisplay.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/pythondev.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/system.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/userinterface.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/visualization.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/built-in-plugins/webtools.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/configuration.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/examples/advanced.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/examples/basic.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/examples/intermediate.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/plugin-development.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/plugin-resources.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/publishing.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/remote-plugins.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/plugins/testing.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/provider-platform-access.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/public-sources.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/reference/api.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/reference/azure-openai.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/reference/cli-options.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/reference/message-handler-model.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/reference/rich-message-handler.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/security.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/supported-providers-models.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/tools/search-text.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/tools/show-image-grid.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/tools/show-image.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/tools-index.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/tools-natural-results.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/tools-precision.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/docs/z-ai-setup.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/examples/loop_protection_example.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/examples/loop_protection_tool_example.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/get_nasdaq_top.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/ibm-logo.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/__main__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/_version.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/agent/setup_agent.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
- {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
- {janito-3.3.0 → janito-3.4.0}/janito/cli/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/bindings.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/chat_entry.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/prompt_style.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/script_runner.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/session.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/chat_mode/toolbar.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_config.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_drivers.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_models.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_profiles.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_providers.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/list_tools.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/model_selection.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/model_utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/ping_providers.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/set_api_key.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/show_config.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/cli_commands/show_system_prompt.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/config.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/console.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/event_logger.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/model_guesser.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/runner.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/setters.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/core/unsetters.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/main.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/prompt_core.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/prompt_handler.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/prompt_setup.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/rich_terminal_reporter.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/single_shot_mode/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/single_shot_mode/handler.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/cli/verbose_output.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/config.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/config_manager.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/conversation_history.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/dir_walk_utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/docs/GETTING_STARTED.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/driver_events.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/azure_openai/driver.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/cerebras/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/dashscope.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/openai/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/openai_responses.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/drivers/zai/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/event_bus/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/event_bus/bus.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/event_bus/event.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/event_bus/handler.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/event_bus/queue_bus.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/exceptions.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/formatting.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/formatting_token.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/gitignore_utils.py +0 -0
- /janito-3.3.0/janito/providers/alibaba/__init__.py → /janito-3.4.0/janito/hello.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/i18n/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/i18n/it.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/i18n/messages.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/i18n/pt.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/agent.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/auth.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/driver.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/driver_config.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/driver_config_builder.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/driver_input.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/message_parts.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/model.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/llm/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/mkdocs.yml +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/perf_singleton.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/performance_collector.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/platform_discovery.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/auto_loader.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/plugins/config.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/discovery_core.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/plugins/manager.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/provider_config.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/provider_registry.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/alibaba/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/alibaba/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/anthropic/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/anthropic/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/azure_openai/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/azure_openai/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/cerebras/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/cerebras/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/cerebras/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/dashscope.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/deepseek/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/deepseek/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/deepseek/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/google/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/google/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/google/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/ibm/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/mistral/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/mistral/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/mistral/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/moonshot/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/moonshot/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/moonshot/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/openai/schema_generator.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/registry.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/model_info.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/provider.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/providers/zai/schema_generator.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/regions/__init__.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/regions/cli.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/regions/geo_utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/regions/provider_regions.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/report_events.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/shell.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/README.md +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/adapters/local/adapter.py +0 -0
- {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
- {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
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/find_files.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/__init__.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/get_file_outline/core.py +0 -0
- {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
- {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
- {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
- {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
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/move_file.py +0 -0
- {janito-3.3.0/janito/plugins/web/webtools/tools → janito-3.4.0/janito/tools/adapters/local}/open_html_in_browser.py +0 -0
- {janito-3.3.0/janito/plugins/web/webtools/tools → janito-3.4.0/janito/tools/adapters/local}/open_url.py +0 -0
- {janito-3.3.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_code_run.py +0 -0
- {janito-3.3.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_command_run.py +0 -0
- {janito-3.3.0/janito/plugins/dev/pythondev/tools → janito-3.4.0/janito/tools/adapters/local}/python_file_run.py +0 -0
- {janito-3.3.0/janito/plugins/dev/visualization/tools → janito-3.4.0/janito/tools/adapters/local}/read_chart.py +0 -0
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/read_files.py +0 -0
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/remove_directory.py +0 -0
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/remove_file.py +0 -0
- {janito-3.3.0/janito/plugins/core/system/tools → janito-3.4.0/janito/tools/adapters/local}/run_bash_command.py +0 -0
- {janito-3.3.0/janito/plugins/core/system/tools → janito-3.4.0/janito/tools/adapters/local}/run_powershell_command.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/__init__.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/core.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/match_lines.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/pattern_utils.py +0 -0
- {janito-3.3.0/janito/plugins/core/codeanalyzer/tools → janito-3.4.0/janito/tools/adapters/local}/search_text/traverse_directory.py +0 -0
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/__init__.py +0 -0
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/validate_file_syntax/core.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {janito-3.3.0/janito/plugins/core/filemanager/tools → janito-3.4.0/janito/tools/adapters/local}/view_file.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/disabled_tools.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/inspect_registry.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/loop_protection.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/loop_protection_decorator.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/outline_file.bak.zip +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/path_security.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/path_utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/permissions.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/permissions_parse.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_events.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_run_exception.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_use_tracker.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tool_utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/tools_adapter.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/tools/url_whitelist.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito/utils.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito.egg-info/dependency_links.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito.egg-info/entry_points.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/janito.egg-info/top_level.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/market_prompt_fix.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/market_test.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/mkdocs.yml +0 -0
- {janito-3.3.0 → janito-3.4.0}/mkdocs_hooks.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/__init__.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/__init__.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/__init__.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/get_file_outline/core.py +0 -0
- {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
- {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
- {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
- {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
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/__init__.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/core.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/match_lines.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/pattern_utils.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/codeanalyzer/tools/search_text/traverse_directory.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/create_file.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/find_files.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/move_file.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/read_files.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/remove_directory.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/remove_file.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/core/filemanager/tools/replace_text_in_file.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/validate_file_syntax/core.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/filemanager/tools/view_file.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/system/tools/run_bash_command.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/core/system/tools/run_powershell_command.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/dev/__init__.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/tools/python_code_run.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/tools/python_command_run.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/pythondev/tools/python_file_run.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/dev/visualization/tools/read_chart.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/ui/__init__.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/ui/userinterface/__init__.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/ui/userinterface/tools/ask_user.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/web/__init__.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/web/webtools/__init__.py +0 -0
- {janito-3.3.0/janito → janito-3.4.0}/plugins/web/webtools/tools/fetch_url.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/web/webtools/tools/open_html_in_browser.py +0 -0
- {janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/plugins}/web/webtools/tools/open_url.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/pyproject.toml +0 -0
- {janito-3.3.0 → janito-3.4.0}/pytest.ini +0 -0
- {janito-3.3.0 → janito-3.4.0}/requirements-dev.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/requirements.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/setup.cfg +0 -0
- {janito-3.3.0 → janito-3.4.0}/test.txt +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_example.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_http_errors.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_http_errors_direct.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_key_field_behavior.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_key_field_protection.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_loop_protection_return.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/test_market_analyst.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/adapters/local/test_read_files.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_models.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_providers.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_providers_alibaba.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_cli_list_providers_moonshot.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_cli_version.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_disabled_tools.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_plugin_system.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_provider_alibaba.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_provider_cerebras.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tests/test_provider_moonshot.py +0 -0
- {janito-3.3.0 → janito-3.4.0}/tools/release.py +0 -0
- {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
|
+
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.
|
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.
|
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
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
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 =
|
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
|
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
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
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
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
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 =
|
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
|
-
|
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,
|
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,
|
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
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
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
|
-
|
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
|
@@ -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.
|
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
|
{janito-3.3.0/janito/plugin_system_backup_20250825_070018 → janito-3.4.0/janito/plugins}/base.py
RENAMED
@@ -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
|
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[
|
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
|
{janito-3.3.0/janito/plugins_backup_20250825_070018 → janito-3.4.0/janito/plugins}/core_adapter.py
RENAMED
@@ -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.
|
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
|
-
|
2
|
+
Core plugin loader that properly handles function-based plugins.
|
3
3
|
|
4
|
-
This module provides a
|
5
|
-
|
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
|
11
|
+
from typing import Optional
|
13
12
|
|
14
|
-
from janito.
|
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
|
-
"""
|
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
|
-
|
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) ->
|
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,
|
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
|
-
|
144
|
-
|
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
|