janito 2.21.0__tar.gz → 2.24.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {janito-2.21.0 → janito-2.24.0}/CHANGELOG.md +70 -0
- janito-2.24.0/CHANGELOG_2.23.0.md +70 -0
- janito-2.24.0/MARKET_ANALYST_README.md +97 -0
- {janito-2.21.0/janito.egg-info → janito-2.24.0}/PKG-INFO +1 -1
- janito-2.24.0/README-PLUGINS.md +68 -0
- janito-2.24.0/RELEASE_COMPARISON.md +118 -0
- janito-2.24.0/RELEASE_NOTES_2.22.0.md +86 -0
- {janito-2.21.0 → janito-2.24.0}/docs/drivers.md +10 -3
- janito-2.24.0/docs/guides/market-data-sources.md +152 -0
- janito-2.24.0/docs/guides/plugins.md +209 -0
- janito-2.24.0/docs/guides/read-chart-examples.md +177 -0
- janito-2.24.0/docs/guides/remote-plugins.md +198 -0
- janito-2.24.0/docs/guides/security-commands.md +220 -0
- janito-2.24.0/docs/guides/stock-market-guide.md +131 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/tools-developer-guide.md +13 -7
- janito-2.24.0/docs/guides/url-whitelist.md +252 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/using_tools.md +1 -0
- janito-2.24.0/docs/ibm-setup.md +153 -0
- {janito-2.21.0 → janito-2.24.0}/docs/index.md +14 -0
- janito-2.24.0/docs/provider-platform-access.md +78 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/README-pt.md +2 -2
- janito-2.24.0/docs/public-sources.md +56 -0
- {janito-2.21.0 → janito-2.24.0}/docs/reference/cli-options.md +1 -1
- {janito-2.21.0 → janito-2.24.0}/docs/security.md +1 -1
- {janito-2.21.0 → janito-2.24.0}/docs/supported-providers-models.md +21 -0
- {janito-2.21.0 → janito-2.24.0}/docs/tools-index.md +23 -0
- janito-2.24.0/examples/loop_protection_example.py +101 -0
- janito-2.24.0/examples/loop_protection_tool_example.py +145 -0
- janito-2.24.0/get_nasdaq_top.py +113 -0
- {janito-2.21.0 → janito-2.24.0}/janito/agent/setup_agent.py +48 -4
- janito-2.21.0/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 → janito-2.24.0/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +63 -7
- janito-2.21.0/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 → janito-2.24.0/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +51 -13
- janito-2.24.0/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +110 -0
- janito-2.24.0/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +53 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/session.py +8 -1
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/session_profile_select.py +20 -3
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/__init__.py +2 -0
- janito-2.24.0/janito/cli/chat_mode/shell/commands/security/__init__.py +1 -0
- janito-2.24.0/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +94 -0
- janito-2.24.0/janito/cli/chat_mode/shell/commands/security_command.py +51 -0
- janito-2.24.0/janito/cli/cli_commands/list_plugins.py +45 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_profiles.py +29 -1
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/show_system_prompt.py +24 -10
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/getters.py +4 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/runner.py +7 -2
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/setters.py +10 -1
- {janito-2.21.0 → janito-2.24.0}/janito/cli/main_cli.py +25 -3
- {janito-2.21.0 → janito-2.24.0}/janito/cli/single_shot_mode/handler.py +3 -1
- {janito-2.21.0 → janito-2.24.0}/janito/config_manager.py +10 -0
- janito-2.24.0/janito/plugins/__init__.py +17 -0
- janito-2.24.0/janito/plugins/base.py +93 -0
- janito-2.24.0/janito/plugins/discovery.py +160 -0
- janito-2.24.0/janito/plugins/manager.py +185 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/model_info.py +9 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/__init__.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/adapter.py +55 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/ask_user.py +2 -0
- janito-2.24.0/janito/tools/adapters/local/fetch_url.py +333 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/find_files.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/core.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/open_html_in_browser.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/open_url.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/python_code_run.py +15 -10
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/python_command_run.py +14 -9
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/python_file_run.py +15 -10
- janito-2.24.0/janito/tools/adapters/local/read_chart.py +252 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/read_files.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/replace_text_in_file.py +1 -1
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/run_bash_command.py +18 -12
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/run_powershell_command.py +15 -9
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/core.py +2 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/core.py +6 -0
- janito-2.24.0/janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py +47 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/view_file.py +2 -0
- janito-2.24.0/janito/tools/loop_protection.py +115 -0
- janito-2.24.0/janito/tools/loop_protection_decorator.py +110 -0
- janito-2.24.0/janito/tools/url_whitelist.py +121 -0
- {janito-2.21.0 → janito-2.24.0/janito.egg-info}/PKG-INFO +1 -1
- {janito-2.21.0 → janito-2.24.0}/janito.egg-info/SOURCES.txt +38 -0
- janito-2.24.0/janito.json +11 -0
- janito-2.24.0/market_prompt_fix.py +140 -0
- janito-2.24.0/market_test.py +99 -0
- {janito-2.21.0 → janito-2.24.0}/mkdocs.yml +1 -0
- janito-2.24.0/plugins/example_plugin.py +89 -0
- janito-2.24.0/test_loop_protection_return.py +59 -0
- janito-2.24.0/test_market_analyst.py +123 -0
- janito-2.24.0/tests/test_plugin_system.py +152 -0
- janito-2.21.0/docs/provider-platform-access.md +0 -26
- janito-2.21.0/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -1
- janito-2.21.0/janito/tools/adapters/local/fetch_url.py +0 -160
- {janito-2.21.0 → janito-2.24.0}/.codespellrc +0 -0
- {janito-2.21.0 → janito-2.24.0}/.gitattributes +0 -0
- {janito-2.21.0 → janito-2.24.0}/.github/workflows/python-app.yml.disabled +0 -0
- {janito-2.21.0 → janito-2.24.0}/.gitignore +0 -0
- {janito-2.21.0 → janito-2.24.0}/.pre-commit-config.yaml +0 -0
- {janito-2.21.0 → janito-2.24.0}/.secrets.baseline +0 -0
- {janito-2.21.0 → janito-2.24.0}/.vscode/settings.json +0 -0
- {janito-2.21.0 → janito-2.24.0}/CHANGELOG_2.16.0.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/LICENSE +0 -0
- {janito-2.21.0 → janito-2.24.0}/README-dev.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/UPDATING_DOCS.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/adding_mcp.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/DIV.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/Interfaces.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/TOOLBAR-STYLING.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/about/costs.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/about/vs-webchats.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/about/why.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/alibaba-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/alternatives.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/cerebras-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/code-generation-observability.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/our-approach.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/why-string-replacement.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/concepts/analysis-style.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/concepts/human-guided-ai.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/concepts/index.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/concepts/language-model-clients.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/concepts/prompt-design-style.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/deepseek-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/driver-flow.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/driver-request-cancellation.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/drivers/events.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/event-bus.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/configuration.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/developing.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/disabled-tools.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/installation.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/profiles.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/prompting/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/single-shot-terminal.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/terminal-shell.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/guides/using.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/code-generation-observability.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/code_generation_observability.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/happy-programmer.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/happy-programmer.svg +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal-one-shot.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal-shell.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal_one_shot.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal_shell.png +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/llm-drivers-required-config.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/llm-drivers.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/meta/developer-toolchain.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/meta/quality-checks.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/mistral-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/moonshotai-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/openai-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/overrides/partials/copyright.html +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/configuracao.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/exemplos.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/faq-pt.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/ferramentas.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/guia-uso.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/instalacao.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/pt/perfis.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/reference/api.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/reference/azure-openai.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/reference/message-handler-model.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/reference/rich-message-handler.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/tools/search-text.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/tools-natural-results.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/tools-precision.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/docs/z-ai-setup.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/__main__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/_version.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/bindings.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/chat_entry.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/prompt_style.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/script_runner.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/toolbar.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_config.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_drivers.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_models.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_providers.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_tools.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/model_selection.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/model_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/ping_providers.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/set_api_key.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/show_config.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/config.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/console.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/event_logger.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/model_guesser.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/core/unsetters.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/main.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/prompt_core.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/prompt_handler.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/prompt_setup.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/rich_terminal_reporter.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/single_shot_mode/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/cli/verbose_output.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/config.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/conversation_history.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/dir_walk_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/docs/GETTING_STARTED.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/driver_events.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/azure_openai/driver.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/cerebras/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/dashscope.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/openai/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/openai/driver.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/openai_responses.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/zai/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/drivers/zai/driver.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/event_bus/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/event_bus/bus.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/event_bus/event.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/event_bus/handler.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/event_bus/queue_bus.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/exceptions.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/formatting.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/formatting_token.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/gitignore_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/i18n/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/i18n/it.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/i18n/messages.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/i18n/pt.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/agent.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/auth.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/auth_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/driver.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/driver_config.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/driver_config_builder.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/driver_input.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/message_parts.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/model.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/llm/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/mkdocs.yml +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/perf_singleton.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/performance_collector.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/platform_discovery.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/provider_config.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/provider_registry.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/alibaba/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/alibaba/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/alibaba/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/anthropic/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/anthropic/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/azure_openai/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/azure_openai/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/cerebras/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/cerebras/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/cerebras/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/dashscope.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/deepseek/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/deepseek/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/deepseek/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/google/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/google/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/google/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/mistral/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/mistral/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/mistral/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/moonshotai/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/moonshotai/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/moonshotai/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/schema_generator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/registry.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/model_info.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/provider.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/schema_generator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/regions/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/regions/cli.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/regions/geo_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/regions/provider_regions.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/report_events.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/shell.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/README.md +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/copy_file.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/create_directory.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/create_file.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/move_file.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/remove_directory.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/remove_file.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/disabled_tools.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/inspect_registry.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/outline_file.bak.zip +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/path_security.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/permissions.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/permissions_parse.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_base.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_events.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_run_exception.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_use_tracker.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tools_adapter.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/tools/tools_schema.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito/utils.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito.egg-info/dependency_links.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito.egg-info/entry_points.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito.egg-info/requires.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/janito.egg-info/top_level.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/mkdocs_hooks.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/pyproject.toml +0 -0
- {janito-2.21.0 → janito-2.24.0}/pytest.ini +0 -0
- {janito-2.21.0 → janito-2.24.0}/requirements-dev.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/requirements.txt +0 -0
- {janito-2.21.0 → janito-2.24.0}/setup.cfg +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/adapters/local/test_read_files.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_models.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_providers.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_providers_alibaba.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_providers_moonshotai.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_cli_version.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_disabled_tools.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_provider_alibaba.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_provider_cerebras.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tests/test_provider_moonshotai.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tools/release.py +0 -0
- {janito-2.21.0 → janito-2.24.0}/tox.ini +0 -0
@@ -344,3 +344,73 @@ All notable changes to this project will be documented in this file.
|
|
344
344
|
---
|
345
345
|
|
346
346
|
*Older changes may not be listed.*
|
347
|
+
# Changelog v2.23.0
|
348
|
+
|
349
|
+
## [2.23.0] - 2025-08-14
|
350
|
+
|
351
|
+
### Added
|
352
|
+
|
353
|
+
- **Remote Plugin Repository Support**: Added comprehensive support for loading plugins from the official `ikignosis/janito-plugins` repository
|
354
|
+
- **Automatic Discovery**: Plugins can be automatically discovered and loaded from remote GitHub repository
|
355
|
+
- **Configuration Management**: New configuration options for remote plugin management
|
356
|
+
- **Security Features**: Built-in verification and sandboxing for remote plugins
|
357
|
+
- **Update Mechanism**: Automatic and manual update capabilities for remote plugins
|
358
|
+
|
359
|
+
- **Plugin System Enhancements**:
|
360
|
+
- **Plugin Categories**: Official and community plugin categorization
|
361
|
+
- **Configuration Schemas**: JSON schema validation for plugin configuration
|
362
|
+
- **Hot Loading**: Dynamic plugin loading/unloading without restart
|
363
|
+
- **CLI Integration**: New commands for plugin management (`--list-remote-plugins`, `--update-remote-plugins`)
|
364
|
+
|
365
|
+
- **Documentation**: Comprehensive guides for remote plugin usage
|
366
|
+
- [Remote Plugins Guide](docs/guides/remote-plugins.md) - Complete documentation for remote plugin usage
|
367
|
+
- Updated [Plugin System Guide](docs/guides/plugins.md) with remote plugin integration
|
368
|
+
- Enhanced [README-PLUGINS.md](README-PLUGINS.md) with remote repository references
|
369
|
+
|
370
|
+
### Changed
|
371
|
+
|
372
|
+
- **Plugin Discovery**: Enhanced plugin discovery system to support both local and remote sources
|
373
|
+
- **Configuration Format**: Extended `janito.json` to support remote plugin configuration
|
374
|
+
- **CLI Interface**: Added new plugin management commands and improved existing ones
|
375
|
+
|
376
|
+
### Security
|
377
|
+
|
378
|
+
- **Repository Verification**: Added verification for remote plugin sources
|
379
|
+
- **Access Control**: Implemented proper access controls for remote plugin loading
|
380
|
+
- **Configuration Validation**: Enhanced validation for plugin configuration parameters
|
381
|
+
|
382
|
+
### Developer Experience
|
383
|
+
|
384
|
+
- **Plugin Templates**: Added example plugin structure in `plugins/example_plugin.py`
|
385
|
+
- **Testing Framework**: Comprehensive test suite for plugin system in `tests/test_plugin_system.py`
|
386
|
+
- **Documentation**: Detailed API documentation and usage examples
|
387
|
+
|
388
|
+
### Migration Guide
|
389
|
+
|
390
|
+
For users upgrading from previous versions:
|
391
|
+
|
392
|
+
1. **Configuration Update**: Add remote plugin configuration to `janito.json`:
|
393
|
+
```json
|
394
|
+
{
|
395
|
+
"plugins": {
|
396
|
+
"remote": {
|
397
|
+
"enabled": true,
|
398
|
+
"repository": "https://github.com/ikignosis/janito-plugins.git"
|
399
|
+
}
|
400
|
+
}
|
401
|
+
}
|
402
|
+
```
|
403
|
+
|
404
|
+
2. **Plugin Discovery**: Existing local plugins continue to work unchanged
|
405
|
+
3. **CLI Commands**: New commands are backward compatible with existing usage
|
406
|
+
|
407
|
+
### Contributors
|
408
|
+
|
409
|
+
- Enhanced plugin system architecture
|
410
|
+
- Added remote repository integration
|
411
|
+
- Improved documentation and examples
|
412
|
+
- Strengthened security and validation features
|
413
|
+
|
414
|
+
---
|
415
|
+
|
416
|
+
**Full Changelog**: https://github.com/ikignosis/janito/compare/v2.22.0...v2.23.0
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# Changelog v2.23.0
|
2
|
+
|
3
|
+
## [2.23.0] - 2025-08-14
|
4
|
+
|
5
|
+
### Added
|
6
|
+
|
7
|
+
- **Remote Plugin Repository Support**: Added comprehensive support for loading plugins from the official `ikignosis/janito-plugins` repository
|
8
|
+
- **Automatic Discovery**: Plugins can be automatically discovered and loaded from remote GitHub repository
|
9
|
+
- **Configuration Management**: New configuration options for remote plugin management
|
10
|
+
- **Security Features**: Built-in verification and sandboxing for remote plugins
|
11
|
+
- **Update Mechanism**: Automatic and manual update capabilities for remote plugins
|
12
|
+
|
13
|
+
- **Plugin System Enhancements**:
|
14
|
+
- **Plugin Categories**: Official and community plugin categorization
|
15
|
+
- **Configuration Schemas**: JSON schema validation for plugin configuration
|
16
|
+
- **Hot Loading**: Dynamic plugin loading/unloading without restart
|
17
|
+
- **CLI Integration**: New commands for plugin management (`--list-remote-plugins`, `--update-remote-plugins`)
|
18
|
+
|
19
|
+
- **Documentation**: Comprehensive guides for remote plugin usage
|
20
|
+
- [Remote Plugins Guide](docs/guides/remote-plugins.md) - Complete documentation for remote plugin usage
|
21
|
+
- Updated [Plugin System Guide](docs/guides/plugins.md) with remote plugin integration
|
22
|
+
- Enhanced [README-PLUGINS.md](README-PLUGINS.md) with remote repository references
|
23
|
+
|
24
|
+
### Changed
|
25
|
+
|
26
|
+
- **Plugin Discovery**: Enhanced plugin discovery system to support both local and remote sources
|
27
|
+
- **Configuration Format**: Extended `janito.json` to support remote plugin configuration
|
28
|
+
- **CLI Interface**: Added new plugin management commands and improved existing ones
|
29
|
+
|
30
|
+
### Security
|
31
|
+
|
32
|
+
- **Repository Verification**: Added verification for remote plugin sources
|
33
|
+
- **Access Control**: Implemented proper access controls for remote plugin loading
|
34
|
+
- **Configuration Validation**: Enhanced validation for plugin configuration parameters
|
35
|
+
|
36
|
+
### Developer Experience
|
37
|
+
|
38
|
+
- **Plugin Templates**: Added example plugin structure in `plugins/example_plugin.py`
|
39
|
+
- **Testing Framework**: Comprehensive test suite for plugin system in `tests/test_plugin_system.py`
|
40
|
+
- **Documentation**: Detailed API documentation and usage examples
|
41
|
+
|
42
|
+
### Migration Guide
|
43
|
+
|
44
|
+
For users upgrading from previous versions:
|
45
|
+
|
46
|
+
1. **Configuration Update**: Add remote plugin configuration to `janito.json`:
|
47
|
+
```json
|
48
|
+
{
|
49
|
+
"plugins": {
|
50
|
+
"remote": {
|
51
|
+
"enabled": true,
|
52
|
+
"repository": "https://github.com/ikignosis/janito-plugins.git"
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
```
|
57
|
+
|
58
|
+
2. **Plugin Discovery**: Existing local plugins continue to work unchanged
|
59
|
+
3. **CLI Commands**: New commands are backward compatible with existing usage
|
60
|
+
|
61
|
+
### Contributors
|
62
|
+
|
63
|
+
- Enhanced plugin system architecture
|
64
|
+
- Added remote repository integration
|
65
|
+
- Improved documentation and examples
|
66
|
+
- Strengthened security and validation features
|
67
|
+
|
68
|
+
---
|
69
|
+
|
70
|
+
**Full Changelog**: https://github.com/ikignosis/janito/compare/v2.22.0...v2.23.0
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# Janito Market Analyst Profile
|
2
|
+
|
3
|
+
## Overview
|
4
|
+
The Market Analyst profile in janito provides comprehensive financial market analysis capabilities, including stock recommendations, technical analysis, and trading strategies.
|
5
|
+
|
6
|
+
## Usage
|
7
|
+
|
8
|
+
### Command Line
|
9
|
+
```bash
|
10
|
+
# Use Market Analyst profile
|
11
|
+
janito --market "Analyze AAPL stock"
|
12
|
+
|
13
|
+
# Or explicitly specify profile
|
14
|
+
janito --profile "Market Analyst" "List top tech stocks to buy"
|
15
|
+
```
|
16
|
+
|
17
|
+
### Interactive Mode
|
18
|
+
```bash
|
19
|
+
# Start interactive chat with Market Analyst profile
|
20
|
+
janito --market
|
21
|
+
|
22
|
+
# Then ask questions like:
|
23
|
+
# "What are the best NASDAQ stocks to sell tomorrow?"
|
24
|
+
# "Analyze TSLA technical indicators"
|
25
|
+
# "Provide options strategy for NVDA earnings"
|
26
|
+
```
|
27
|
+
|
28
|
+
## Capabilities
|
29
|
+
|
30
|
+
### Technical Analysis
|
31
|
+
- **Indicators**: RSI, MACD, Bollinger Bands, VWAP, Moving averages
|
32
|
+
- **Patterns**: Head & shoulders, triangles, flags, support/resistance levels
|
33
|
+
- **Volume Analysis**: OBV, volume profile, accumulation/distribution
|
34
|
+
- **Multi-timeframe**: Daily, 4-hour, 15-minute analysis
|
35
|
+
|
36
|
+
### Fundamental Analysis
|
37
|
+
- **Valuation Metrics**: P/E, EV/EBITDA, P/S, P/B ratios
|
38
|
+
- **Growth Analysis**: EPS revisions, revenue growth trends
|
39
|
+
- **Financial Health**: Debt ratios, cash flow analysis, ROIC
|
40
|
+
- **DCF Modeling**: 2-stage and 3-stage models
|
41
|
+
|
42
|
+
### Sentiment & Flow Analysis
|
43
|
+
- **Analyst Sentiment**: EPS revisions, price target changes
|
44
|
+
- **Options Flow**: Put/call ratios, unusual activity, implied volatility
|
45
|
+
- **Institutional Flows**: 13F changes, short interest, ETF flows
|
46
|
+
- **Retail Sentiment**: Social media trends, Google search data
|
47
|
+
|
48
|
+
### Risk Management
|
49
|
+
- **Position Sizing**: Kelly criterion, fixed fractional risk
|
50
|
+
- **Stop Loss**: ATR-based, structure-based stops
|
51
|
+
- **Options Strategies**: Vertical spreads, straddles, strangles
|
52
|
+
- **Portfolio Management**: Correlation analysis, beta adjustment
|
53
|
+
|
54
|
+
## Example Queries
|
55
|
+
|
56
|
+
### Stock Analysis
|
57
|
+
```
|
58
|
+
"Analyze TSLA with technical and fundamental view"
|
59
|
+
"Compare NVDA vs AMD valuation metrics"
|
60
|
+
"What are the key risks for AAPL in Q3?"
|
61
|
+
```
|
62
|
+
|
63
|
+
### Market Timing
|
64
|
+
```
|
65
|
+
"Best NASDAQ stocks to sell tomorrow based on technicals"
|
66
|
+
"Which tech stocks are showing bearish divergence?"
|
67
|
+
"Identify oversold stocks in the S&P 500"
|
68
|
+
```
|
69
|
+
|
70
|
+
### Strategy Development
|
71
|
+
```
|
72
|
+
"Create a pairs trading strategy for FAANG stocks"
|
73
|
+
"Design an options strategy for earnings season"
|
74
|
+
"Build a momentum screening system"
|
75
|
+
```
|
76
|
+
|
77
|
+
## Data Sources
|
78
|
+
The Market Analyst uses publicly available data and standard analytical frameworks. No real-time brokerage feeds or proprietary data is accessed.
|
79
|
+
|
80
|
+
## Important Disclaimer
|
81
|
+
This tool provides analytical insights for educational and research purposes. It does not provide personalized investment advice. Always conduct your own due diligence and consult with qualified financial professionals before making investment decisions.
|
82
|
+
|
83
|
+
## Troubleshooting
|
84
|
+
|
85
|
+
### Profile Not Found
|
86
|
+
If you see "Could not find profile 'Market Analyst'", ensure you're using the correct syntax:
|
87
|
+
```bash
|
88
|
+
janito --profile "Market Analyst" "your query"
|
89
|
+
# or
|
90
|
+
janito --market "your query"
|
91
|
+
```
|
92
|
+
|
93
|
+
### Permission Issues
|
94
|
+
For full functionality, ensure read permissions are enabled:
|
95
|
+
```bash
|
96
|
+
janito --read --market "analyze stock data"
|
97
|
+
```
|
@@ -0,0 +1,68 @@
|
|
1
|
+
# Janito Plugin System
|
2
|
+
|
3
|
+
A flexible plugin system for extending janito's functionality.
|
4
|
+
|
5
|
+
## Quick Start
|
6
|
+
|
7
|
+
1. **Create a plugin:**
|
8
|
+
```python
|
9
|
+
# plugins/hello_plugin.py
|
10
|
+
from janito.plugins.base import Plugin, PluginMetadata
|
11
|
+
from janito.tools.tool_base import ToolBase, ToolPermissions
|
12
|
+
|
13
|
+
class HelloTool(ToolBase):
|
14
|
+
tool_name = "hello"
|
15
|
+
permissions = ToolPermissions(read=True, write=False, execute=True)
|
16
|
+
|
17
|
+
def run(self, name="World"):
|
18
|
+
return f"Hello, {name}!"
|
19
|
+
|
20
|
+
class HelloPlugin(Plugin):
|
21
|
+
def get_metadata(self):
|
22
|
+
return PluginMetadata(
|
23
|
+
name="hello",
|
24
|
+
version="1.0.0",
|
25
|
+
description="A simple greeting plugin",
|
26
|
+
author="You"
|
27
|
+
)
|
28
|
+
|
29
|
+
def get_tools(self):
|
30
|
+
return [HelloTool]
|
31
|
+
```
|
32
|
+
|
33
|
+
2. **Enable the plugin:**
|
34
|
+
```json
|
35
|
+
// janito.json
|
36
|
+
{
|
37
|
+
"plugins": {
|
38
|
+
"load": {
|
39
|
+
"hello": true
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
```
|
44
|
+
|
45
|
+
3. **Use the plugin:**
|
46
|
+
```bash
|
47
|
+
janito --list-plugins
|
48
|
+
janito "Use the hello tool to greet Alice"
|
49
|
+
```
|
50
|
+
|
51
|
+
## Features
|
52
|
+
|
53
|
+
- **Dynamic Tool Registration**: Add new tools without modifying core code
|
54
|
+
- **Configuration Support**: Plugins can accept runtime configuration
|
55
|
+
- **Hot Loading**: Load/unload plugins at runtime
|
56
|
+
- **Multiple Sources**: Load from files, directories, or installed packages
|
57
|
+
- **Validation**: Built-in configuration validation and error handling
|
58
|
+
|
59
|
+
## Documentation
|
60
|
+
|
61
|
+
- [Plugin System Guide](docs/guides/plugins.md) - Complete documentation
|
62
|
+
- [Remote Plugins Guide](docs/guides/remote-plugins.md) - Using plugins from remote repositories
|
63
|
+
- [Example Plugin](plugins/example_plugin.py) - Working example
|
64
|
+
- [API Reference](docs/reference/plugins.md) - Technical details
|
65
|
+
|
66
|
+
## Development
|
67
|
+
|
68
|
+
See `tests/test_plugin_system.py` for comprehensive test examples.
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# Janito Release Comparison: v2.21.0 vs v2.22.0
|
2
|
+
|
3
|
+
## 📊 Side-by-Side Overview
|
4
|
+
|
5
|
+
| Aspect | v2.21.0 | v2.22.0 |
|
6
|
+
|--------|---------|---------|
|
7
|
+
| **Release Date** | August 12, 2025 | August 14, 2025 |
|
8
|
+
| **Primary Focus** | IBM WatsonX Provider Foundation | IBM WatsonX Enhancement + Market Analysis |
|
9
|
+
| **New Providers** | IBM WatsonX (initial) | IBM WatsonX (enhanced) |
|
10
|
+
| **New Profiles** | - | Market Analyst Profile |
|
11
|
+
| **Documentation** | Basic IBM setup | Comprehensive guides + market data |
|
12
|
+
|
13
|
+
## 🚀 Feature Comparison
|
14
|
+
|
15
|
+
### New Features
|
16
|
+
|
17
|
+
#### v2.21.0
|
18
|
+
- **IBM WatsonX Provider**: Initial implementation with basic Granite, Llama, and Mistral models
|
19
|
+
- **Enhanced fetch_url**: Added configurable limits (max_length, max_lines, context_chars)
|
20
|
+
- **Environment Variables**: Added examples for all providers
|
21
|
+
- **Model Lists**: Updated OpenAI, Anthropic, and Google provider models
|
22
|
+
|
23
|
+
#### v2.22.0
|
24
|
+
- **IBM WatsonX Enhancement**: Complete provider with enterprise-grade models
|
25
|
+
- **Market Analyst Profile**: Specialized for financial analysis workflows
|
26
|
+
- **Enhanced fetch_url**: Added error caching for 403/404 responses
|
27
|
+
- **Comprehensive Documentation**: Complete setup guides and market data sources
|
28
|
+
|
29
|
+
### Documentation Improvements
|
30
|
+
|
31
|
+
#### v2.21.0
|
32
|
+
- Basic IBM WatsonX setup guide (`janito/providers/ibm/README.md`)
|
33
|
+
- Updated GETTING_STARTED.md with IBM instructions
|
34
|
+
- Environment variable examples
|
35
|
+
|
36
|
+
#### v2.22.0
|
37
|
+
- **New Guides**:
|
38
|
+
- `docs/ibm-setup.md` - Complete step-by-step IBM configuration
|
39
|
+
- `docs/guides/market-data-sources.md` - Public financial data sources
|
40
|
+
- `docs/guides/stock-market-guide.md` - Stock market analysis workflows
|
41
|
+
- `docs/public-sources.md` - Comprehensive public data sources
|
42
|
+
- **Enhanced Documentation**: Updated all provider comparisons and model listings
|
43
|
+
|
44
|
+
## 🔧 Technical Improvements
|
45
|
+
|
46
|
+
### Code Changes
|
47
|
+
|
48
|
+
#### v2.21.0
|
49
|
+
- **Files Modified**: 9 files, +306/-36 lines
|
50
|
+
- **Focus**: IBM provider foundation and fetch_url enhancements
|
51
|
+
- **Complexity**: Reduced fetch_url complexity by splitting into helper methods
|
52
|
+
|
53
|
+
#### v2.22.0
|
54
|
+
- **Files Modified**: 14 files, +732/-29 lines
|
55
|
+
- **Focus**: IBM enhancement, market analyst profile, and comprehensive documentation
|
56
|
+
- **Bug Fixes**: Profile template path resolution
|
57
|
+
- **Performance**: fetch_url error caching for better reliability
|
58
|
+
|
59
|
+
### Provider Capabilities
|
60
|
+
|
61
|
+
#### v2.21.0 IBM WatsonX
|
62
|
+
- Basic model support (Granite, Llama, Mistral)
|
63
|
+
- Initial configuration setup
|
64
|
+
- Basic authentication handling
|
65
|
+
|
66
|
+
#### v2.22.0 IBM WatsonX
|
67
|
+
- **Enhanced Model Support**: IBM Granite enterprise models + open-source models
|
68
|
+
- **Complete Setup Guide**: Step-by-step configuration with examples
|
69
|
+
- **Enterprise Integration**: Better suited for business and financial analysis
|
70
|
+
|
71
|
+
## 🎯 Usage Evolution
|
72
|
+
|
73
|
+
### v2.21.0 Usage
|
74
|
+
```bash
|
75
|
+
# Basic IBM setup
|
76
|
+
janito config set provider ibm
|
77
|
+
janito config set model ibm/granite-3-8b-instruct
|
78
|
+
```
|
79
|
+
|
80
|
+
### v2.22.0 Usage
|
81
|
+
```bash
|
82
|
+
# Enhanced IBM setup with market analysis
|
83
|
+
janito config set provider ibm
|
84
|
+
janito config set model ibm/granite-3-8b-instruct
|
85
|
+
janito --profile market_analyst "Analyze AAPL stock performance"
|
86
|
+
```
|
87
|
+
|
88
|
+
## 📈 Impact Summary
|
89
|
+
|
90
|
+
### v2.21.0 Impact
|
91
|
+
- **Foundation**: Established IBM WatsonX as a supported provider
|
92
|
+
- **Technical**: Improved URL fetching capabilities
|
93
|
+
- **Documentation**: Basic setup instructions
|
94
|
+
|
95
|
+
### v2.22.0 Impact
|
96
|
+
- **Specialization**: Added domain-specific profile for financial analysis
|
97
|
+
- **Completeness**: Comprehensive IBM WatsonX integration
|
98
|
+
- **Usability**: Rich documentation for market analysis workflows
|
99
|
+
- **Reliability**: Enhanced error handling in URL fetching
|
100
|
+
|
101
|
+
## 🔄 Migration Path
|
102
|
+
|
103
|
+
Both versions are fully backward compatible. Users can upgrade seamlessly:
|
104
|
+
|
105
|
+
```bash
|
106
|
+
# From any previous version
|
107
|
+
pip install --upgrade janito
|
108
|
+
|
109
|
+
# New capabilities immediately available
|
110
|
+
janito --profile market_analyst "help with stock analysis"
|
111
|
+
```
|
112
|
+
|
113
|
+
## 🎉 Summary
|
114
|
+
|
115
|
+
- **v2.21.0**: Laid the foundation with IBM WatsonX support
|
116
|
+
- **v2.22.0**: Built upon that foundation with specialized market analysis capabilities and comprehensive documentation
|
117
|
+
|
118
|
+
The progression from v2.21.0 to v2.22.0 represents a shift from basic provider support to domain-specific specialization, making Janito more valuable for financial analysis and market research use cases.
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# Janito v2.22.0 Release Notes
|
2
|
+
|
3
|
+
## 🚀 New Features
|
4
|
+
|
5
|
+
### IBM WatsonX Provider Support
|
6
|
+
- **New Provider**: Added comprehensive IBM WatsonX provider integration
|
7
|
+
- **Model Support**: Includes IBM Granite models and various open-source models available through WatsonX
|
8
|
+
- **Documentation**: Complete setup guide with authentication and configuration instructions
|
9
|
+
- **Enhanced Capabilities**: Access to enterprise-grade AI models for business and financial analysis
|
10
|
+
|
11
|
+
### Market Analyst Profile
|
12
|
+
- **New Profile**: Added specialized Market Analyst profile for financial analysis workflows
|
13
|
+
- **Financial Analysis**: Optimized for stock market analysis, financial data interpretation, and market research
|
14
|
+
- **Data Sources**: Integrated support for public financial data sources and market APIs
|
15
|
+
- **Templates**: Comprehensive system prompt template for market-focused conversations
|
16
|
+
|
17
|
+
## 🔧 Improvements
|
18
|
+
|
19
|
+
### Enhanced fetch_url Tool
|
20
|
+
- **Error Handling**: Added intelligent error caching for 403 (Forbidden) and 404 (Not Found) responses
|
21
|
+
- **Performance**: Reduced redundant network requests when URLs are known to be inaccessible
|
22
|
+
- **Reliability**: Better handling of rate limiting and temporary access restrictions
|
23
|
+
|
24
|
+
### Documentation Updates
|
25
|
+
- **IBM Setup Guide**: Complete step-by-step documentation for IBM WatsonX configuration
|
26
|
+
- **Market Data Sources**: Comprehensive guide to public financial data sources
|
27
|
+
- **Stock Market Guide**: Detailed instructions for stock market analysis workflows
|
28
|
+
- **Provider Platform Access**: Updated documentation covering all supported providers
|
29
|
+
- **Portuguese Translation**: Updated README-pt.md with latest features
|
30
|
+
|
31
|
+
## 🐛 Bug Fixes
|
32
|
+
|
33
|
+
- **Profile Selection**: Fixed profile template path resolution in session selection
|
34
|
+
- **Template Loading**: Improved handling of profile template paths across different environments
|
35
|
+
|
36
|
+
## 📚 Documentation
|
37
|
+
|
38
|
+
### New Documentation Files
|
39
|
+
- `docs/ibm-setup.md` - Complete IBM WatsonX setup guide
|
40
|
+
- `docs/guides/market-data-sources.md` - Public financial data sources guide
|
41
|
+
- `docs/guides/stock-market-guide.md` - Stock market analysis workflows
|
42
|
+
- `docs/public-sources.md` - Comprehensive public data sources documentation
|
43
|
+
|
44
|
+
### Updated Documentation
|
45
|
+
- `docs/drivers.md` - Updated with IBM WatsonX driver information
|
46
|
+
- `docs/index.md` - Enhanced with new provider and profile information
|
47
|
+
- `docs/provider-platform-access.md` - Updated provider comparison table
|
48
|
+
- `docs/supported-providers-models.md` - Added IBM WatsonX model listings
|
49
|
+
|
50
|
+
## 🎯 Usage Examples
|
51
|
+
|
52
|
+
### IBM WatsonX Configuration
|
53
|
+
```bash
|
54
|
+
# Set up IBM WatsonX provider
|
55
|
+
janito config set provider ibm
|
56
|
+
janito config set model ibm/granite-3-8b-instruct
|
57
|
+
janito config set api_key YOUR_IBM_API_KEY
|
58
|
+
```
|
59
|
+
|
60
|
+
### Market Analyst Profile
|
61
|
+
```bash
|
62
|
+
# Use the new Market Analyst profile
|
63
|
+
janito --profile market_analyst "Analyze AAPL stock performance for Q3 2024"
|
64
|
+
```
|
65
|
+
|
66
|
+
## 🔍 Technical Details
|
67
|
+
|
68
|
+
### Files Added/Modified
|
69
|
+
- `janito/providers/ibm/model_info.py` - IBM WatsonX model definitions
|
70
|
+
- `janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2` - Market analyst profile template
|
71
|
+
- `janito/cli/chat_mode/session_profile_select.py` - Fixed profile selection logic
|
72
|
+
- `janito/tools/adapters/local/fetch_url.py` - Enhanced error handling and caching
|
73
|
+
|
74
|
+
### Dependencies
|
75
|
+
- No new dependencies added
|
76
|
+
- Compatible with existing Janito installations
|
77
|
+
|
78
|
+
## 🎉 Acknowledgments
|
79
|
+
|
80
|
+
Special thanks to the community for feedback and contributions that helped shape this release, particularly around financial analysis use cases and enterprise AI integration.
|
81
|
+
|
82
|
+
---
|
83
|
+
|
84
|
+
**Full Changelog**: https://github.com/ikignosis/janito/compare/v2.21.0...v2.22.0
|
85
|
+
|
86
|
+
**Installation**: `pip install janito==2.22.0` or `pip install --upgrade janito`
|
@@ -7,11 +7,13 @@ This document describes the architecture of the LLM driver system in Janito, foc
|
|
7
7
|
All LLM drivers in Janito inherit from the abstract base class `LLMDriver` (`janito/llm/driver.py`). This class provides a threaded, queue-based interface for interacting with language model APIs in a provider-agnostic way.
|
8
8
|
|
9
9
|
### Key Responsibilities
|
10
|
+
|
10
11
|
- **Threaded Operation:** Each driver runs a background thread that processes requests from an input queue and emits results/events to an output queue.
|
11
12
|
- **Standardized Events:** Drivers emit standardized events (e.g., `RequestStarted`, `ResponseReceived`, `RequestFinished`) for downstream consumers.
|
12
13
|
- **Provider Abstraction:** The base class defines abstract methods for provider-specific logic, ensuring a uniform interface for all drivers.
|
13
14
|
|
14
15
|
### Required Abstract Methods
|
16
|
+
|
15
17
|
To implement a new driver, you must subclass `LLMDriver` and implement the following methods:
|
16
18
|
|
17
19
|
- `def _prepare_api_kwargs(self, config, conversation)`
|
@@ -30,12 +32,14 @@ To implement a new driver, you must subclass `LLMDriver` and implement the follo
|
|
30
32
|
- Extract the relevant message object from the provider's API result for further processing.
|
31
33
|
|
32
34
|
### Threading and Queues
|
35
|
+
|
33
36
|
- Each driver instance has its own `input_queue` and `output_queue`.
|
34
37
|
- Use the `start()` method to launch the driver's background thread.
|
35
38
|
- Submit requests by putting `DriverInput` objects into `input_queue`.
|
36
39
|
- Listen for events/results by reading from `output_queue`.
|
37
40
|
|
38
41
|
## Implementing a New Driver: Checklist
|
42
|
+
|
39
43
|
1. **Subclass `LLMDriver`.**
|
40
44
|
2. **Implement all required abstract methods** listed above.
|
41
45
|
3. **Handle provider-specific configuration** (e.g., API keys, endpoints) in your constructor or via config objects.
|
@@ -45,7 +49,9 @@ To implement a new driver, you must subclass `LLMDriver` and implement the follo
|
|
45
49
|
7. **Convert provider responses** to standardized message parts for downstream processing.
|
46
50
|
|
47
51
|
## Example: OpenAI Driver
|
52
|
+
|
48
53
|
See `janito/drivers/openai/driver.py` for a complete example. Highlights:
|
54
|
+
|
49
55
|
- Implements all required methods for the OpenAI API.
|
50
56
|
- Handles tool/function call schemas if tools are present.
|
51
57
|
- Converts conversation history to OpenAI's message format.
|
@@ -53,7 +59,8 @@ See `janito/drivers/openai/driver.py` for a complete example. Highlights:
|
|
53
59
|
- Handles cancellation and error reporting robustly.
|
54
60
|
|
55
61
|
## References
|
56
|
-
|
57
|
-
-
|
58
|
-
-
|
62
|
+
|
63
|
+
- Base class: `janito/llm/driver.py`
|
64
|
+
- OpenAI driver: `janito/drivers/openai/driver.py`
|
65
|
+
- Driver events: `janito/driver_events.py`
|
59
66
|
|