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.
- {janito-2.30.0 → janito-2.31.1}/PKG-INFO +2 -1
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/ACTUAL_TOOLS_LOCATION.md +3 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/filemanager.md +49 -0
- janito-2.31.1/docs/plugins/built-in-plugins/imagedisplay.md +19 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/visualization.md +7 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/configuration.md +3 -1
- janito-2.31.1/docs/tools/show-image-grid.md +19 -0
- janito-2.31.1/docs/tools/show-image.md +16 -0
- {janito-2.30.0 → janito-2.31.1}/docs/tools-index.md +33 -0
- janito-2.31.1/img/tux.png +0 -0
- janito-2.31.1/img/tux_display.png +0 -0
- janito-2.31.1/janito/cli/cli_commands/list_plugins.py +228 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/rich_terminal_reporter.py +1 -1
- janito-2.31.1/janito/plugins/auto_loader.py +91 -0
- janito-2.31.1/janito/plugins/auto_loader_fixed.py +90 -0
- janito-2.31.1/janito/plugins/core_adapter.py +53 -0
- janito-2.31.1/janito/plugins/core_loader.py +120 -0
- janito-2.31.1/janito/plugins/core_loader_fixed.py +125 -0
- {janito-2.30.0 → janito-2.31.1}/janito/plugins/discovery.py +8 -0
- janito-2.31.1/janito/plugins/discovery_core.py +49 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/__init__.py +4 -0
- janito-2.31.1/janito/tools/adapters/local/create_file.py +138 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/fetch_url.py +35 -6
- janito-2.31.1/janito/tools/adapters/local/show_image.py +70 -0
- janito-2.31.1/janito/tools/adapters/local/show_image_grid.py +75 -0
- janito-2.31.1/janito/tools/function_adapter.py +65 -0
- {janito-2.30.0 → janito-2.31.1}/janito.egg-info/PKG-INFO +2 -1
- {janito-2.30.0 → janito-2.31.1}/janito.egg-info/SOURCES.txt +21 -0
- {janito-2.30.0 → janito-2.31.1}/janito.egg-info/requires.txt +1 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/__init__.py +2 -1
- janito-2.31.1/plugins/core/imagedisplay/__init__.py +14 -0
- janito-2.31.1/plugins/core/imagedisplay/plugin.py +51 -0
- janito-2.31.1/plugins/core/imagedisplay/tools/__init__.py +1 -0
- janito-2.31.1/plugins/core/imagedisplay/tools/show_image.py +70 -0
- janito-2.31.1/plugins/core/imagedisplay/tools/show_image_grid.py +74 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/tools/fetch_url.py +35 -6
- {janito-2.30.0 → janito-2.31.1}/requirements.txt +1 -0
- janito-2.31.1/test.txt +1 -0
- janito-2.31.1/tux.png +0 -0
- janito-2.30.0/janito/cli/cli_commands/list_plugins.py +0 -117
- janito-2.30.0/plugins/core/filemanager/tools/create_file.py +0 -87
- {janito-2.30.0 → janito-2.31.1}/.codespellrc +0 -0
- {janito-2.30.0 → janito-2.31.1}/.gitattributes +0 -0
- {janito-2.30.0 → janito-2.31.1}/.github/workflows/python-app.yml.disabled +0 -0
- {janito-2.30.0 → janito-2.31.1}/.gitignore +0 -0
- {janito-2.30.0 → janito-2.31.1}/.pre-commit-config.yaml +0 -0
- {janito-2.30.0 → janito-2.31.1}/.secrets.baseline +0 -0
- {janito-2.30.0 → janito-2.31.1}/.vscode/settings.json +0 -0
- {janito-2.30.0 → janito-2.31.1}/LICENSE +0 -0
- {janito-2.30.0 → janito-2.31.1}/MARKET_ANALYST_README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/README-dev.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/RELEASE_COMPARISON.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/UPDATING_DOCS.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/adding_mcp.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/CHANGELOG.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/DIV.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/Interfaces.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/PROFILES.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/TOOLBAR-STYLING.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/about/costs.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/about/vs-webchats.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/about/why.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/alibaba-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/alternatives.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/cerebras-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/code-generation-challenges.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/code-generation-observability.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/our-approach.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/code_intelligence/why-string-replacement.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/concepts/analysis-style.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/concepts/human-guided-ai.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/concepts/index.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/concepts/language-model-clients.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/concepts/prompt-design-style.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/deepseek-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/driver-flow.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/driver-request-cancellation.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/drivers/events.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/drivers.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/event-bus.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/configuration.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/developing.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/disabled-tools.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/installation.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/market-data-sources.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/profiles.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/prompting/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/read-chart-examples.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/security-commands.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/single-shot-terminal.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/stock-market-guide.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/terminal-shell.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/tools-developer-guide.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/url-whitelist.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/using.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/guides/using_tools.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/ibm-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/code-generation-observability.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/code_generation_observability.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/happy-programmer.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/happy-programmer.svg +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal-one-shot.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal-shell.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal_one_shot.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/imgs/terminal_shell.png +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/index.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/llm-drivers-required-config.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/llm-drivers.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/meta/developer-toolchain.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/meta/quality-checks.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/mistral-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/moonshot-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/openai-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/overrides/partials/copyright.html +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/MIGRATION_COMPLETE.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/api-reference.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/architecture.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/codeanalyzer.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/pythondev.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/system.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/userinterface.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/built-in-plugins/webtools.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/examples/advanced.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/examples/basic.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/examples/intermediate.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/plugin-development.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/plugin-resources.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/publishing.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/remote-plugins.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/plugins/testing.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/provider-platform-access.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/public-sources.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/reference/api.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/reference/azure-openai.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/reference/cli-options.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/reference/message-handler-model.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/reference/rich-message-handler.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/security.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/supported-providers-models.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/tools/search-text.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/tools-natural-results.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/tools-precision.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/docs/z-ai-setup.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/examples/loop_protection_example.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/examples/loop_protection_tool_example.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/get_nasdaq_top.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/ibm-logo.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/__main__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/_version.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/agent/setup_agent.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
- {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
- {janito-2.30.0 → janito-2.31.1}/janito/cli/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/bindings.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/chat_entry.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/prompt_style.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/script_runner.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/session.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/base.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/help.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/model.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/read.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/role.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/session.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands/write.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/input_history.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session/history.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session/manager.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/chat_mode/toolbar.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/enable_disable_plugin.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_drivers.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_models.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_profiles.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_providers.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_providers_region.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/list_tools.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/model_selection.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/model_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/ping_providers.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/set_api_key.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/show_config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/cli_commands/show_system_prompt.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/console.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/event_logger.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/getters.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/model_guesser.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/runner.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/setters.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/core/unsetters.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/main.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/main_cli.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/prompt_core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/prompt_handler.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/prompt_setup.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/single_shot_mode/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/single_shot_mode/handler.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/cli/verbose_output.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/config_manager.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/conversation_history.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/dir_walk_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/docs/GETTING_STARTED.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/driver_events.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/azure_openai/driver.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/cerebras/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/dashscope.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/openai/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/openai/driver.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/openai_responses.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/zai/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/drivers/zai/driver.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/event_bus/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/event_bus/bus.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/event_bus/event.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/event_bus/handler.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/event_bus/queue_bus.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/exceptions.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/formatting.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/formatting_token.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/gitignore_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/i18n/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/i18n/it.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/i18n/messages.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/i18n/pt.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/agent.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/auth.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/auth_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/driver.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/driver_config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/driver_config_builder.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/driver_input.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/message_parts.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/model.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/llm/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/mkdocs.yml +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/perf_singleton.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/performance_collector.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/platform_discovery.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/plugins/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/plugins/base.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/plugins/builtin.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/plugins/config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/plugins/manager.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/provider_config.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/provider_registry.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/alibaba/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/alibaba/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/alibaba/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/anthropic/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/anthropic/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/azure_openai/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/azure_openai/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/cerebras/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/cerebras/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/cerebras/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/dashscope.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/deepseek/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/deepseek/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/deepseek/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/google/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/google/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/google/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/ibm/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/mistral/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/mistral/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/mistral/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/moonshot/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/moonshot/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/moonshot/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/openai/schema_generator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/registry.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/model_info.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/provider.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/providers/zai/schema_generator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/regions/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/regions/cli.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/regions/geo_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/regions/provider_regions.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/report_events.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/shell.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/README.md +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/adapter.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/ask_user.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/copy_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/create_directory.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/find_files.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/move_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/open_url.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/python_code_run.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/python_command_run.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/python_file_run.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/read_chart.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/read_files.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/remove_directory.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/remove_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/run_bash_command.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/run_powershell_command.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/adapters/local/view_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/base.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/disabled_tools.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/inspect_registry.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/loop_protection.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/loop_protection_decorator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/outline_file.bak.zip +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/path_security.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/path_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/permissions.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/permissions_parse.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_base.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_events.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_run_exception.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_use_tracker.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tool_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tools_adapter.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/tools_schema.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/tools/url_whitelist.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito/utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito.egg-info/dependency_links.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito.egg-info/entry_points.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/janito.egg-info/top_level.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/market_prompt_fix.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/market_test.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/mkdocs.yml +0 -0
- {janito-2.30.0 → janito-2.31.1}/mkdocs_hooks.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/java_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/markdown_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/python_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/get_file_outline/search_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/match_lines.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/pattern_utils.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/codeanalyzer/tools/search_text/traverse_directory.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/copy_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/create_directory.py +0 -0
- {janito-2.30.0/janito/tools/adapters/local → janito-2.31.1/plugins/core/filemanager/tools}/create_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/delete_text_in_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/find_files.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/move_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/read_files.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/remove_directory.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/remove_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/replace_text_in_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/core.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/css_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/html_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/jinja2_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/js_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/json_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/markdown_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/ps1_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/python_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/xml_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/validate_file_syntax/yaml_validator.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/filemanager/tools/view_file.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/system/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/system/tools/run_bash_command.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/core/system/tools/run_powershell_command.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/tools/python_code_run.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/tools/python_command_run.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/pythondev/tools/python_file_run.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/visualization/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/dev/visualization/tools/read_chart.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/example_plugin.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/ui/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/ui/userinterface/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/ui/userinterface/tools/ask_user.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/web/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/__init__.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/tools/open_html_in_browser.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins/web/webtools/tools/open_url.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/plugins.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/pyproject.toml +0 -0
- {janito-2.30.0 → janito-2.31.1}/pytest.ini +0 -0
- {janito-2.30.0 → janito-2.31.1}/requirements-dev.txt +0 -0
- {janito-2.30.0 → janito-2.31.1}/setup.cfg +0 -0
- {janito-2.30.0 → janito-2.31.1}/test_example.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/test_key_field_behavior.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/test_key_field_protection.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/test_loop_protection_return.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/test_market_analyst.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/adapters/local/test_read_files.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_models.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_providers.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_providers_alibaba.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_cli_list_providers_moonshot.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_cli_version.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_disabled_tools.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_plugin_system.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_provider_alibaba.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_provider_cerebras.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tests/test_provider_moonshot.py +0 -0
- {janito-2.30.0 → janito-2.31.1}/tools/release.py +0 -0
- {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.
|
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(
|
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
|