janito 2.27.0__tar.gz → 2.27.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.27.0 → janito-2.27.1}/PKG-INFO +3 -1
- janito-2.27.1/docs/plugins/ACTUAL_TOOLS_LOCATION.md +49 -0
- janito-2.27.1/docs/plugins/MIGRATION_COMPLETE.md +73 -0
- janito-2.27.1/docs/plugins/api-reference.md +221 -0
- janito-2.27.1/docs/plugins/architecture.md +128 -0
- janito-2.27.1/docs/plugins/built-in-plugins/codeanalyzer.md +65 -0
- janito-2.27.1/docs/plugins/built-in-plugins/filemanager.md +65 -0
- janito-2.27.1/docs/plugins/built-in-plugins/pythondev.md +64 -0
- janito-2.27.1/docs/plugins/built-in-plugins/system.md +62 -0
- janito-2.27.1/docs/plugins/built-in-plugins/userinterface.md +61 -0
- janito-2.27.1/docs/plugins/built-in-plugins/visualization.md +87 -0
- janito-2.27.1/docs/plugins/built-in-plugins/webtools.md +65 -0
- janito-2.27.1/docs/plugins/configuration.md +127 -0
- janito-2.27.1/docs/plugins/examples/advanced.md +326 -0
- janito-2.27.1/docs/plugins/examples/basic.md +82 -0
- janito-2.27.1/docs/plugins/examples/intermediate.md +145 -0
- janito-2.27.1/docs/plugins/plugin-development.md +170 -0
- janito-2.27.1/docs/plugins/plugin-resources.md +76 -0
- janito-2.27.1/docs/plugins/publishing.md +253 -0
- janito-2.27.1/docs/plugins/remote-plugins.md +96 -0
- janito-2.27.1/docs/plugins/testing.md +253 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/session.py +37 -23
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/__init__.py +2 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/help.py +6 -1
- janito-2.27.1/janito/cli/chat_mode/shell/commands/provider.py +25 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/toolbar.py +15 -1
- janito-2.27.1/janito/cli/cli_commands/enable_disable_plugin.py +64 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_plugins.py +20 -4
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/getters.py +6 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/runner.py +15 -1
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/setters.py +18 -6
- {janito-2.27.0 → janito-2.27.1}/janito/cli/main_cli.py +4 -5
- janito-2.27.1/janito/plugins/builtin.py +84 -0
- {janito-2.27.0 → janito-2.27.1}/janito/plugins/discovery.py +83 -1
- {janito-2.27.0 → janito-2.27.1}/janito/plugins/manager.py +2 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/ask_user.py +7 -1
- janito-2.27.1/janito/tools/base.py +11 -0
- {janito-2.27.0 → janito-2.27.1}/janito.egg-info/PKG-INFO +3 -1
- {janito-2.27.0 → janito-2.27.1}/janito.egg-info/SOURCES.txt +81 -8
- {janito-2.27.0 → janito-2.27.1}/janito.egg-info/requires.txt +3 -0
- janito-2.27.1/janito.egg-info/top_level.txt +1 -0
- janito-2.27.1/plugins/__init__.py +33 -0
- janito-2.27.1/plugins/core/__init__.py +7 -0
- janito-2.27.1/plugins/core/codeanalyzer/__init__.py +25 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py +1 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/get_file_outline/core.py +122 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/get_file_outline/java_outline.py +47 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/get_file_outline/markdown_outline.py +14 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/get_file_outline/python_outline.py +303 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/get_file_outline/search_outline.py +36 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/search_text/__init__.py +1 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/search_text/core.py +205 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/search_text/match_lines.py +67 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/search_text/pattern_utils.py +73 -0
- janito-2.27.1/plugins/core/codeanalyzer/tools/search_text/traverse_directory.py +145 -0
- janito-2.27.1/plugins/core/filemanager/__init__.py +63 -0
- janito-2.27.1/plugins/core/filemanager/tools/copy_file.py +87 -0
- janito-2.27.1/plugins/core/filemanager/tools/create_directory.py +70 -0
- janito-2.27.1/plugins/core/filemanager/tools/create_file.py +87 -0
- janito-2.27.1/plugins/core/filemanager/tools/delete_text_in_file.py +134 -0
- janito-2.27.1/plugins/core/filemanager/tools/find_files.py +143 -0
- janito-2.27.1/plugins/core/filemanager/tools/move_file.py +131 -0
- janito-2.27.1/plugins/core/filemanager/tools/read_files.py +58 -0
- janito-2.27.1/plugins/core/filemanager/tools/remove_directory.py +55 -0
- janito-2.27.1/plugins/core/filemanager/tools/remove_file.py +58 -0
- janito-2.27.1/plugins/core/filemanager/tools/replace_text_in_file.py +270 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/__init__.py +1 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/core.py +114 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/css_validator.py +35 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/html_validator.py +100 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/jinja2_validator.py +47 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/js_validator.py +27 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/json_validator.py +6 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/markdown_validator.py +109 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/ps1_validator.py +32 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/python_validator.py +5 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/xml_validator.py +11 -0
- janito-2.27.1/plugins/core/filemanager/tools/validate_file_syntax/yaml_validator.py +6 -0
- janito-2.27.1/plugins/core/filemanager/tools/view_file.py +172 -0
- janito-2.27.1/plugins/core/system/__init__.py +17 -0
- janito-2.27.1/plugins/core/system/tools/run_bash_command.py +183 -0
- janito-2.27.1/plugins/core/system/tools/run_powershell_command.py +218 -0
- janito-2.27.1/plugins/dev/__init__.py +7 -0
- janito-2.27.1/plugins/dev/pythondev/__init__.py +24 -0
- janito-2.27.1/plugins/dev/pythondev/tools/python_code_run.py +172 -0
- janito-2.27.1/plugins/dev/pythondev/tools/python_command_run.py +170 -0
- janito-2.27.1/plugins/dev/pythondev/tools/python_file_run.py +171 -0
- janito-2.27.1/plugins/dev/visualization/__init__.py +17 -0
- janito-2.27.1/plugins/dev/visualization/tools/read_chart.py +259 -0
- janito-2.27.1/plugins/ui/__init__.py +7 -0
- janito-2.27.1/plugins/ui/userinterface/__init__.py +14 -0
- janito-2.27.1/plugins/ui/userinterface/tools/ask_user.py +110 -0
- janito-2.27.1/plugins/web/__init__.py +7 -0
- janito-2.27.1/plugins/web/webtools/__init__.py +25 -0
- janito-2.27.1/plugins/web/webtools/tools/fetch_url.py +411 -0
- janito-2.27.1/plugins/web/webtools/tools/open_html_in_browser.py +51 -0
- janito-2.27.1/plugins/web/webtools/tools/open_url.py +37 -0
- janito-2.27.1/plugins.txt +1 -0
- {janito-2.27.0 → janito-2.27.1}/pyproject.toml +1 -0
- janito-2.27.0/README-PLUGINS.md +0 -68
- janito-2.27.0/docs/guides/plugins.md +0 -209
- janito-2.27.0/docs/guides/remote-plugins.md +0 -198
- janito-2.27.0/janito-coder/janito_coder/__init__.py +0 -9
- janito-2.27.0/janito-coder/janito_coder/plugins/__init__.py +0 -27
- janito-2.27.0/janito-coder/janito_coder/plugins/code_navigator.py +0 -618
- janito-2.27.0/janito-coder/janito_coder/plugins/git_analyzer.py +0 -273
- janito-2.27.0/janito-coder/pyproject.toml +0 -347
- janito-2.27.0/janito.egg-info/top_level.txt +0 -2
- {janito-2.27.0 → janito-2.27.1}/.codespellrc +0 -0
- {janito-2.27.0 → janito-2.27.1}/.gitattributes +0 -0
- {janito-2.27.0 → janito-2.27.1}/.github/workflows/python-app.yml.disabled +0 -0
- {janito-2.27.0 → janito-2.27.1}/.gitignore +0 -0
- {janito-2.27.0 → janito-2.27.1}/.pre-commit-config.yaml +0 -0
- {janito-2.27.0 → janito-2.27.1}/.secrets.baseline +0 -0
- {janito-2.27.0 → janito-2.27.1}/.vscode/settings.json +0 -0
- {janito-2.27.0 → janito-2.27.1}/LICENSE +0 -0
- {janito-2.27.0 → janito-2.27.1}/MARKET_ANALYST_README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/README-dev.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/RELEASE_COMPARISON.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/UPDATING_DOCS.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/adding_mcp.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/DIV.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/Interfaces.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/TOOLBAR-STYLING.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/about/costs.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/about/vs-webchats.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/about/why.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/alibaba-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/alternatives.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/cerebras-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/CHANGELOG.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/CHANGELOG_2.16.0.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/CHANGELOG_2.23.0.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/CHANGELOG_2.26.0.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/CHANGELOG_2.27.0.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/RELEASE_NOTES_2.22.0.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/changelogs/RELEASE_NOTES_2.24.1.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/code_intelligence/code-generation-challenges.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/code_intelligence/code-generation-observability.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/code_intelligence/our-approach.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/code_intelligence/why-string-replacement.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/concepts/analysis-style.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/concepts/human-guided-ai.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/concepts/index.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/concepts/language-model-clients.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/concepts/prompt-design-style.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/deepseek-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/driver-flow.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/driver-request-cancellation.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/drivers/events.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/drivers.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/event-bus.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/configuration.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/developing.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/disabled-tools.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/installation.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/market-data-sources.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/profiles.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/prompting/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/read-chart-examples.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/security-commands.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/single-shot-terminal.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/stock-market-guide.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/terminal-shell.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/tools-developer-guide.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/url-whitelist.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/using.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/guides/using_tools.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/ibm-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/code-generation-observability.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/code_generation_observability.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/happy-programmer.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/happy-programmer.svg +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/terminal-one-shot.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/terminal-shell.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/terminal_one_shot.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/imgs/terminal_shell.png +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/index.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/llm-drivers-required-config.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/llm-drivers.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/meta/developer-toolchain.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/meta/quality-checks.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/mistral-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/moonshotai-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/openai-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/overrides/partials/copyright.html +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/plugins/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/provider-platform-access.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/README-pt.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/configuracao.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/exemplos.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/faq-pt.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/ferramentas.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/guia-uso.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/instalacao.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/pt/perfis.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/public-sources.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/reference/api.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/reference/azure-openai.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/reference/cli-options.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/reference/message-handler-model.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/reference/rich-message-handler.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/security.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/supported-providers-models.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/tools/search-text.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/tools-index.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/tools-natural-results.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/tools-precision.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/docs/z-ai-setup.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/examples/loop_protection_example.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/examples/loop_protection_tool_example.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/get_nasdaq_top.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/ibm-logo.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/__main__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/_version.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/agent/setup_agent.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/bindings.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/chat_entry.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/prompt_style.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/script_runner.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/session_profile_select.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/base.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/model.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/read.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/role.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/security/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/security_command.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/session.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/unrestricted.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands/write.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/input_history.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/session/history.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/session/manager.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_drivers.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_models.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_profiles.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_providers.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_providers_region.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/list_tools.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/model_selection.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/model_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/ping_providers.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/set_api_key.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/show_config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/cli_commands/show_system_prompt.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/console.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/event_logger.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/model_guesser.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/core/unsetters.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/main.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/prompt_core.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/prompt_handler.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/prompt_setup.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/rich_terminal_reporter.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/single_shot_mode/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/single_shot_mode/handler.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/cli/verbose_output.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/config_manager.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/conversation_history.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/dir_walk_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/docs/GETTING_STARTED.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/driver_events.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/azure_openai/driver.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/cerebras/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/dashscope.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/openai/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/openai/driver.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/openai_responses.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/zai/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/drivers/zai/driver.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/event_bus/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/event_bus/bus.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/event_bus/event.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/event_bus/handler.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/event_bus/queue_bus.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/exceptions.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/formatting.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/formatting_token.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/gitignore_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/i18n/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/i18n/it.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/i18n/messages.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/i18n/pt.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/agent.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/auth.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/auth_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/driver.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/driver_config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/driver_config_builder.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/driver_input.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/message_parts.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/model.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/llm/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/mkdocs.yml +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/perf_singleton.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/performance_collector.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/platform_discovery.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/plugins/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/plugins/base.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/plugins/config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/provider_config.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/provider_registry.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/alibaba/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/alibaba/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/alibaba/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/anthropic/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/anthropic/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/azure_openai/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/azure_openai/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/cerebras/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/cerebras/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/cerebras/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/dashscope.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/deepseek/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/deepseek/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/deepseek/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/google/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/google/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/google/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/ibm/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/ibm/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/ibm/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/ibm/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/mistral/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/mistral/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/mistral/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/moonshotai/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/moonshotai/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/moonshotai/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/openai/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/openai/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/openai/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/openai/schema_generator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/registry.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/zai/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/zai/model_info.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/zai/provider.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/providers/zai/schema_generator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/regions/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/regions/cli.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/regions/geo_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/regions/provider_regions.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/report_events.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/shell.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/README.md +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/adapter.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/copy_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/create_directory.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/create_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/fetch_url.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/find_files.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/get_file_outline/core.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/get_file_outline/search_outline.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/move_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/open_html_in_browser.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/open_url.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/python_code_run.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/python_command_run.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/python_file_run.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/read_chart.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/read_files.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/remove_directory.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/remove_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/replace_text_in_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/run_bash_command.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/run_powershell_command.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/search_text/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/search_text/core.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/core.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/adapters/local/view_file.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/disabled_tools.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/inspect_registry.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/loop_protection.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/loop_protection_decorator.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/outline_file.bak.zip +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/path_security.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/path_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/permissions.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/permissions_parse.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tool_base.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tool_events.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tool_run_exception.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tool_use_tracker.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tool_utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tools_adapter.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/tools_schema.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/tools/url_whitelist.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito/utils.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito.egg-info/dependency_links.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/janito.egg-info/entry_points.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/market_prompt_fix.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/market_test.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/mkdocs.yml +0 -0
- {janito-2.27.0 → janito-2.27.1}/mkdocs_hooks.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/plugins/example_plugin.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/pytest.ini +0 -0
- {janito-2.27.0 → janito-2.27.1}/requirements-dev.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/requirements.txt +0 -0
- {janito-2.27.0 → janito-2.27.1}/setup.cfg +0 -0
- {janito-2.27.0 → janito-2.27.1}/test_example.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/test_key_field_behavior.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/test_key_field_protection.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/test_loop_protection_return.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/test_market_analyst.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/adapters/local/test_read_files.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_cli_list_models.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_cli_list_providers.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_cli_list_providers_alibaba.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_cli_list_providers_moonshotai.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_cli_version.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_disabled_tools.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_plugin_system.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_provider_alibaba.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_provider_cerebras.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tests/test_provider_moonshotai.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tools/release.py +0 -0
- {janito-2.27.0 → janito-2.27.1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: janito
|
3
|
-
Version: 2.27.
|
3
|
+
Version: 2.27.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
|
@@ -28,6 +28,8 @@ Requires-Dist: codespell==2.4.1; extra == "dev"
|
|
28
28
|
Requires-Dist: black; extra == "dev"
|
29
29
|
Requires-Dist: questionary>=2.0.1; extra == "dev"
|
30
30
|
Requires-Dist: setuptools_scm>=8.0; extra == "dev"
|
31
|
+
Provides-Extra: coder
|
32
|
+
Requires-Dist: janito-coder; extra == "coder"
|
31
33
|
Dynamic: license-file
|
32
34
|
|
33
35
|
# Janito, control you context
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Actual Tools Location
|
2
|
+
|
3
|
+
## Real Tool Implementations
|
4
|
+
|
5
|
+
The actual tool implementations are located in:
|
6
|
+
```
|
7
|
+
janito/tools/adapters/local/
|
8
|
+
```
|
9
|
+
|
10
|
+
## Tool Mapping
|
11
|
+
|
12
|
+
| Plugin Name | Actual Tool File | Description |
|
13
|
+
|-------------|------------------|-------------|
|
14
|
+
| **core.filemanager** | | |
|
15
|
+
| `create_file` | `janito/tools/adapters/local/create_file.py` | Create new files |
|
16
|
+
| `read_files` | `janito/tools/adapters/local/read_files.py` | Read multiple files |
|
17
|
+
| `view_file` | `janito/tools/adapters/local/view_file.py` | Read file contents |
|
18
|
+
| `replace_text_in_file` | `janito/tools/adapters/local/replace_text_in_file.py` | Find and replace text |
|
19
|
+
| `validate_file_syntax` | `janito/tools/adapters/local/validate_file_syntax/` | Syntax validation |
|
20
|
+
| `create_directory` | `janito/tools/adapters/local/create_directory.py` | Create directories |
|
21
|
+
| `remove_directory` | `janito/tools/adapters/local/remove_directory.py` | Remove directories |
|
22
|
+
| `remove_file` | `janito/tools/adapters/local/remove_file.py` | Delete files |
|
23
|
+
| `copy_file` | `janito/tools/adapters/local/copy_file.py` | Copy files/directories |
|
24
|
+
| `move_file` | `janito/tools/adapters/local/move_file.py` | Move/rename files |
|
25
|
+
| `find_files` | `janito/tools/adapters/local/find_files.py` | Search for files |
|
26
|
+
| **core.codeanalyzer** | | |
|
27
|
+
| `get_file_outline` | `janito/tools/adapters/local/get_file_outline/` | File structure analysis |
|
28
|
+
| `search_outline` | `janito/tools/adapters/local/get_file_outline/search_outline.py` | Search in outlines |
|
29
|
+
| `search_text` | `janito/tools/adapters/local/search_text/` | Text search |
|
30
|
+
| **core.system** | | |
|
31
|
+
| `run_powershell_command` | `janito/tools/adapters/local/run_powershell_command.py` | PowerShell execution |
|
32
|
+
| **web.webtools** | | |
|
33
|
+
| `fetch_url` | `janito/tools/adapters/local/fetch_url.py` | Web scraping |
|
34
|
+
| `open_url` | `janito/tools/adapters/local/open_url.py` | Open URLs |
|
35
|
+
| `open_html_in_browser` | `janito/tools/adapters/local/open_html_in_browser.py` | Open HTML files |
|
36
|
+
| **dev.pythondev** | | |
|
37
|
+
| `python_code_run` | `janito/tools/adapters/local/python_code_run.py` | Python execution |
|
38
|
+
| `python_command_run` | `janito/tools/adapters/local/python_command_run.py` | Python -c execution |
|
39
|
+
| `python_file_run` | `janito/tools/adapters/local/python_file_run.py` | Python script execution |
|
40
|
+
| **dev.visualization** | | |
|
41
|
+
| `read_chart` | `janito/tools/adapters/local/read_chart.py` | Data visualization |
|
42
|
+
| **ui.userinterface** | | |
|
43
|
+
| `ask_user` | `janito/tools/adapters/local/ask_user.py` | User interaction |
|
44
|
+
|
45
|
+
## Architecture Note
|
46
|
+
|
47
|
+
The plugin system in `plugins/` contains **interface definitions and wrappers**, while the actual tool implementations are in `janito/tools/adapters/local/`.
|
48
|
+
|
49
|
+
The real tools are implemented as classes inheriting from `ToolBase` and registered via decorators like `@register_local_tool`.
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# Tool Migration Complete ✅
|
2
|
+
|
3
|
+
## Summary
|
4
|
+
|
5
|
+
All 23 tools have been successfully organized in the plugin structure in `plugins/`. The actual implementations remain in `janito/tools/adapters/local/` as the source of truth.
|
6
|
+
|
7
|
+
## Migration Results
|
8
|
+
|
9
|
+
> [!NOTE]
|
10
|
+
> The actual tool implementations remain in `janito/tools/adapters/local/` as the source of truth. The plugin system provides organized interfaces.
|
11
|
+
|
12
|
+
### 📁 File Manager Plugin (`plugins/core/filemanager/tools/`)
|
13
|
+
|
14
|
+
- ✅ copy_file.py
|
15
|
+
- ✅ create_directory.py
|
16
|
+
- ✅ create_file.py
|
17
|
+
- ✅ find_files.py
|
18
|
+
- ✅ move_file.py
|
19
|
+
- ✅ read_files.py
|
20
|
+
- ✅ remove_directory.py
|
21
|
+
- ✅ remove_file.py
|
22
|
+
- ✅ replace_text_in_file.py
|
23
|
+
- ✅ validate_file_syntax/ (directory)
|
24
|
+
- ✅ view_file.py
|
25
|
+
|
26
|
+
### 🔍 Code Analyzer Plugin (`plugins/core/codeanalyzer/tools/`)
|
27
|
+
|
28
|
+
- ✅ get_file_outline/ (directory)
|
29
|
+
- ✅ search_text/ (directory)
|
30
|
+
|
31
|
+
### ⚡ System Tools Plugin (`plugins/core/system/tools/`)
|
32
|
+
|
33
|
+
- ✅ run_powershell_command.py
|
34
|
+
|
35
|
+
### 🌐 Web Tools Plugin (`plugins/web/webtools/tools/`)
|
36
|
+
- ✅ fetch_url.py
|
37
|
+
- ✅ open_html_in_browser.py
|
38
|
+
- ✅ open_url.py
|
39
|
+
|
40
|
+
### 🐍 Python Dev Plugin (`plugins/dev/pythondev/tools/`)
|
41
|
+
- ✅ python_code_run.py
|
42
|
+
- ✅ python_command_run.py
|
43
|
+
- ✅ python_file_run.py
|
44
|
+
|
45
|
+
### 📊 Visualization Plugin (`plugins/dev/visualization/tools/`)
|
46
|
+
- ✅ read_chart.py
|
47
|
+
|
48
|
+
### 💬 User Interface Plugin (`plugins/ui/userinterface/tools/`)
|
49
|
+
- ✅ ask_user.py
|
50
|
+
|
51
|
+
## Total Files Moved
|
52
|
+
- **23 tools** successfully relocated
|
53
|
+
- **All directories** created and organized
|
54
|
+
- **Original files** remain in `janito/tools/adapters/local/` (copies made)
|
55
|
+
|
56
|
+
## Plugin Structure
|
57
|
+
|
58
|
+
```
|
59
|
+
plugins/
|
60
|
+
├── core/
|
61
|
+
│ ├── filemanager/tools/ # 11 tools
|
62
|
+
│ ├── codeanalyzer/tools/ # 3 tools
|
63
|
+
│ └── system/tools/ # 1 tool
|
64
|
+
├── web/
|
65
|
+
│ └── webtools/tools/ # 3 tools
|
66
|
+
├── dev/
|
67
|
+
│ ├── pythondev/tools/ # 3 tools
|
68
|
+
│ └── visualization/tools/ # 1 tool
|
69
|
+
└── ui/
|
70
|
+
└── userinterface/tools/ # 1 tool
|
71
|
+
```
|
72
|
+
|
73
|
+
The tools are now organized by functional domain and ready for plugin-based usage!
|
@@ -0,0 +1,221 @@
|
|
1
|
+
# Plugin API Reference
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
|
5
|
+
This document provides a comprehensive reference for the Janito plugin API. It details the classes, methods, and interfaces available for plugin development.
|
6
|
+
|
7
|
+
## Core Classes
|
8
|
+
|
9
|
+
### PluginMetadata
|
10
|
+
|
11
|
+
Data class containing plugin metadata.
|
12
|
+
|
13
|
+
```python
|
14
|
+
@dataclass
|
15
|
+
class PluginMetadata:
|
16
|
+
name: str # Unique plugin identifier
|
17
|
+
version: str # Semantic version (e.g., "1.0.0")
|
18
|
+
description: str # Brief description of the plugin
|
19
|
+
author: str # Plugin author name
|
20
|
+
license: str = "MIT" # Software license
|
21
|
+
homepage: Optional[str] = None # URL to plugin documentation
|
22
|
+
dependencies: List[str] = None # List of required packages
|
23
|
+
```
|
24
|
+
|
25
|
+
### PluginResource
|
26
|
+
|
27
|
+
Represents a resource provided by a plugin.
|
28
|
+
|
29
|
+
```python
|
30
|
+
@dataclass
|
31
|
+
class PluginResource:
|
32
|
+
name: str # Resource name
|
33
|
+
type: str # Resource type ("tool", "command", "config")
|
34
|
+
description: str # Resource description
|
35
|
+
schema: Optional[Dict[str, Any]] = None # JSON schema for config resources
|
36
|
+
```
|
37
|
+
|
38
|
+
### Plugin (Abstract Base Class)
|
39
|
+
|
40
|
+
Base class for all plugins.
|
41
|
+
|
42
|
+
```python
|
43
|
+
class Plugin(ABC):
|
44
|
+
def __init__(self):
|
45
|
+
self.metadata: PluginMetadata = self.get_metadata()
|
46
|
+
|
47
|
+
@abstractmethod
|
48
|
+
def get_metadata(self) -> PluginMetadata:
|
49
|
+
"""Return metadata describing this plugin."""
|
50
|
+
|
51
|
+
def get_tools(self) -> List[Type[ToolBase]]:
|
52
|
+
"""Return a list of tool classes provided by this plugin."""
|
53
|
+
|
54
|
+
def get_commands(self) -> Dict[str, Any]:
|
55
|
+
"""Return a dictionary of CLI commands provided by this plugin."""
|
56
|
+
|
57
|
+
def initialize(self) -> None:
|
58
|
+
"""Called when the plugin is loaded. Override for initialization."""
|
59
|
+
|
60
|
+
def cleanup(self) -> None:
|
61
|
+
"""Called when the plugin is unloaded. Override for cleanup."""
|
62
|
+
|
63
|
+
def get_config_schema(self) -> Dict[str, Any]:
|
64
|
+
"""Return JSON schema for plugin configuration."""
|
65
|
+
|
66
|
+
def validate_config(self, config: Dict[str, Any]) -> bool:
|
67
|
+
"""Validate plugin configuration."""
|
68
|
+
|
69
|
+
def get_resources(self) -> List[PluginResource]:
|
70
|
+
"""Return a list of resources provided by this plugin."""
|
71
|
+
```
|
72
|
+
|
73
|
+
## Plugin Lifecycle
|
74
|
+
|
75
|
+
### Initialization
|
76
|
+
|
77
|
+
The `initialize()` method is called when the plugin is loaded:
|
78
|
+
|
79
|
+
```python
|
80
|
+
def initialize(self) -> None:
|
81
|
+
"""Called when the plugin is loaded."""
|
82
|
+
# Perform any setup needed
|
83
|
+
self.setup_database_connection()
|
84
|
+
self.load_configuration()
|
85
|
+
```
|
86
|
+
|
87
|
+
### Cleanup
|
88
|
+
|
89
|
+
The `cleanup()` method is called when the plugin is unloaded:
|
90
|
+
|
91
|
+
```python
|
92
|
+
def cleanup(self) -> None:
|
93
|
+
"""Called when the plugin is unloaded."""
|
94
|
+
# Perform any cleanup needed
|
95
|
+
self.close_database_connection()
|
96
|
+
self.cleanup_temp_files()
|
97
|
+
```
|
98
|
+
|
99
|
+
## Resource Contribution Methods
|
100
|
+
|
101
|
+
### get_tools()
|
102
|
+
|
103
|
+
Returns a list of tool classes that should be registered:
|
104
|
+
|
105
|
+
```python
|
106
|
+
def get_tools(self) -> List[Type[ToolBase]]:
|
107
|
+
return [MyTool1, MyTool2, MyTool3]
|
108
|
+
```
|
109
|
+
|
110
|
+
### get_commands()
|
111
|
+
|
112
|
+
Returns a dictionary mapping command names to handler functions:
|
113
|
+
|
114
|
+
```python
|
115
|
+
def get_commands(self) -> Dict[str, Any]:
|
116
|
+
return {
|
117
|
+
"mycommand": self.handle_mycommand,
|
118
|
+
"another-command": self.handle_another_command
|
119
|
+
}
|
120
|
+
```
|
121
|
+
|
122
|
+
### get_config_schema()
|
123
|
+
|
124
|
+
Returns a JSON schema describing the plugin's configuration options:
|
125
|
+
|
126
|
+
```python
|
127
|
+
def get_config_schema(self) -> Dict[str, Any]:
|
128
|
+
return {
|
129
|
+
"type": "object",
|
130
|
+
"properties": {
|
131
|
+
"timeout": {
|
132
|
+
"type": "number",
|
133
|
+
"minimum": 1,
|
134
|
+
"maximum": 3600,
|
135
|
+
"default": 30
|
136
|
+
},
|
137
|
+
"api_key": {
|
138
|
+
"type": "string",
|
139
|
+
"minLength": 32
|
140
|
+
}
|
141
|
+
},
|
142
|
+
"required": ["api_key"]
|
143
|
+
}
|
144
|
+
```
|
145
|
+
|
146
|
+
## Utility Methods
|
147
|
+
|
148
|
+
### get_config()
|
149
|
+
|
150
|
+
Retrieves the plugin's current configuration:
|
151
|
+
|
152
|
+
```python
|
153
|
+
def get_config(self) -> Dict[str, Any]:
|
154
|
+
"""Get the current plugin configuration."""
|
155
|
+
# Implementation provided by the plugin system
|
156
|
+
pass
|
157
|
+
```
|
158
|
+
|
159
|
+
### report_action()
|
160
|
+
|
161
|
+
Logs an action performed by a tool (available in ToolBase):
|
162
|
+
|
163
|
+
```python
|
164
|
+
def report_action(self, message: str, action_type: str = "action") -> None:
|
165
|
+
"""Report an action performed by the tool."""
|
166
|
+
# Implementation provided by the base class
|
167
|
+
pass
|
168
|
+
```
|
169
|
+
|
170
|
+
## Best Practices
|
171
|
+
|
172
|
+
### Error Handling
|
173
|
+
|
174
|
+
Always include proper error handling in your tools:
|
175
|
+
|
176
|
+
```python
|
177
|
+
class MyTool(ToolBase):
|
178
|
+
def run(self, param: str) -> str:
|
179
|
+
try:
|
180
|
+
# Your logic here
|
181
|
+
result = some_operation(param)
|
182
|
+
return f"Success: {result}"
|
183
|
+
except ValueError as e:
|
184
|
+
return f"Error: Invalid parameter - {str(e)}"
|
185
|
+
except Exception as e:
|
186
|
+
return f"Error: Operation failed - {str(e)}"
|
187
|
+
```
|
188
|
+
|
189
|
+
### Documentation
|
190
|
+
|
191
|
+
Include comprehensive docstrings for all methods:
|
192
|
+
|
193
|
+
```python
|
194
|
+
def run(self, name: str = "World") -> str:
|
195
|
+
"""
|
196
|
+
Generate a greeting message.
|
197
|
+
|
198
|
+
Args:
|
199
|
+
name: Name of the person to greet (default: "World")
|
200
|
+
|
201
|
+
Returns:
|
202
|
+
Formatted greeting message
|
203
|
+
|
204
|
+
Examples:
|
205
|
+
>>> tool = GreetingTool()
|
206
|
+
>>> tool.run("Alice")
|
207
|
+
'Hello, Alice!'
|
208
|
+
"""
|
209
|
+
```
|
210
|
+
|
211
|
+
### Security
|
212
|
+
|
213
|
+
Follow security best practices:
|
214
|
+
|
215
|
+
- Validate all inputs
|
216
|
+
- Use appropriate permissions for tools
|
217
|
+
- Sanitize user input
|
218
|
+
- Implement timeouts for long-running operations
|
219
|
+
- Avoid executing untrusted code
|
220
|
+
|
221
|
+
This API reference provides the complete interface for developing plugins, enabling you to create powerful extensions that integrate seamlessly with the Janito system.
|
@@ -0,0 +1,128 @@
|
|
1
|
+
# Plugin Architecture
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
|
5
|
+
The Janito plugin architecture is designed to provide a flexible and extensible system for adding functionality. The architecture separates the interface definitions from the actual implementations, allowing for organized plugin management while maintaining a clean codebase.
|
6
|
+
|
7
|
+
## Architecture Components
|
8
|
+
|
9
|
+
### Plugin Interface Layer
|
10
|
+
|
11
|
+
Located in the `plugins/` directory, this layer contains the plugin definitions and interfaces. Each plugin is organized by functional domain:
|
12
|
+
|
13
|
+
```
|
14
|
+
plugins/
|
15
|
+
├── core/ # Core system functionality
|
16
|
+
│ ├── filemanager/
|
17
|
+
│ ├── codeanalyzer/
|
18
|
+
│ └── system/
|
19
|
+
├── web/ # Web-related functionality
|
20
|
+
│ └── webtools/
|
21
|
+
├── dev/ # Development tools
|
22
|
+
│ ├── pythondev/
|
23
|
+
│ └── visualization/
|
24
|
+
└── ui/ # User interface
|
25
|
+
└── userinterface/
|
26
|
+
```
|
27
|
+
|
28
|
+
### Implementation Layer
|
29
|
+
|
30
|
+
The actual tool implementations are located in `janito/tools/adapters/local/`. This separation ensures that the core functionality remains stable while the plugin interfaces can be organized and extended.
|
31
|
+
|
32
|
+
```
|
33
|
+
janito/tools/adapters/local/
|
34
|
+
├── create_file.py
|
35
|
+
├── read_files.py
|
36
|
+
├── view_file.py
|
37
|
+
├── replace_text_in_file.py
|
38
|
+
├── validate_file_syntax/
|
39
|
+
├── create_directory.py
|
40
|
+
├── remove_directory.py
|
41
|
+
├── remove_file.py
|
42
|
+
├── copy_file.py
|
43
|
+
├── move_file.py
|
44
|
+
├── find_files.py
|
45
|
+
├── get_file_outline/
|
46
|
+
├── search_text/
|
47
|
+
├── run_powershell_command.py
|
48
|
+
├── fetch_url.py
|
49
|
+
├── open_url.py
|
50
|
+
├── open_html_in_browser.py
|
51
|
+
├── python_code_run.py
|
52
|
+
├── python_command_run.py
|
53
|
+
├── python_file_run.py
|
54
|
+
├── read_chart.py
|
55
|
+
└── ask_user.py
|
56
|
+
```
|
57
|
+
|
58
|
+
## Resource Flow
|
59
|
+
|
60
|
+
1. **Plugin Registration**: Plugins are registered with the system at startup
|
61
|
+
2. **Tool Discovery**: The system discovers available tools from registered plugins
|
62
|
+
3. **Resource Contribution**: Each plugin contributes its tools to the global tool registry
|
63
|
+
4. **Tool Execution**: When a tool is called, the system routes the request to the appropriate implementation
|
64
|
+
|
65
|
+
## Plugin Loading Process
|
66
|
+
|
67
|
+
1. **Discovery**: The system scans for plugins in `./plugins/`, `~/.janito/plugins/`, and remote repositories
|
68
|
+
2. **Validation**: Plugin metadata and interfaces are validated
|
69
|
+
3. **Initialization**: The `initialize()` method is called on each loaded plugin
|
70
|
+
4. **Registration**: Tools and commands are registered with the system
|
71
|
+
5. **Availability**: Plugins are now available for use
|
72
|
+
|
73
|
+
## Resource Contribution Mechanism
|
74
|
+
|
75
|
+
Plugins contribute resources through several methods:
|
76
|
+
|
77
|
+
### Tools
|
78
|
+
|
79
|
+
The primary resource type, tools are registered via the `get_tools()` method:
|
80
|
+
|
81
|
+
```python
|
82
|
+
def get_tools(self) -> List[Type[ToolBase]]:
|
83
|
+
return [HelloWorldTool, CalculatorTool]
|
84
|
+
```
|
85
|
+
|
86
|
+
### Commands
|
87
|
+
|
88
|
+
CLI commands are contributed through `get_commands()`:
|
89
|
+
|
90
|
+
```python
|
91
|
+
def get_commands(self) -> Dict[str, Any]:
|
92
|
+
return {"mycommand": my_command_handler}
|
93
|
+
```
|
94
|
+
|
95
|
+
### Configuration
|
96
|
+
|
97
|
+
Plugins can define their configuration schema:
|
98
|
+
|
99
|
+
```python
|
100
|
+
def get_config_schema(self) -> Dict[str, Any]:
|
101
|
+
return {
|
102
|
+
"type": "object",
|
103
|
+
"properties": {
|
104
|
+
"timeout": {"type": "number", "default": 30}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
```
|
108
|
+
|
109
|
+
## Security Model
|
110
|
+
|
111
|
+
The architecture includes several security features:
|
112
|
+
|
113
|
+
- **Permission System**: Each tool has defined read, write, and execute permissions
|
114
|
+
- **Path Validation**: File operations include path validation to prevent directory traversal
|
115
|
+
- **Sandboxing**: Potentially dangerous operations are sandboxed and monitored
|
116
|
+
- **User Confirmation**: Sensitive operations require explicit user approval
|
117
|
+
- **Timeouts**: Long-running operations are automatically terminated
|
118
|
+
|
119
|
+
## Extension Points
|
120
|
+
|
121
|
+
The architecture supports several extension points:
|
122
|
+
|
123
|
+
- **New Plugins**: Add new functionality by creating plugins in the `plugins/` directory
|
124
|
+
- **Custom Tools**: Implement new tools by extending `ToolBase`
|
125
|
+
- **Remote Plugins**: Load plugins from external repositories
|
126
|
+
- **Configuration**: Customize plugin behavior through configuration files
|
127
|
+
|
128
|
+
This architecture enables a powerful, secure, and extensible system for building AI-assisted development tools.
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# Code Analyzer Plugin
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
|
5
|
+
The Code Analyzer plugin provides tools for understanding and searching code structure. This plugin enables developers to analyze codebases, navigate file structures, and perform advanced text searches across projects.
|
6
|
+
|
7
|
+
## Resources Provided
|
8
|
+
|
9
|
+
### Tools
|
10
|
+
|
11
|
+
| Tool Name | Function | Description |
|
12
|
+
|-----------|----------|-------------|
|
13
|
+
| `get_file_outline` | Extract file structure | Analyzes a file to identify classes, functions, methods, and other structural elements |
|
14
|
+
| `search_outline` | Search within file outlines | Searches for specific structural elements (classes, functions) within file outlines |
|
15
|
+
| `search_text` | Full-text search across files | Performs text searches across multiple files with support for regex and case sensitivity |
|
16
|
+
|
17
|
+
## Usage Examples
|
18
|
+
|
19
|
+
### Getting File Structure
|
20
|
+
```json
|
21
|
+
{
|
22
|
+
"tool": "get_file_outline",
|
23
|
+
"path": "src/main.py"
|
24
|
+
}
|
25
|
+
```
|
26
|
+
|
27
|
+
### Searching for Functions
|
28
|
+
```json
|
29
|
+
{
|
30
|
+
"tool": "search_outline",
|
31
|
+
"path": "src/",
|
32
|
+
"query": "function:calculate"
|
33
|
+
}
|
34
|
+
```
|
35
|
+
|
36
|
+
### Finding Code Patterns
|
37
|
+
```json
|
38
|
+
{
|
39
|
+
"tool": "search_text",
|
40
|
+
"paths": ".",
|
41
|
+
"query": "import requests",
|
42
|
+
"use_regex": false
|
43
|
+
}
|
44
|
+
```
|
45
|
+
|
46
|
+
## Configuration
|
47
|
+
|
48
|
+
This plugin does not require any specific configuration and uses default search parameters.
|
49
|
+
|
50
|
+
## Security Considerations
|
51
|
+
|
52
|
+
- File access is limited to the project directory and subdirectories
|
53
|
+
- Respects .gitignore rules to avoid searching in ignored files/directories
|
54
|
+
- Large file analysis is rate-limited to prevent performance issues
|
55
|
+
|
56
|
+
## Integration
|
57
|
+
|
58
|
+
The Code Analyzer plugin integrates with the code intelligence system to provide:
|
59
|
+
|
60
|
+
- Code navigation capabilities
|
61
|
+
- Structural understanding for AI-assisted coding
|
62
|
+
- Pattern recognition for code refactoring suggestions
|
63
|
+
- Dependency analysis through import searching
|
64
|
+
|
65
|
+
This enables more sophisticated code understanding and manipulation capabilities within the Janito ecosystem.
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# File Manager Plugin
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
|
5
|
+
The File Manager plugin provides essential file and directory operations for managing project files. This plugin enables basic file system operations that are crucial for code editing and project management.
|
6
|
+
|
7
|
+
## Resources Provided
|
8
|
+
|
9
|
+
### Tools
|
10
|
+
|
11
|
+
| Tool Name | Function | Description |
|
12
|
+
|-----------|----------|-------------|
|
13
|
+
| `create_file` | Create new files with content | Creates a new file at the specified path with optional content and overwrite capability |
|
14
|
+
| `read_files` | Read multiple files at once | Reads the contents of multiple files and returns them as a concatenated string |
|
15
|
+
| `view_file` | Read specific portions of files | Reads specific lines or the entire content of a file with optional line range |
|
16
|
+
| `replace_text_in_file` | Find and replace text in files | Searches for exact text in a file and replaces it with new text (single or all occurrences) |
|
17
|
+
| `validate_file_syntax` | Check file syntax | Validates the syntax of various file types (Python, Markdown, JSON, etc.) |
|
18
|
+
| `create_directory` | Create new directories | Creates a new directory at the specified path |
|
19
|
+
| `remove_directory` | Remove directories | Deletes directories, with optional recursive removal of non-empty directories |
|
20
|
+
| `remove_file` | Delete files | Removes a file at the specified path |
|
21
|
+
| `copy_file` | Copy files or directories | Copies one or more files/directories to a target location |
|
22
|
+
| `move_file` | Move or rename files/directories | Moves or renames files and directories |
|
23
|
+
| `find_files` | Search for files by pattern | Finds files matching a pattern in specified directories, respecting .gitignore |
|
24
|
+
|
25
|
+
## Usage Examples
|
26
|
+
|
27
|
+
### Creating a New File
|
28
|
+
```json
|
29
|
+
{
|
30
|
+
"tool": "create_file",
|
31
|
+
"path": "src/hello.py",
|
32
|
+
"content": "print('Hello, World!')"
|
33
|
+
}
|
34
|
+
```
|
35
|
+
|
36
|
+
### Reading Multiple Files
|
37
|
+
```json
|
38
|
+
{
|
39
|
+
"tool": "read_files",
|
40
|
+
"paths": ["src/main.py", "src/utils.py"]
|
41
|
+
}
|
42
|
+
```
|
43
|
+
|
44
|
+
### Finding Python Files
|
45
|
+
```json
|
46
|
+
{
|
47
|
+
"tool": "find_files",
|
48
|
+
"paths": ".",
|
49
|
+
"pattern": "*.py"
|
50
|
+
}
|
51
|
+
```
|
52
|
+
|
53
|
+
## Configuration
|
54
|
+
|
55
|
+
This plugin does not require any specific configuration and uses the system's default file permissions and access controls.
|
56
|
+
|
57
|
+
## Security Considerations
|
58
|
+
|
59
|
+
- File operations are subject to the user's file system permissions
|
60
|
+
- Path validation prevents directory traversal attacks
|
61
|
+
- Sensitive file operations require explicit user confirmation in interactive mode
|
62
|
+
|
63
|
+
## Integration
|
64
|
+
|
65
|
+
The File Manager plugin integrates with the core Janito system to provide file operations that can be used in automation scripts, code generation workflows, and project management tasks.
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# Python Development Plugin
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
|
5
|
+
The Python Development plugin provides tools for Python code execution and development. This plugin enables running Python code in various ways, supporting development, testing, and automation workflows.
|
6
|
+
|
7
|
+
## Resources Provided
|
8
|
+
|
9
|
+
### Tools
|
10
|
+
|
11
|
+
| Tool Name | Function | Description |
|
12
|
+
|-----------|----------|-------------|
|
13
|
+
| `python_code_run` | Execute Python code via stdin | Runs Python code by passing it to the interpreter via standard input |
|
14
|
+
| `python_command_run` | Execute Python with -c flag | Executes Python code using the `python -c` command-line flag |
|
15
|
+
| `python_file_run` | Run Python script files | Executes Python scripts from files with configurable timeout |
|
16
|
+
|
17
|
+
## Usage Examples
|
18
|
+
|
19
|
+
### Running Python Code
|
20
|
+
```json
|
21
|
+
{
|
22
|
+
"tool": "python_code_run",
|
23
|
+
"code": "print('Hello from Python!')\nfor i in range(3):\n print(f'Iteration {i}')"
|
24
|
+
}
|
25
|
+
```
|
26
|
+
|
27
|
+
### Executing a One-liner
|
28
|
+
```json
|
29
|
+
{
|
30
|
+
"tool": "python_command_run",
|
31
|
+
"code": "import sys; print(f'Python {sys.version}')"
|
32
|
+
}
|
33
|
+
```
|
34
|
+
|
35
|
+
### Running a Script File
|
36
|
+
```json
|
37
|
+
{
|
38
|
+
"tool": "python_file_run",
|
39
|
+
"path": "scripts/data_processor.py",
|
40
|
+
"timeout": 120
|
41
|
+
}
|
42
|
+
```
|
43
|
+
|
44
|
+
## Configuration
|
45
|
+
|
46
|
+
This plugin does not require any specific configuration. Python execution uses the system's default Python interpreter and environment.
|
47
|
+
|
48
|
+
## Security Considerations
|
49
|
+
|
50
|
+
- Code execution requires explicit user permission
|
51
|
+
- All Python operations are sandboxed and monitored
|
52
|
+
- Long-running scripts are automatically terminated based on timeout settings
|
53
|
+
- Access to system resources is controlled through Python's security model
|
54
|
+
|
55
|
+
## Integration
|
56
|
+
|
57
|
+
The Python Development plugin integrates with the code execution system to provide:
|
58
|
+
|
59
|
+
- Interactive Python development environment
|
60
|
+
- Automated testing and validation
|
61
|
+
- Script-based automation workflows
|
62
|
+
- Dynamic code generation and execution
|
63
|
+
|
64
|
+
This enables powerful Python-based automation while maintaining security boundaries and user control.
|