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.
Files changed (385) hide show
  1. {janito-2.21.0 → janito-2.24.0}/CHANGELOG.md +70 -0
  2. janito-2.24.0/CHANGELOG_2.23.0.md +70 -0
  3. janito-2.24.0/MARKET_ANALYST_README.md +97 -0
  4. {janito-2.21.0/janito.egg-info → janito-2.24.0}/PKG-INFO +1 -1
  5. janito-2.24.0/README-PLUGINS.md +68 -0
  6. janito-2.24.0/RELEASE_COMPARISON.md +118 -0
  7. janito-2.24.0/RELEASE_NOTES_2.22.0.md +86 -0
  8. {janito-2.21.0 → janito-2.24.0}/docs/drivers.md +10 -3
  9. janito-2.24.0/docs/guides/market-data-sources.md +152 -0
  10. janito-2.24.0/docs/guides/plugins.md +209 -0
  11. janito-2.24.0/docs/guides/read-chart-examples.md +177 -0
  12. janito-2.24.0/docs/guides/remote-plugins.md +198 -0
  13. janito-2.24.0/docs/guides/security-commands.md +220 -0
  14. janito-2.24.0/docs/guides/stock-market-guide.md +131 -0
  15. {janito-2.21.0 → janito-2.24.0}/docs/guides/tools-developer-guide.md +13 -7
  16. janito-2.24.0/docs/guides/url-whitelist.md +252 -0
  17. {janito-2.21.0 → janito-2.24.0}/docs/guides/using_tools.md +1 -0
  18. janito-2.24.0/docs/ibm-setup.md +153 -0
  19. {janito-2.21.0 → janito-2.24.0}/docs/index.md +14 -0
  20. janito-2.24.0/docs/provider-platform-access.md +78 -0
  21. {janito-2.21.0 → janito-2.24.0}/docs/pt/README-pt.md +2 -2
  22. janito-2.24.0/docs/public-sources.md +56 -0
  23. {janito-2.21.0 → janito-2.24.0}/docs/reference/cli-options.md +1 -1
  24. {janito-2.21.0 → janito-2.24.0}/docs/security.md +1 -1
  25. {janito-2.21.0 → janito-2.24.0}/docs/supported-providers-models.md +21 -0
  26. {janito-2.21.0 → janito-2.24.0}/docs/tools-index.md +23 -0
  27. janito-2.24.0/examples/loop_protection_example.py +101 -0
  28. janito-2.24.0/examples/loop_protection_tool_example.py +145 -0
  29. janito-2.24.0/get_nasdaq_top.py +113 -0
  30. {janito-2.21.0 → janito-2.24.0}/janito/agent/setup_agent.py +48 -4
  31. 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
  32. 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
  33. janito-2.24.0/janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2 +110 -0
  34. janito-2.24.0/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +53 -0
  35. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/session.py +8 -1
  36. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/session_profile_select.py +20 -3
  37. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/__init__.py +2 -0
  38. janito-2.24.0/janito/cli/chat_mode/shell/commands/security/__init__.py +1 -0
  39. janito-2.24.0/janito/cli/chat_mode/shell/commands/security/allowed_sites.py +94 -0
  40. janito-2.24.0/janito/cli/chat_mode/shell/commands/security_command.py +51 -0
  41. janito-2.24.0/janito/cli/cli_commands/list_plugins.py +45 -0
  42. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_profiles.py +29 -1
  43. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/show_system_prompt.py +24 -10
  44. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/getters.py +4 -0
  45. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/runner.py +7 -2
  46. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/setters.py +10 -1
  47. {janito-2.21.0 → janito-2.24.0}/janito/cli/main_cli.py +25 -3
  48. {janito-2.21.0 → janito-2.24.0}/janito/cli/single_shot_mode/handler.py +3 -1
  49. {janito-2.21.0 → janito-2.24.0}/janito/config_manager.py +10 -0
  50. janito-2.24.0/janito/plugins/__init__.py +17 -0
  51. janito-2.24.0/janito/plugins/base.py +93 -0
  52. janito-2.24.0/janito/plugins/discovery.py +160 -0
  53. janito-2.24.0/janito/plugins/manager.py +185 -0
  54. {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/model_info.py +9 -0
  55. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/__init__.py +2 -0
  56. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/adapter.py +55 -0
  57. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/ask_user.py +2 -0
  58. janito-2.24.0/janito/tools/adapters/local/fetch_url.py +333 -0
  59. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/find_files.py +2 -0
  60. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/core.py +2 -0
  61. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +2 -0
  62. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/open_html_in_browser.py +2 -0
  63. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/open_url.py +2 -0
  64. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/python_code_run.py +15 -10
  65. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/python_command_run.py +14 -9
  66. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/python_file_run.py +15 -10
  67. janito-2.24.0/janito/tools/adapters/local/read_chart.py +252 -0
  68. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/read_files.py +2 -0
  69. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/replace_text_in_file.py +1 -1
  70. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/run_bash_command.py +18 -12
  71. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/run_powershell_command.py +15 -9
  72. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/core.py +2 -0
  73. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/core.py +6 -0
  74. janito-2.24.0/janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py +47 -0
  75. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/view_file.py +2 -0
  76. janito-2.24.0/janito/tools/loop_protection.py +115 -0
  77. janito-2.24.0/janito/tools/loop_protection_decorator.py +110 -0
  78. janito-2.24.0/janito/tools/url_whitelist.py +121 -0
  79. {janito-2.21.0 → janito-2.24.0/janito.egg-info}/PKG-INFO +1 -1
  80. {janito-2.21.0 → janito-2.24.0}/janito.egg-info/SOURCES.txt +38 -0
  81. janito-2.24.0/janito.json +11 -0
  82. janito-2.24.0/market_prompt_fix.py +140 -0
  83. janito-2.24.0/market_test.py +99 -0
  84. {janito-2.21.0 → janito-2.24.0}/mkdocs.yml +1 -0
  85. janito-2.24.0/plugins/example_plugin.py +89 -0
  86. janito-2.24.0/test_loop_protection_return.py +59 -0
  87. janito-2.24.0/test_market_analyst.py +123 -0
  88. janito-2.24.0/tests/test_plugin_system.py +152 -0
  89. janito-2.21.0/docs/provider-platform-access.md +0 -26
  90. janito-2.21.0/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -1
  91. janito-2.21.0/janito/tools/adapters/local/fetch_url.py +0 -160
  92. {janito-2.21.0 → janito-2.24.0}/.codespellrc +0 -0
  93. {janito-2.21.0 → janito-2.24.0}/.gitattributes +0 -0
  94. {janito-2.21.0 → janito-2.24.0}/.github/workflows/python-app.yml.disabled +0 -0
  95. {janito-2.21.0 → janito-2.24.0}/.gitignore +0 -0
  96. {janito-2.21.0 → janito-2.24.0}/.pre-commit-config.yaml +0 -0
  97. {janito-2.21.0 → janito-2.24.0}/.secrets.baseline +0 -0
  98. {janito-2.21.0 → janito-2.24.0}/.vscode/settings.json +0 -0
  99. {janito-2.21.0 → janito-2.24.0}/CHANGELOG_2.16.0.md +0 -0
  100. {janito-2.21.0 → janito-2.24.0}/LICENSE +0 -0
  101. {janito-2.21.0 → janito-2.24.0}/README-dev.md +0 -0
  102. {janito-2.21.0 → janito-2.24.0}/README.md +0 -0
  103. {janito-2.21.0 → janito-2.24.0}/UPDATING_DOCS.md +0 -0
  104. {janito-2.21.0 → janito-2.24.0}/adding_mcp.txt +0 -0
  105. {janito-2.21.0 → janito-2.24.0}/docs/DIV.md +0 -0
  106. {janito-2.21.0 → janito-2.24.0}/docs/Interfaces.txt +0 -0
  107. {janito-2.21.0 → janito-2.24.0}/docs/TOOLBAR-STYLING.md +0 -0
  108. {janito-2.21.0 → janito-2.24.0}/docs/about/costs.md +0 -0
  109. {janito-2.21.0 → janito-2.24.0}/docs/about/vs-webchats.md +0 -0
  110. {janito-2.21.0 → janito-2.24.0}/docs/about/why.md +0 -0
  111. {janito-2.21.0 → janito-2.24.0}/docs/alibaba-setup.md +0 -0
  112. {janito-2.21.0 → janito-2.24.0}/docs/alternatives.md +0 -0
  113. {janito-2.21.0 → janito-2.24.0}/docs/cerebras-setup.md +0 -0
  114. {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
  115. {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
  116. {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/code-generation-observability.md +0 -0
  117. {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/our-approach.md +0 -0
  118. {janito-2.21.0 → janito-2.24.0}/docs/code_intelligence/why-string-replacement.md +0 -0
  119. {janito-2.21.0 → janito-2.24.0}/docs/concepts/analysis-style.md +0 -0
  120. {janito-2.21.0 → janito-2.24.0}/docs/concepts/human-guided-ai.md +0 -0
  121. {janito-2.21.0 → janito-2.24.0}/docs/concepts/index.md +0 -0
  122. {janito-2.21.0 → janito-2.24.0}/docs/concepts/language-model-clients.md +0 -0
  123. {janito-2.21.0 → janito-2.24.0}/docs/concepts/prompt-design-style.md +0 -0
  124. {janito-2.21.0 → janito-2.24.0}/docs/deepseek-setup.md +0 -0
  125. {janito-2.21.0 → janito-2.24.0}/docs/driver-flow.md +0 -0
  126. {janito-2.21.0 → janito-2.24.0}/docs/driver-request-cancellation.md +0 -0
  127. {janito-2.21.0 → janito-2.24.0}/docs/drivers/events.md +0 -0
  128. {janito-2.21.0 → janito-2.24.0}/docs/event-bus.md +0 -0
  129. {janito-2.21.0 → janito-2.24.0}/docs/guides/configuration.md +0 -0
  130. {janito-2.21.0 → janito-2.24.0}/docs/guides/developing.md +0 -0
  131. {janito-2.21.0 → janito-2.24.0}/docs/guides/disabled-tools.md +0 -0
  132. {janito-2.21.0 → janito-2.24.0}/docs/guides/installation.md +0 -0
  133. {janito-2.21.0 → janito-2.24.0}/docs/guides/profiles.md +0 -0
  134. {janito-2.21.0 → janito-2.24.0}/docs/guides/prompting/README.md +0 -0
  135. {janito-2.21.0 → janito-2.24.0}/docs/guides/single-shot-terminal.md +0 -0
  136. {janito-2.21.0 → janito-2.24.0}/docs/guides/terminal-shell.md +0 -0
  137. {janito-2.21.0 → janito-2.24.0}/docs/guides/using.md +0 -0
  138. {janito-2.21.0 → janito-2.24.0}/docs/imgs/code-generation-observability.png +0 -0
  139. {janito-2.21.0 → janito-2.24.0}/docs/imgs/code_generation_observability.png +0 -0
  140. {janito-2.21.0 → janito-2.24.0}/docs/imgs/happy-programmer.png +0 -0
  141. {janito-2.21.0 → janito-2.24.0}/docs/imgs/happy-programmer.svg +0 -0
  142. {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal-one-shot.png +0 -0
  143. {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal-shell.png +0 -0
  144. {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal_one_shot.png +0 -0
  145. {janito-2.21.0 → janito-2.24.0}/docs/imgs/terminal_shell.png +0 -0
  146. {janito-2.21.0 → janito-2.24.0}/docs/llm-drivers-required-config.md +0 -0
  147. {janito-2.21.0 → janito-2.24.0}/docs/llm-drivers.md +0 -0
  148. {janito-2.21.0 → janito-2.24.0}/docs/meta/developer-toolchain.md +0 -0
  149. {janito-2.21.0 → janito-2.24.0}/docs/meta/quality-checks.txt +0 -0
  150. {janito-2.21.0 → janito-2.24.0}/docs/mistral-setup.md +0 -0
  151. {janito-2.21.0 → janito-2.24.0}/docs/moonshotai-setup.md +0 -0
  152. {janito-2.21.0 → janito-2.24.0}/docs/openai-setup.md +0 -0
  153. {janito-2.21.0 → janito-2.24.0}/docs/overrides/partials/copyright.html +0 -0
  154. {janito-2.21.0 → janito-2.24.0}/docs/pt/README.md +0 -0
  155. {janito-2.21.0 → janito-2.24.0}/docs/pt/configuracao.md +0 -0
  156. {janito-2.21.0 → janito-2.24.0}/docs/pt/exemplos.md +0 -0
  157. {janito-2.21.0 → janito-2.24.0}/docs/pt/faq-pt.md +0 -0
  158. {janito-2.21.0 → janito-2.24.0}/docs/pt/ferramentas.md +0 -0
  159. {janito-2.21.0 → janito-2.24.0}/docs/pt/guia-uso.md +0 -0
  160. {janito-2.21.0 → janito-2.24.0}/docs/pt/instalacao.md +0 -0
  161. {janito-2.21.0 → janito-2.24.0}/docs/pt/perfis.md +0 -0
  162. {janito-2.21.0 → janito-2.24.0}/docs/reference/api.md +0 -0
  163. {janito-2.21.0 → janito-2.24.0}/docs/reference/azure-openai.md +0 -0
  164. {janito-2.21.0 → janito-2.24.0}/docs/reference/message-handler-model.md +0 -0
  165. {janito-2.21.0 → janito-2.24.0}/docs/reference/rich-message-handler.md +0 -0
  166. {janito-2.21.0 → janito-2.24.0}/docs/tools/search-text.md +0 -0
  167. {janito-2.21.0 → janito-2.24.0}/docs/tools-natural-results.md +0 -0
  168. {janito-2.21.0 → janito-2.24.0}/docs/tools-precision.md +0 -0
  169. {janito-2.21.0 → janito-2.24.0}/docs/z-ai-setup.md +0 -0
  170. {janito-2.21.0 → janito-2.24.0}/janito/README.md +0 -0
  171. {janito-2.21.0 → janito-2.24.0}/janito/__init__.py +0 -0
  172. {janito-2.21.0 → janito-2.24.0}/janito/__main__.py +0 -0
  173. {janito-2.21.0 → janito-2.24.0}/janito/_version.py +0 -0
  174. {janito-2.21.0 → janito-2.24.0}/janito/cli/__init__.py +0 -0
  175. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/bindings.py +0 -0
  176. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/chat_entry.py +0 -0
  177. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/prompt_style.py +0 -0
  178. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/script_runner.py +0 -0
  179. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
  180. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +0 -0
  181. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/_priv_status.py +0 -0
  182. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/bang.py +0 -0
  183. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
  184. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
  185. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +0 -0
  186. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/execute.py +0 -0
  187. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/help.py +0 -0
  188. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
  189. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
  190. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/model.py +0 -0
  191. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
  192. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/privileges.py +0 -0
  193. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -0
  194. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/read.py +0 -0
  195. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
  196. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
  197. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
  198. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/tools.py +0 -0
  199. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
  200. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
  201. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands/write.py +0 -0
  202. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
  203. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/input_history.py +0 -0
  204. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
  205. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
  206. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session/manager.py +0 -0
  207. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
  208. {janito-2.21.0 → janito-2.24.0}/janito/cli/chat_mode/toolbar.py +0 -0
  209. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_config.py +0 -0
  210. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_drivers.py +0 -0
  211. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_models.py +0 -0
  212. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_providers.py +0 -0
  213. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_providers_region.py +0 -0
  214. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/list_tools.py +0 -0
  215. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/model_selection.py +0 -0
  216. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/model_utils.py +0 -0
  217. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/ping_providers.py +0 -0
  218. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/set_api_key.py +0 -0
  219. {janito-2.21.0 → janito-2.24.0}/janito/cli/cli_commands/show_config.py +0 -0
  220. {janito-2.21.0 → janito-2.24.0}/janito/cli/config.py +0 -0
  221. {janito-2.21.0 → janito-2.24.0}/janito/cli/console.py +0 -0
  222. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/__init__.py +0 -0
  223. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/event_logger.py +0 -0
  224. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/model_guesser.py +0 -0
  225. {janito-2.21.0 → janito-2.24.0}/janito/cli/core/unsetters.py +0 -0
  226. {janito-2.21.0 → janito-2.24.0}/janito/cli/main.py +0 -0
  227. {janito-2.21.0 → janito-2.24.0}/janito/cli/prompt_core.py +0 -0
  228. {janito-2.21.0 → janito-2.24.0}/janito/cli/prompt_handler.py +0 -0
  229. {janito-2.21.0 → janito-2.24.0}/janito/cli/prompt_setup.py +0 -0
  230. {janito-2.21.0 → janito-2.24.0}/janito/cli/rich_terminal_reporter.py +0 -0
  231. {janito-2.21.0 → janito-2.24.0}/janito/cli/single_shot_mode/__init__.py +0 -0
  232. {janito-2.21.0 → janito-2.24.0}/janito/cli/utils.py +0 -0
  233. {janito-2.21.0 → janito-2.24.0}/janito/cli/verbose_output.py +0 -0
  234. {janito-2.21.0 → janito-2.24.0}/janito/config.py +0 -0
  235. {janito-2.21.0 → janito-2.24.0}/janito/conversation_history.py +0 -0
  236. {janito-2.21.0 → janito-2.24.0}/janito/dir_walk_utils.py +0 -0
  237. {janito-2.21.0 → janito-2.24.0}/janito/docs/GETTING_STARTED.md +0 -0
  238. {janito-2.21.0 → janito-2.24.0}/janito/driver_events.py +0 -0
  239. {janito-2.21.0 → janito-2.24.0}/janito/drivers/azure_openai/driver.py +0 -0
  240. {janito-2.21.0 → janito-2.24.0}/janito/drivers/cerebras/__init__.py +0 -0
  241. {janito-2.21.0 → janito-2.24.0}/janito/drivers/dashscope.bak.zip +0 -0
  242. {janito-2.21.0 → janito-2.24.0}/janito/drivers/openai/README.md +0 -0
  243. {janito-2.21.0 → janito-2.24.0}/janito/drivers/openai/driver.py +0 -0
  244. {janito-2.21.0 → janito-2.24.0}/janito/drivers/openai_responses.bak.zip +0 -0
  245. {janito-2.21.0 → janito-2.24.0}/janito/drivers/zai/__init__.py +0 -0
  246. {janito-2.21.0 → janito-2.24.0}/janito/drivers/zai/driver.py +0 -0
  247. {janito-2.21.0 → janito-2.24.0}/janito/event_bus/__init__.py +0 -0
  248. {janito-2.21.0 → janito-2.24.0}/janito/event_bus/bus.py +0 -0
  249. {janito-2.21.0 → janito-2.24.0}/janito/event_bus/event.py +0 -0
  250. {janito-2.21.0 → janito-2.24.0}/janito/event_bus/handler.py +0 -0
  251. {janito-2.21.0 → janito-2.24.0}/janito/event_bus/queue_bus.py +0 -0
  252. {janito-2.21.0 → janito-2.24.0}/janito/exceptions.py +0 -0
  253. {janito-2.21.0 → janito-2.24.0}/janito/formatting.py +0 -0
  254. {janito-2.21.0 → janito-2.24.0}/janito/formatting_token.py +0 -0
  255. {janito-2.21.0 → janito-2.24.0}/janito/gitignore_utils.py +0 -0
  256. {janito-2.21.0 → janito-2.24.0}/janito/i18n/__init__.py +0 -0
  257. {janito-2.21.0 → janito-2.24.0}/janito/i18n/it.py +0 -0
  258. {janito-2.21.0 → janito-2.24.0}/janito/i18n/messages.py +0 -0
  259. {janito-2.21.0 → janito-2.24.0}/janito/i18n/pt.py +0 -0
  260. {janito-2.21.0 → janito-2.24.0}/janito/llm/README.md +0 -0
  261. {janito-2.21.0 → janito-2.24.0}/janito/llm/__init__.py +0 -0
  262. {janito-2.21.0 → janito-2.24.0}/janito/llm/agent.py +0 -0
  263. {janito-2.21.0 → janito-2.24.0}/janito/llm/auth.py +0 -0
  264. {janito-2.21.0 → janito-2.24.0}/janito/llm/auth_utils.py +0 -0
  265. {janito-2.21.0 → janito-2.24.0}/janito/llm/driver.py +0 -0
  266. {janito-2.21.0 → janito-2.24.0}/janito/llm/driver_config.py +0 -0
  267. {janito-2.21.0 → janito-2.24.0}/janito/llm/driver_config_builder.py +0 -0
  268. {janito-2.21.0 → janito-2.24.0}/janito/llm/driver_input.py +0 -0
  269. {janito-2.21.0 → janito-2.24.0}/janito/llm/message_parts.py +0 -0
  270. {janito-2.21.0 → janito-2.24.0}/janito/llm/model.py +0 -0
  271. {janito-2.21.0 → janito-2.24.0}/janito/llm/provider.py +0 -0
  272. {janito-2.21.0 → janito-2.24.0}/janito/mkdocs.yml +0 -0
  273. {janito-2.21.0 → janito-2.24.0}/janito/perf_singleton.py +0 -0
  274. {janito-2.21.0 → janito-2.24.0}/janito/performance_collector.py +0 -0
  275. {janito-2.21.0 → janito-2.24.0}/janito/platform_discovery.py +0 -0
  276. {janito-2.21.0 → janito-2.24.0}/janito/provider_config.py +0 -0
  277. {janito-2.21.0 → janito-2.24.0}/janito/provider_registry.py +0 -0
  278. {janito-2.21.0 → janito-2.24.0}/janito/providers/__init__.py +0 -0
  279. {janito-2.21.0 → janito-2.24.0}/janito/providers/alibaba/__init__.py +0 -0
  280. {janito-2.21.0 → janito-2.24.0}/janito/providers/alibaba/model_info.py +0 -0
  281. {janito-2.21.0 → janito-2.24.0}/janito/providers/alibaba/provider.py +0 -0
  282. {janito-2.21.0 → janito-2.24.0}/janito/providers/anthropic/model_info.py +0 -0
  283. {janito-2.21.0 → janito-2.24.0}/janito/providers/anthropic/provider.py +0 -0
  284. {janito-2.21.0 → janito-2.24.0}/janito/providers/azure_openai/model_info.py +0 -0
  285. {janito-2.21.0 → janito-2.24.0}/janito/providers/azure_openai/provider.py +0 -0
  286. {janito-2.21.0 → janito-2.24.0}/janito/providers/cerebras/__init__.py +0 -0
  287. {janito-2.21.0 → janito-2.24.0}/janito/providers/cerebras/model_info.py +0 -0
  288. {janito-2.21.0 → janito-2.24.0}/janito/providers/cerebras/provider.py +0 -0
  289. {janito-2.21.0 → janito-2.24.0}/janito/providers/dashscope.bak.zip +0 -0
  290. {janito-2.21.0 → janito-2.24.0}/janito/providers/deepseek/__init__.py +0 -0
  291. {janito-2.21.0 → janito-2.24.0}/janito/providers/deepseek/model_info.py +0 -0
  292. {janito-2.21.0 → janito-2.24.0}/janito/providers/deepseek/provider.py +0 -0
  293. {janito-2.21.0 → janito-2.24.0}/janito/providers/google/__init__.py +0 -0
  294. {janito-2.21.0 → janito-2.24.0}/janito/providers/google/model_info.py +0 -0
  295. {janito-2.21.0 → janito-2.24.0}/janito/providers/google/provider.py +0 -0
  296. {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/README.md +0 -0
  297. {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/__init__.py +0 -0
  298. {janito-2.21.0 → janito-2.24.0}/janito/providers/ibm/provider.py +0 -0
  299. {janito-2.21.0 → janito-2.24.0}/janito/providers/mistral/__init__.py +0 -0
  300. {janito-2.21.0 → janito-2.24.0}/janito/providers/mistral/model_info.py +0 -0
  301. {janito-2.21.0 → janito-2.24.0}/janito/providers/mistral/provider.py +0 -0
  302. {janito-2.21.0 → janito-2.24.0}/janito/providers/moonshotai/__init__.py +0 -0
  303. {janito-2.21.0 → janito-2.24.0}/janito/providers/moonshotai/model_info.py +0 -0
  304. {janito-2.21.0 → janito-2.24.0}/janito/providers/moonshotai/provider.py +0 -0
  305. {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/__init__.py +0 -0
  306. {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/model_info.py +0 -0
  307. {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/provider.py +0 -0
  308. {janito-2.21.0 → janito-2.24.0}/janito/providers/openai/schema_generator.py +0 -0
  309. {janito-2.21.0 → janito-2.24.0}/janito/providers/registry.py +0 -0
  310. {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/__init__.py +0 -0
  311. {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/model_info.py +0 -0
  312. {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/provider.py +0 -0
  313. {janito-2.21.0 → janito-2.24.0}/janito/providers/zai/schema_generator.py +0 -0
  314. {janito-2.21.0 → janito-2.24.0}/janito/regions/__init__.py +0 -0
  315. {janito-2.21.0 → janito-2.24.0}/janito/regions/cli.py +0 -0
  316. {janito-2.21.0 → janito-2.24.0}/janito/regions/geo_utils.py +0 -0
  317. {janito-2.21.0 → janito-2.24.0}/janito/regions/provider_regions.py +0 -0
  318. {janito-2.21.0 → janito-2.24.0}/janito/report_events.py +0 -0
  319. {janito-2.21.0 → janito-2.24.0}/janito/shell.bak.zip +0 -0
  320. {janito-2.21.0 → janito-2.24.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
  321. {janito-2.21.0 → janito-2.24.0}/janito/tools/README.md +0 -0
  322. {janito-2.21.0 → janito-2.24.0}/janito/tools/__init__.py +0 -0
  323. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/__init__.py +0 -0
  324. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/copy_file.py +0 -0
  325. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/create_directory.py +0 -0
  326. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/create_file.py +0 -0
  327. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/delete_text_in_file.py +0 -0
  328. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
  329. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +0 -0
  330. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
  331. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
  332. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/move_file.py +0 -0
  333. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/remove_directory.py +0 -0
  334. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/remove_file.py +0 -0
  335. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
  336. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/match_lines.py +0 -0
  337. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/pattern_utils.py +0 -0
  338. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/search_text/traverse_directory.py +0 -0
  339. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
  340. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
  341. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +0 -0
  342. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
  343. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
  344. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
  345. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
  346. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
  347. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
  348. {janito-2.21.0 → janito-2.24.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
  349. {janito-2.21.0 → janito-2.24.0}/janito/tools/disabled_tools.py +0 -0
  350. {janito-2.21.0 → janito-2.24.0}/janito/tools/inspect_registry.py +0 -0
  351. {janito-2.21.0 → janito-2.24.0}/janito/tools/outline_file.bak.zip +0 -0
  352. {janito-2.21.0 → janito-2.24.0}/janito/tools/path_security.py +0 -0
  353. {janito-2.21.0 → janito-2.24.0}/janito/tools/permissions.py +0 -0
  354. {janito-2.21.0 → janito-2.24.0}/janito/tools/permissions_parse.py +0 -0
  355. {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_base.py +0 -0
  356. {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_events.py +0 -0
  357. {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_run_exception.py +0 -0
  358. {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_use_tracker.py +0 -0
  359. {janito-2.21.0 → janito-2.24.0}/janito/tools/tool_utils.py +0 -0
  360. {janito-2.21.0 → janito-2.24.0}/janito/tools/tools_adapter.py +0 -0
  361. {janito-2.21.0 → janito-2.24.0}/janito/tools/tools_schema.py +0 -0
  362. {janito-2.21.0 → janito-2.24.0}/janito/utils.py +0 -0
  363. {janito-2.21.0 → janito-2.24.0}/janito.egg-info/dependency_links.txt +0 -0
  364. {janito-2.21.0 → janito-2.24.0}/janito.egg-info/entry_points.txt +0 -0
  365. {janito-2.21.0 → janito-2.24.0}/janito.egg-info/requires.txt +0 -0
  366. {janito-2.21.0 → janito-2.24.0}/janito.egg-info/top_level.txt +0 -0
  367. {janito-2.21.0 → janito-2.24.0}/mkdocs_hooks.py +0 -0
  368. {janito-2.21.0 → janito-2.24.0}/pyproject.toml +0 -0
  369. {janito-2.21.0 → janito-2.24.0}/pytest.ini +0 -0
  370. {janito-2.21.0 → janito-2.24.0}/requirements-dev.txt +0 -0
  371. {janito-2.21.0 → janito-2.24.0}/requirements.txt +0 -0
  372. {janito-2.21.0 → janito-2.24.0}/setup.cfg +0 -0
  373. {janito-2.21.0 → janito-2.24.0}/tests/adapters/local/get_file_outline/test_core_outline.py +0 -0
  374. {janito-2.21.0 → janito-2.24.0}/tests/adapters/local/test_read_files.py +0 -0
  375. {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_models.py +0 -0
  376. {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_providers.py +0 -0
  377. {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_providers_alibaba.py +0 -0
  378. {janito-2.21.0 → janito-2.24.0}/tests/test_cli_list_providers_moonshotai.py +0 -0
  379. {janito-2.21.0 → janito-2.24.0}/tests/test_cli_version.py +0 -0
  380. {janito-2.21.0 → janito-2.24.0}/tests/test_disabled_tools.py +0 -0
  381. {janito-2.21.0 → janito-2.24.0}/tests/test_provider_alibaba.py +0 -0
  382. {janito-2.21.0 → janito-2.24.0}/tests/test_provider_cerebras.py +0 -0
  383. {janito-2.21.0 → janito-2.24.0}/tests/test_provider_moonshotai.py +0 -0
  384. {janito-2.21.0 → janito-2.24.0}/tools/release.py +0 -0
  385. {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
+ ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 2.21.0
3
+ Version: 2.24.0
4
4
  Summary: A new Python package called janito.
5
5
  Author-email: João Pinto <janito@ikignosis.org>
6
6
  Project-URL: Homepage, https://github.com/ikignosis/janito
@@ -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
- - Base class: [`janito/llm/driver.py`](git@github.com:ikignosis/janito.git/tree/main/janito/llm/driver.py)
57
- - OpenAI driver: [`janito/drivers/openai/driver.py`](git@github.com:ikignosis/janito.git/tree/main/janito/drivers/openai/driver.py)
58
- - Driver events: [`janito/driver_events.py`](git@github.com:ikignosis/janito.git/tree/main/janito/driver_events.py)
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