janito 2.7.0__tar.gz → 2.9.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.7.0 → janito-2.9.0}/.gitattributes +3 -0
- {janito-2.7.0 → janito-2.9.0}/.pre-commit-config.yaml +6 -0
- {janito-2.7.0 → janito-2.9.0}/CHANGELOG.md +39 -0
- janito-2.9.0/CNAME +1 -0
- {janito-2.7.0 → janito-2.9.0}/PKG-INFO +11 -19
- {janito-2.7.0 → janito-2.9.0}/README.md +7 -16
- janito-2.9.0/UPDATING_DOCS.md +46 -0
- {janito-2.7.0 → janito-2.9.0}/docs/Interfaces.txt +1 -1
- janito-2.9.0/docs/concepts/human-guided-ai.md +87 -0
- {janito-2.7.0 → janito-2.9.0}/docs/concepts/index.md +2 -0
- {janito-2.7.0 → janito-2.9.0}/docs/deepseek-setup.md +1 -1
- {janito-2.7.0 → janito-2.9.0}/docs/drivers.md +3 -3
- {janito-2.7.0 → janito-2.9.0}/docs/guides/configuration.md +37 -2
- {janito-2.7.0 → janito-2.9.0}/docs/guides/developing.md +2 -2
- janito-2.9.0/docs/guides/disabled-tools.md +124 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/installation.md +1 -1
- {janito-2.7.0 → janito-2.9.0}/docs/guides/terminal-shell.md +1 -10
- {janito-2.7.0 → janito-2.9.0}/docs/index.md +1 -0
- {janito-2.7.0 → janito-2.9.0}/docs/llm-drivers.md +1 -1
- janito-2.9.0/docs/moonshotai-setup.md +74 -0
- {janito-2.7.0 → janito-2.9.0}/docs/reference/azure-openai.md +1 -1
- {janito-2.7.0 → janito-2.9.0}/docs/reference/cli-options.md +25 -8
- janito-2.9.0/docs/supported-providers-models.md +28 -0
- janito-2.9.0/docs/tools/search-text.md +64 -0
- janito-2.9.0/docs/tools-index.md +77 -0
- {janito-2.7.0 → janito-2.9.0}/janito/__init__.py +0 -1
- {janito-2.7.0 → janito-2.9.0}/janito/__main__.py +0 -1
- {janito-2.7.0 → janito-2.9.0}/janito/_version.py +0 -3
- {janito-2.7.0 → janito-2.9.0}/janito/agent/setup_agent.py +77 -10
- janito-2.7.0/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 → janito-2.9.0/janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2 +0 -1
- janito-2.7.0/janito/agent/templates/profiles/system_prompt_template_plain_software_developer.txt.j2 → janito-2.9.0/janito/agent/templates/profiles/system_prompt_template_developer.txt.j2 +2 -6
- {janito-2.7.0 → janito-2.9.0}/janito/cli/__init__.py +0 -1
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/bindings.py +1 -1
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/chat_entry.py +0 -2
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/prompt_style.py +0 -3
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/script_runner.py +9 -5
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/session.py +100 -37
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/session_profile_select.py +61 -52
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/__init__.py +1 -5
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/_priv_check.py +1 -0
- janito-2.9.0/janito/cli/chat_mode/shell/commands/_priv_status.py +13 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/bang.py +10 -3
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/conversation_restart.py +24 -7
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/execute.py +22 -7
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/help.py +4 -1
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/model.py +13 -5
- janito-2.9.0/janito/cli/chat_mode/shell/commands/privileges.py +21 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/prompt.py +0 -2
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/read.py +22 -5
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/tools.py +15 -4
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/write.py +22 -5
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/input_history.py +3 -1
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/session/manager.py +0 -2
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/toolbar.py +25 -19
- janito-2.9.0/janito/cli/cli_commands/list_config.py +31 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/list_models.py +1 -1
- janito-2.9.0/janito/cli/cli_commands/list_profiles.py +79 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/list_providers.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/list_tools.py +35 -7
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/model_utils.py +5 -3
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/show_config.py +16 -11
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/show_system_prompt.py +23 -9
- {janito-2.7.0 → janito-2.9.0}/janito/cli/config.py +0 -13
- {janito-2.7.0 → janito-2.9.0}/janito/cli/core/getters.py +16 -1
- {janito-2.7.0 → janito-2.9.0}/janito/cli/core/runner.py +25 -8
- {janito-2.7.0 → janito-2.9.0}/janito/cli/core/setters.py +13 -76
- {janito-2.7.0 → janito-2.9.0}/janito/cli/main_cli.py +60 -27
- {janito-2.7.0 → janito-2.9.0}/janito/cli/prompt_core.py +19 -18
- {janito-2.7.0 → janito-2.9.0}/janito/cli/prompt_setup.py +6 -3
- {janito-2.7.0 → janito-2.9.0}/janito/cli/rich_terminal_reporter.py +19 -5
- {janito-2.7.0 → janito-2.9.0}/janito/cli/single_shot_mode/handler.py +14 -5
- {janito-2.7.0 → janito-2.9.0}/janito/cli/verbose_output.py +5 -1
- {janito-2.7.0 → janito-2.9.0}/janito/config.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/config_manager.py +15 -2
- {janito-2.7.0 → janito-2.9.0}/janito/drivers/azure_openai/driver.py +27 -30
- {janito-2.7.0 → janito-2.9.0}/janito/drivers/openai/driver.py +53 -36
- {janito-2.7.0 → janito-2.9.0}/janito/formatting_token.py +12 -4
- {janito-2.7.0 → janito-2.9.0}/janito/llm/agent.py +15 -6
- {janito-2.7.0 → janito-2.9.0}/janito/llm/driver.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/provider.py +1 -1
- {janito-2.7.0 → janito-2.9.0}/janito/provider_registry.py +31 -70
- {janito-2.7.0 → janito-2.9.0}/janito/providers/__init__.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/anthropic/model_info.py +0 -1
- {janito-2.7.0 → janito-2.9.0}/janito/providers/anthropic/provider.py +9 -14
- {janito-2.7.0 → janito-2.9.0}/janito/providers/azure_openai/provider.py +10 -5
- {janito-2.7.0 → janito-2.9.0}/janito/providers/deepseek/provider.py +5 -4
- {janito-2.7.0 → janito-2.9.0}/janito/providers/google/model_info.py +4 -2
- {janito-2.7.0 → janito-2.9.0}/janito/providers/google/provider.py +11 -5
- janito-2.9.0/janito/providers/groq/__init__.py +1 -0
- janito-2.9.0/janito/providers/groq/model_info.py +45 -0
- janito-2.9.0/janito/providers/groq/provider.py +76 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/moonshotai/provider.py +11 -4
- {janito-2.7.0 → janito-2.9.0}/janito/providers/openai/model_info.py +0 -1
- {janito-2.7.0 → janito-2.9.0}/janito/providers/openai/provider.py +6 -7
- {janito-2.7.0 → janito-2.9.0}/janito/tools/__init__.py +2 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/__init__.py +2 -1
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/adapter.py +21 -4
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/ask_user.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/copy_file.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/create_directory.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/create_file.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/delete_text_in_file.py +2 -1
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/fetch_url.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/find_files.py +7 -6
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/get_file_outline/core.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/get_file_outline/java_outline.py +22 -15
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/get_file_outline/search_outline.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/move_file.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/open_html_in_browser.py +15 -5
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/open_url.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/python_code_run.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/python_command_run.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/python_file_run.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/read_files.py +19 -4
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/remove_directory.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/remove_file.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/replace_text_in_file.py +4 -3
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/run_bash_command.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/run_powershell_command.py +1 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/search_text/core.py +18 -17
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/search_text/match_lines.py +5 -5
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/search_text/pattern_utils.py +1 -1
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/search_text/traverse_directory.py +7 -7
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/core.py +1 -1
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/html_validator.py +8 -1
- janito-2.9.0/janito/tools/disabled_tools.py +68 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/path_security.py +18 -11
- {janito-2.7.0 → janito-2.9.0}/janito/tools/permissions.py +6 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/permissions_parse.py +4 -3
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tool_base.py +11 -5
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tool_use_tracker.py +1 -4
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tool_utils.py +1 -1
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tools_adapter.py +57 -25
- {janito-2.7.0 → janito-2.9.0}/janito.egg-info/PKG-INFO +11 -19
- {janito-2.7.0 → janito-2.9.0}/janito.egg-info/SOURCES.txt +17 -8
- {janito-2.7.0 → janito-2.9.0}/janito.egg-info/requires.txt +1 -0
- {janito-2.7.0 → janito-2.9.0}/mkdocs.yml +7 -3
- {janito-2.7.0 → janito-2.9.0}/pyproject.toml +2 -2
- {janito-2.7.0 → janito-2.9.0}/requirements.txt +1 -0
- {janito-2.7.0 → janito-2.9.0}/tests/adapters/local/get_file_outline/test_core_outline.py +12 -5
- {janito-2.7.0 → janito-2.9.0}/tests/adapters/local/test_read_files.py +2 -0
- {janito-2.7.0 → janito-2.9.0}/tests/test_cli_list_models.py +18 -8
- {janito-2.7.0 → janito-2.9.0}/tests/test_cli_list_providers.py +6 -3
- {janito-2.7.0 → janito-2.9.0}/tests/test_cli_list_providers_moonshotai.py +6 -3
- janito-2.9.0/tests/test_cli_version.py +15 -0
- janito-2.9.0/tests/test_disabled_tools.py +93 -0
- janito-2.9.0/tests/test_provider_moonshotai.py +10 -0
- {janito-2.7.0 → janito-2.9.0}/tools/release.py +26 -10
- janito-2.7.0/docs/supported-providers-models.md +0 -149
- janito-2.7.0/docs/terms.md +0 -44
- janito-2.7.0/docs/tools-index.md +0 -18
- janito-2.7.0/janito/cli/chat_mode/shell/commands/livelogs.py +0 -49
- janito-2.7.0/janito/drivers/mistralai/driver.py +0 -41
- janito-2.7.0/janito/providers/mistralai/model_info.py +0 -37
- janito-2.7.0/janito/providers/mistralai/provider.py +0 -72
- janito-2.7.0/janito/providers/provider_static_info.py +0 -21
- janito-2.7.0/tests/test_cli_version.py +0 -11
- janito-2.7.0/tests/test_provider_moonshotai.py +0 -9
- {janito-2.7.0 → janito-2.9.0}/.codespellrc +0 -0
- {janito-2.7.0 → janito-2.9.0}/.github/workflows/python-app.yml +0 -0
- {janito-2.7.0 → janito-2.9.0}/.gitignore +0 -0
- {janito-2.7.0 → janito-2.9.0}/.secrets.baseline +0 -0
- {janito-2.7.0 → janito-2.9.0}/.vscode/settings.json +0 -0
- {janito-2.7.0 → janito-2.9.0}/LICENSE +0 -0
- {janito-2.7.0 → janito-2.9.0}/README-dev.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/adding_mcp.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/DIV.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/TOOLBAR-STYLING.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/about/costs.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/about/vs-webchats.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/about/why.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/alternatives.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/code_intelligence/agentic-frameworks-comparison.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/code_intelligence/code-generation-challenges.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/code_intelligence/code-generation-observability.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/code_intelligence/our-approach.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/code_intelligence/why-string-replacement.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/concepts/analysis-style.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/concepts/language-model-clients.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/concepts/prompt-design-style.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/driver-flow.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/driver-request-cancellation.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/drivers/events.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/event-bus.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/profiles.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/prompting/README.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/single-shot-terminal.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/tools-developer-guide.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/using.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/guides/using_tools.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/code-generation-observability.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/code_generation_observability.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/happy-programmer.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/happy-programmer.svg +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/terminal-one-shot.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/terminal-shell.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/terminal_one_shot.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/imgs/terminal_shell.png +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/llm-drivers-required-config.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/meta/developer-toolchain.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/meta/quality-checks.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/reference/api.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/reference/message-handler-model.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/reference/rich-message-handler.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/security.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/tools-natural-results.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/docs/tools-precision.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/git_diff.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/github_diff +0 -0
- /janito-2.7.0/janito/agent/templates/profiles/system_prompt_template_assistant.txt.j2 → /janito-2.9.0/janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2 +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/autocomplete.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/base.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/clear.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/history_view.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/lang.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/multi.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/role.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/session.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/session_control.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/utility.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands/verbose.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/commands.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/session/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/session/history.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/chat_mode/shell/session.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/model_selection.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/cli_commands/set_api_key.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/console.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/core/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/core/event_logger.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/core/unsetters.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/main.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/prompt_handler.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/single_shot_mode/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/cli/utils.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/conversation_history.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/dir_walk_utils.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/driver_events.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/drivers/dashscope.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/drivers/driver_registry.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/drivers/openai/README.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/drivers/openai_responses.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/event_bus/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/event_bus/bus.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/event_bus/event.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/event_bus/handler.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/event_bus/queue_bus.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/exceptions.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/formatting.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/gitignore_utils.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/i18n/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/i18n/messages.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/i18n/pt.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/README.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/auth.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/driver_config.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/driver_config_builder.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/driver_input.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/message_parts.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/llm/model.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/perf_singleton.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/performance_collector.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/platform_discovery.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/provider_config.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/azure_openai/model_info.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/dashscope.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/deepseek/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/deepseek/model_info.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/google/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/moonshotai/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/moonshotai/model_info.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/openai/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/openai/schema_generator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/providers/registry.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/report_events.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/shell.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/DOCSTRING_STANDARD.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/README.md +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/get_file_outline/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/get_file_outline/markdown_outline.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/get_file_outline/python_outline.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/search_text/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/__init__.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/css_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/js_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/json_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/python_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/xml_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/adapters/local/view_file.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/inspect_registry.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/outline_file.bak.zip +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tool_events.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tool_run_exception.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/tools/tools_schema.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito/utils.py +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito.egg-info/dependency_links.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito.egg-info/entry_points.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/janito.egg-info/top_level.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/pytest.ini +0 -0
- {janito-2.7.0 → janito-2.9.0}/requirements-dev.txt +0 -0
- {janito-2.7.0 → janito-2.9.0}/setup.cfg +0 -0
- {janito-2.7.0 → janito-2.9.0}/tox.ini +0 -0
@@ -2,6 +2,45 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
|
5
|
+
## [Unreleased]
|
6
|
+
### Changed
|
7
|
+
- Updated project URLs, author email, and documentation for migration to ikignosis organization.
|
8
|
+
- Updated repository links in documentation and configuration files to point to ikignosis GitHub organization.
|
9
|
+
- Changed maintainer email in provider modules to janito@ikignosis.org.
|
10
|
+
- Updated homepage and repo_url in pyproject.toml and mkdocs.yml to new organization URLs.
|
11
|
+
|
12
|
+
### Added
|
13
|
+
- Added CNAME file for docs.ikignosis.org custom domain.
|
14
|
+
- Added CLI command to list available system prompt profiles (`list_profiles.py`).
|
15
|
+
- Added privilege status message utility (`_priv_status.py`).
|
16
|
+
|
17
|
+
### Style
|
18
|
+
- Fixed formatting in CLI command and privilege status modules.
|
19
|
+
|
20
|
+
## [2.8.0] - 2025-07-16
|
21
|
+
### Added
|
22
|
+
- **Groq provider**: New provider with support for moonshotai/kimi-k2-instruct model.
|
23
|
+
- **Parallel tool calls**: Enabled for OpenAI provider when tools are available.
|
24
|
+
- **No-tools mode**: New CLI option to disable all tool usage.
|
25
|
+
- **Disabled tools functionality**: Support for selectively disabling specific tools.
|
26
|
+
|
27
|
+
### Changed
|
28
|
+
- **Configuration system**: Simplified by removing provider-specific settings.
|
29
|
+
- **Max wait time**: Increased from 300s to 600s in LLMAgent for better handling of long-running operations.
|
30
|
+
- **Custom system prompt UX**: Improved profile selection flow and user experience.
|
31
|
+
- **OpenAI dependency**: Updated to require openai>=1.68.0.
|
32
|
+
- **Code formatting**: Applied black formatting across the codebase.
|
33
|
+
|
34
|
+
### Removed
|
35
|
+
- **MistralAI provider**: Completely removed from the codebase.
|
36
|
+
- **Provider-specific settings**: Simplified configuration system.
|
37
|
+
|
38
|
+
### Documentation
|
39
|
+
- Updated MoonshotAI setup guide with platform.moonshot.ai domain.
|
40
|
+
- Improved CLI usage documentation and fixed syntax highlighting.
|
41
|
+
- Removed broken references to model_info.py files in supported-providers-models.md.
|
42
|
+
- Added comprehensive documentation updates across the project.
|
43
|
+
|
5
44
|
## [2.5.0] - 2025-07-01
|
6
45
|
### Added
|
7
46
|
- Show working directory in chat mode startup message.
|
janito-2.9.0/CNAME
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
docs.ikignosis.org
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: janito
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.9.0
|
4
4
|
Summary: A new Python package called janito.
|
5
|
-
Author-email: João Pinto <
|
6
|
-
Project-URL: Homepage, https://github.com/
|
5
|
+
Author-email: João Pinto <janito@ikignosis.org>
|
6
|
+
Project-URL: Homepage, https://github.com/ikignosis/janito
|
7
7
|
Requires-Python: >=3.7
|
8
8
|
Description-Content-Type: text/markdown
|
9
9
|
License-File: LICENSE
|
@@ -18,6 +18,7 @@ Requires-Dist: lxml>=5.4.0
|
|
18
18
|
Requires-Dist: requests>=2.32.4
|
19
19
|
Requires-Dist: bs4>=0.0.2
|
20
20
|
Requires-Dist: questionary>=2.0.1
|
21
|
+
Requires-Dist: openai>=1.68.0
|
21
22
|
Provides-Extra: dev
|
22
23
|
Requires-Dist: pytest; extra == "dev"
|
23
24
|
Requires-Dist: pre-commit; extra == "dev"
|
@@ -29,7 +30,7 @@ Requires-Dist: questionary>=2.0.1; extra == "dev"
|
|
29
30
|
Requires-Dist: setuptools_scm>=8.0; extra == "dev"
|
30
31
|
Dynamic: license-file
|
31
32
|
|
32
|
-
# Janito
|
33
|
+
# Janito, control you context
|
33
34
|
|
34
35
|
[](https://badge.fury.io/py/janito)
|
35
36
|
|
@@ -38,7 +39,7 @@ Janito is a command-line interface (CLI) tool for managing and interacting with
|
|
38
39
|
## Features
|
39
40
|
|
40
41
|
- 🔑 Manage API keys and provider configurations
|
41
|
-
- 🤖 Interact with multiple LLM providers (OpenAI, Google Gemini,
|
42
|
+
- 🤖 Interact with multiple LLM providers (OpenAI, Google Gemini, DeepSeek, and more)
|
42
43
|
- 🛠️ List and use a variety of registered tools
|
43
44
|
- 📝 Submit prompts and receive responses directly from the CLI
|
44
45
|
- 📋 List available models for each provider
|
@@ -60,7 +61,7 @@ Janito is a command-line interface (CLI) tool for managing and interacting with
|
|
60
61
|
Janito is a Python package. Since this is a development version, you can install it directly from GitHub:
|
61
62
|
|
62
63
|
```bash
|
63
|
-
pip install git+
|
64
|
+
pip install git+git@github.com:ikignosis/janito.git
|
64
65
|
```
|
65
66
|
|
66
67
|
### First launch and quick setup
|
@@ -107,7 +108,7 @@ janito -set provider=PROVIDER
|
|
107
108
|
|
108
109
|
## Usage
|
109
110
|
|
110
|
-
After installation, use the `janito` command in your terminal
|
111
|
+
After installation, use the `janito` command in your terminal with the syntax: `janito [options] [prompt]`
|
111
112
|
|
112
113
|
Janito supports both general-purpose and specialized assistance through the use of **profiles**. Profiles allow you to select a specific system prompt template and behavior for the agent, enabling workflows tailored to different roles or tasks (e.g., developer, writer, data analyst), or to use Janito as a generic AI assistant.
|
113
114
|
|
@@ -202,14 +203,7 @@ janito -r -w -x "Run this code: print('Hello, world!')"
|
|
202
203
|
janito -p google -m gemini-2.5-flash "Your prompt here"
|
203
204
|
```
|
204
205
|
|
205
|
-
- **Set Provider-Specific Config (for the selected provider)**
|
206
|
-
```bash
|
207
|
-
# syntax: janito --set PROVIDER.KEY=VALUE
|
208
|
-
# example: set the default model for openai provider
|
209
|
-
janito --set openai.model=gpt-4o
|
210
206
|
|
211
|
-
```
|
212
|
-
> **Note:** Use `--set PROVIDER.key=value` for provider-specific settings (e.g., `openai.max_tokens`, `openai.base_url`).
|
213
207
|
|
214
208
|
- **Enable Event Logging**
|
215
209
|
```bash
|
@@ -235,7 +229,7 @@ janito -r -w -x "Run this code: print('Hello, world!')"
|
|
235
229
|
| `-v`, `--verbose` | Print extra information before answering |
|
236
230
|
| `-R`, `--raw` | Print raw JSON response from API |
|
237
231
|
| `-e`, `--event-log` | Log events to console as they occur |
|
238
|
-
| `
|
232
|
+
| `prompt` | Prompt to submit for the non interactive mode (e.g. `janito "What is the capital of France?"`) |
|
239
233
|
|
240
234
|
### 🧩 Extended Chat Mode Commands
|
241
235
|
Once inside the interactive chat mode, you can use these slash commands:
|
@@ -265,8 +259,6 @@ Once inside the interactive chat mode, you can use these slash commands:
|
|
265
259
|
| `/tools` | List available tools |
|
266
260
|
| `/-status` | Show status of server |
|
267
261
|
| `/-logs` | Show last lines of logs |
|
268
|
-
| `/livelogs` | Show live updates from server log file |
|
269
|
-
| `/edit <filename>` | Open file in browser-based editor |
|
270
262
|
| `/write [on\|off]` | Enable or disable write tool permissions |
|
271
263
|
| `/read [on\|off]` | Enable or disable read tool permissions |
|
272
264
|
| `/execute [on\|off]` | Enable or disable execute tool permissions |
|
@@ -315,7 +307,7 @@ For more information, see the documentation in the `docs/` directory or run `jan
|
|
315
307
|
|
316
308
|
## 📖 Detailed Documentation
|
317
309
|
|
318
|
-
Full and up-to-date documentation is available at: https://
|
310
|
+
Full and up-to-date documentation is available at: https://ikignosis.github.io/janito/
|
319
311
|
|
320
312
|
---
|
321
313
|
|
@@ -396,7 +388,7 @@ janito -p deepseek --list-models
|
|
396
388
|
## Ask Me Anything
|
397
389
|
|
398
390
|
<div align="center">
|
399
|
-
<a href="
|
391
|
+
<a href="git@github.com:ikignosis/janito.git" title="Ask Me Anything">
|
400
392
|
<img width="250" src="docs/imgs/ama.png" alt="Ask Me Anything">
|
401
393
|
</a>
|
402
394
|
</div
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Janito
|
1
|
+
# Janito, control you context
|
2
2
|
|
3
3
|
[](https://badge.fury.io/py/janito)
|
4
4
|
|
@@ -7,7 +7,7 @@ Janito is a command-line interface (CLI) tool for managing and interacting with
|
|
7
7
|
## Features
|
8
8
|
|
9
9
|
- 🔑 Manage API keys and provider configurations
|
10
|
-
- 🤖 Interact with multiple LLM providers (OpenAI, Google Gemini,
|
10
|
+
- 🤖 Interact with multiple LLM providers (OpenAI, Google Gemini, DeepSeek, and more)
|
11
11
|
- 🛠️ List and use a variety of registered tools
|
12
12
|
- 📝 Submit prompts and receive responses directly from the CLI
|
13
13
|
- 📋 List available models for each provider
|
@@ -29,7 +29,7 @@ Janito is a command-line interface (CLI) tool for managing and interacting with
|
|
29
29
|
Janito is a Python package. Since this is a development version, you can install it directly from GitHub:
|
30
30
|
|
31
31
|
```bash
|
32
|
-
pip install git+
|
32
|
+
pip install git+git@github.com:ikignosis/janito.git
|
33
33
|
```
|
34
34
|
|
35
35
|
### First launch and quick setup
|
@@ -76,7 +76,7 @@ janito -set provider=PROVIDER
|
|
76
76
|
|
77
77
|
## Usage
|
78
78
|
|
79
|
-
After installation, use the `janito` command in your terminal
|
79
|
+
After installation, use the `janito` command in your terminal with the syntax: `janito [options] [prompt]`
|
80
80
|
|
81
81
|
Janito supports both general-purpose and specialized assistance through the use of **profiles**. Profiles allow you to select a specific system prompt template and behavior for the agent, enabling workflows tailored to different roles or tasks (e.g., developer, writer, data analyst), or to use Janito as a generic AI assistant.
|
82
82
|
|
@@ -171,14 +171,7 @@ janito -r -w -x "Run this code: print('Hello, world!')"
|
|
171
171
|
janito -p google -m gemini-2.5-flash "Your prompt here"
|
172
172
|
```
|
173
173
|
|
174
|
-
- **Set Provider-Specific Config (for the selected provider)**
|
175
|
-
```bash
|
176
|
-
# syntax: janito --set PROVIDER.KEY=VALUE
|
177
|
-
# example: set the default model for openai provider
|
178
|
-
janito --set openai.model=gpt-4o
|
179
174
|
|
180
|
-
```
|
181
|
-
> **Note:** Use `--set PROVIDER.key=value` for provider-specific settings (e.g., `openai.max_tokens`, `openai.base_url`).
|
182
175
|
|
183
176
|
- **Enable Event Logging**
|
184
177
|
```bash
|
@@ -204,7 +197,7 @@ janito -r -w -x "Run this code: print('Hello, world!')"
|
|
204
197
|
| `-v`, `--verbose` | Print extra information before answering |
|
205
198
|
| `-R`, `--raw` | Print raw JSON response from API |
|
206
199
|
| `-e`, `--event-log` | Log events to console as they occur |
|
207
|
-
| `
|
200
|
+
| `prompt` | Prompt to submit for the non interactive mode (e.g. `janito "What is the capital of France?"`) |
|
208
201
|
|
209
202
|
### 🧩 Extended Chat Mode Commands
|
210
203
|
Once inside the interactive chat mode, you can use these slash commands:
|
@@ -234,8 +227,6 @@ Once inside the interactive chat mode, you can use these slash commands:
|
|
234
227
|
| `/tools` | List available tools |
|
235
228
|
| `/-status` | Show status of server |
|
236
229
|
| `/-logs` | Show last lines of logs |
|
237
|
-
| `/livelogs` | Show live updates from server log file |
|
238
|
-
| `/edit <filename>` | Open file in browser-based editor |
|
239
230
|
| `/write [on\|off]` | Enable or disable write tool permissions |
|
240
231
|
| `/read [on\|off]` | Enable or disable read tool permissions |
|
241
232
|
| `/execute [on\|off]` | Enable or disable execute tool permissions |
|
@@ -284,7 +275,7 @@ For more information, see the documentation in the `docs/` directory or run `jan
|
|
284
275
|
|
285
276
|
## 📖 Detailed Documentation
|
286
277
|
|
287
|
-
Full and up-to-date documentation is available at: https://
|
278
|
+
Full and up-to-date documentation is available at: https://ikignosis.github.io/janito/
|
288
279
|
|
289
280
|
---
|
290
281
|
|
@@ -365,7 +356,7 @@ janito -p deepseek --list-models
|
|
365
356
|
## Ask Me Anything
|
366
357
|
|
367
358
|
<div align="center">
|
368
|
-
<a href="
|
359
|
+
<a href="git@github.com:ikignosis/janito.git" title="Ask Me Anything">
|
369
360
|
<img width="250" src="docs/imgs/ama.png" alt="Ask Me Anything">
|
370
361
|
</a>
|
371
362
|
</div
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Updating Documentation
|
2
|
+
|
3
|
+
This project uses [MkDocs](https://www.mkdocs.org/) for documentation generation and hosting.
|
4
|
+
|
5
|
+
## Documentation Structure
|
6
|
+
|
7
|
+
- Documentation source files are located in the `docs/` directory
|
8
|
+
- The main configuration is in `mkdocs.yml` at the project root
|
9
|
+
- Documentation is written in Markdown format
|
10
|
+
|
11
|
+
## When to Update Documentation
|
12
|
+
|
13
|
+
Documentation should be updated whenever:
|
14
|
+
|
15
|
+
- New features are added
|
16
|
+
- Existing functionality changes
|
17
|
+
- APIs or interfaces are modified
|
18
|
+
- Configuration options are added or changed
|
19
|
+
- Setup/installation instructions need updates
|
20
|
+
- Examples or usage patterns change
|
21
|
+
|
22
|
+
## How to Update Documentation
|
23
|
+
|
24
|
+
1. Edit the relevant `.md` files in the `docs/` directory
|
25
|
+
2. **Update navigation**: If adding new documentation files, update the `nav:` section in `mkdocs.yml` to include the new pages
|
26
|
+
3. Test your changes locally by running: `mkdocs serve`
|
27
|
+
4. Preview the documentation at `http://localhost:8000`
|
28
|
+
5. Once satisfied, commit your changes along with the code changes
|
29
|
+
|
30
|
+
## Building and Deploying
|
31
|
+
|
32
|
+
- Local development: `mkdocs serve`
|
33
|
+
- Build static site: `mkdocs build`
|
34
|
+
- Deploy to GitHub Pages: `mkdocs gh-deploy` (if configured)
|
35
|
+
|
36
|
+
## MkDocs Configuration
|
37
|
+
|
38
|
+
The `mkdocs.yml` file contains:
|
39
|
+
|
40
|
+
- Site metadata (name, description, etc.)
|
41
|
+
- **Navigation structure** (`nav:` section) - must be updated when adding new documentation files
|
42
|
+
- Theme configuration
|
43
|
+
- Plugin settings
|
44
|
+
- Markdown extensions
|
45
|
+
|
46
|
+
Please ensure any documentation updates maintain consistency with the existing style and structure. When adding new documentation files, always remember to update the navigation in `mkdocs.yml`.
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# Human-Guided AI: A Principle for Empowerment Through Tools and Instruments
|
2
|
+
|
3
|
+
In the accelerating world of artificial intelligence, the **Human-Guided AI principle** emphasizes that AI systems exist as **extensions of human intent**, designed to deliver powerful tools and instruments under human direction. This framework not only clarifies the role of AI in society but also anchors ethical responsibility and governance firmly with users and designers.
|
4
|
+
|
5
|
+
---
|
6
|
+
|
7
|
+
## Human-Guided AI Principle
|
8
|
+
|
9
|
+
At the core, the **Human-Guided AI principle** asserts that every AI system should operate as a **tool for human purposes**, avoiding undue autonomy—that is, preventing the system from acting or making decisions beyond the scope of intended human oversight and control. AI under this principle is valued for its capacity to augment human capabilities, automate repetitive tasks, and generate novel insights—all while remaining firmly under human oversight and ethical accountability.
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
## What Are AI Instruments?
|
14
|
+
|
15
|
+
Under the Human-Guided AI principle, an **AI instrument** is any system explicitly designed as a **tool for human use**, with clear boundaries of operation defined by its creators and users. Unlike autonomous AI agents, which may perceive environments and pursue goals independently, AI instruments function strictly as **means to human-defined ends**.
|
16
|
+
|
17
|
+
> **Instrumentality:** Under Human-Guided AI, every algorithm and model is a means to amplify human skill and judgment, never to supplant it.
|
18
|
+
|
19
|
+
---
|
20
|
+
|
21
|
+
## Examples of AI Instruments
|
22
|
+
|
23
|
+
AI instruments manifest across diverse domains, each embodying the Human-Guided AI principle in action:
|
24
|
+
|
25
|
+
* **Scientific Discovery Tools**
|
26
|
+
AI-driven simulations, drug-design algorithms, and protein-folding models (e.g., AlphaFold) accelerate human-led research and hypothesis testing.
|
27
|
+
|
28
|
+
* **Creative Assistance**
|
29
|
+
Generative text, image, and music platforms serve as digital co-creators, enabling artists and writers to explore new creative horizons.
|
30
|
+
|
31
|
+
* **Data Analysis**
|
32
|
+
Machine learning frameworks that surface patterns in massive datasets support economists, epidemiologists, and climate scientists in human-led decision making.
|
33
|
+
|
34
|
+
* **Accessibility Technology**
|
35
|
+
Speech-to-text converters, real-time translators, and other assistive AIs extend communication capabilities, underpinned by human values of inclusion.
|
36
|
+
|
37
|
+
---
|
38
|
+
|
39
|
+
## Instruments and Agents: Complementary Roles under Human-Guided AI
|
40
|
+
|
41
|
+
While similar technologies underlie both AI instruments and AI agents, the **Human-Guided AI principle** differentiates them by intent and control:
|
42
|
+
|
43
|
+
| Aspect | AI Instrument (Human-Guided) | AI Agent |
|
44
|
+
| ------------------ | --------------------------------- | ----------------------------------- |
|
45
|
+
| **Role** | Tool under human direction | Autonomous actor |
|
46
|
+
| **Control** | Defined and managed by users | Independent decision making |
|
47
|
+
| **Responsibility** | Clearly human | Shared or ambiguous |
|
48
|
+
| **Examples** | ChatGPT as co-writer, AI art apps | Self-driving vehicles, trading bots |
|
49
|
+
|
50
|
+
This spectrum underscores that applying the Human-Guided AI principle ensures clarity in both design and governance.
|
51
|
+
|
52
|
+
---
|
53
|
+
|
54
|
+
## Why Human-Guided AI Matters
|
55
|
+
|
56
|
+
Framing AI through this principle:
|
57
|
+
|
58
|
+
1. **Centers human creativity and judgment.**
|
59
|
+
2. **Anchors accountability with tool operators and designers.**
|
60
|
+
3. **Guides policy toward regulating instruments rather than hypothetical actors.**
|
61
|
+
|
62
|
+
By viewing AI as instruments of human agency, stakeholders can better craft regulations, standards, and best practices that prioritize human welfare and ethical use.
|
63
|
+
|
64
|
+
---
|
65
|
+
|
66
|
+
## Toward a Responsible Future
|
67
|
+
|
68
|
+
Integrating the Human-Guided AI principle into development and governance prompts key questions:
|
69
|
+
|
70
|
+
* Are our systems built to amplify human potential or to operate with hidden objectives?
|
71
|
+
* Do we embed technical controls in AI tools and instruments to require explicit user validation and prevent blind acceptance of AI outputs?
|
72
|
+
|
73
|
+
Adopting Human-Guided AI as a guiding philosophy empowers researchers, policymakers, and communities to ensure that AI technologies remain true to human values and oversight.
|
74
|
+
|
75
|
+
---
|
76
|
+
|
77
|
+
## Security & Safety Considerations
|
78
|
+
|
79
|
+
Although AI instruments amplify human capability, they can, like any other tool, be mis-used to cause harm. The Human-Guided AI principle therefore makes **no claim of providing additional, intrinsic technical safeguards beyond those that already apply at the point of use**. Ultimate responsibility for secure, lawful, and ethical operation lies with each user. Every deployment must adhere to the laws, regulations, and policies that govern the user’s jurisdiction and domain.
|
80
|
+
|
81
|
+
---
|
82
|
+
|
83
|
+
## Conclusion
|
84
|
+
|
85
|
+
The **Human-Guided AI principle** reframes artificial intelligence not as an independent mind but as a suite of instruments and tools—each a testament to human ingenuity and responsibility. As we harness these capabilities, we must remember:
|
86
|
+
|
87
|
+
> **Tools are only as good as the skill and integrity of those who wield them.**
|
@@ -9,4 +9,6 @@ This section collects foundational explanations, terminology, and conventions us
|
|
9
9
|
- [Prompt Analysis Style](analysis-style.md)
|
10
10
|
- [Prompt Design Style](prompt-design-style.md)
|
11
11
|
|
12
|
+
- [Human-Guided AI Principle](human-guided-ai.md)
|
13
|
+
|
12
14
|
*More topics will be added here as the documentation evolves.*
|
@@ -53,7 +53,7 @@ See `janito/drivers/openai/driver.py` for a complete example. Highlights:
|
|
53
53
|
- Handles cancellation and error reporting robustly.
|
54
54
|
|
55
55
|
## References
|
56
|
-
- Base class: [`janito/llm/driver.py`](
|
57
|
-
- OpenAI driver: [`janito/drivers/openai/driver.py`](
|
58
|
-
- Driver events: [`janito/driver_events.py`](
|
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)
|
59
59
|
|
@@ -16,9 +16,23 @@ janito -p openai -m gpt-3.5-turbo "Your prompt here"
|
|
16
16
|
- Use `-m MODEL_NAME` to select a model for the provider.
|
17
17
|
- See [CLI Options](../reference/cli-options.md) for the full list of flags.
|
18
18
|
|
19
|
-
##
|
19
|
+
## 2. Using Custom Configuration Files
|
20
20
|
|
21
|
-
|
21
|
+
You can use the `-c NAME` or `--config NAME` option to load and save configuration from a custom file:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
janito -c myproject "Prompt for my project"
|
25
|
+
```
|
26
|
+
|
27
|
+
This will use the config file at:
|
28
|
+
- Windows: `C:\Users\<YourUser>\.janito\configs\myproject.json`
|
29
|
+
- Linux/macOS: `/home/<youruser>/.janito/configs/myproject.json`
|
30
|
+
|
31
|
+
If the file does not exist, it will be created automatically when you save settings.
|
32
|
+
|
33
|
+
## 3. Default Configuration File
|
34
|
+
|
35
|
+
By default, Janito uses a `config.json` file located in the `.janito` directory under your home folder for persistent settings.
|
22
36
|
|
23
37
|
**Path:**
|
24
38
|
|
@@ -34,6 +48,27 @@ Show the current configuration with:
|
|
34
48
|
janito --show-config
|
35
49
|
```
|
36
50
|
|
51
|
+
This will display the config file path at the top. If you use `-c NAME`, this will show the configuration for that custom file and its path.
|
52
|
+
|
53
|
+
## Advanced Configuration
|
54
|
+
|
55
|
+
### Disabling Tools
|
56
|
+
|
57
|
+
You can selectively disable specific tools to customize your workflow or enhance security:
|
58
|
+
|
59
|
+
```bash
|
60
|
+
# Disable a single tool
|
61
|
+
janito --set disabled_tools=ask_user
|
62
|
+
|
63
|
+
# Disable multiple tools
|
64
|
+
janito --set disabled_tools="ask_user,python_code_run"
|
65
|
+
|
66
|
+
# View disabled tools
|
67
|
+
janito --show-config
|
68
|
+
```
|
69
|
+
|
70
|
+
See the [Disabling Tools Guide](disabled-tools.md) for complete details.
|
71
|
+
|
37
72
|
## More Information
|
38
73
|
|
39
74
|
- See [CLI Options Reference](../reference/cli-options.md) for all configuration flags.
|
@@ -7,7 +7,7 @@ This guide explains how to set up Janito for development and install the latest
|
|
7
7
|
To install the most recent development version from the GitHub main branch, run:
|
8
8
|
|
9
9
|
```bash
|
10
|
-
pip install git+
|
10
|
+
pip install git+git@github.com:ikignosis/janito.git@main
|
11
11
|
```
|
12
12
|
|
13
13
|
## Editable Install for Local Development
|
@@ -15,7 +15,7 @@ pip install git+https://github.com/janito-dev/janito.git@main
|
|
15
15
|
To make code changes and see them reflected immediately (without reinstalling), use an editable install:
|
16
16
|
|
17
17
|
```bash
|
18
|
-
git clone
|
18
|
+
git clone git@github.com:ikignosis/janito.git
|
19
19
|
cd janito
|
20
20
|
git checkout main
|
21
21
|
pip install -e .
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# Disabling Tools Guide
|
2
|
+
|
3
|
+
Janito allows you to disable specific tools to customize your workflow or enhance security. This guide explains how to disable and manage tools using configuration settings.
|
4
|
+
|
5
|
+
## Overview
|
6
|
+
|
7
|
+
By default, all tools are enabled based on their permission requirements (read, write, execute). However, you can selectively disable individual tools using the `disabled_tools` configuration setting.
|
8
|
+
|
9
|
+
## Setting Disabled Tools
|
10
|
+
|
11
|
+
### Via CLI
|
12
|
+
|
13
|
+
Use the `--set` command to disable tools:
|
14
|
+
|
15
|
+
```bash
|
16
|
+
# Disable a single tool
|
17
|
+
janito --set disabled_tools=ask_user
|
18
|
+
|
19
|
+
# Disable multiple tools (comma-separated)
|
20
|
+
janito --set disabled_tools="ask_user,python_code_run"
|
21
|
+
|
22
|
+
# Clear all disabled tools
|
23
|
+
janito --set disabled_tools=""
|
24
|
+
```
|
25
|
+
|
26
|
+
### Via Configuration File
|
27
|
+
|
28
|
+
Edit your configuration file (by default `~/.janito/config.json`, or a custom file if using `-c NAME` such as `~/.janito/configs/NAME.json`) and add the `disabled_tools` key:
|
29
|
+
|
30
|
+
```json
|
31
|
+
{
|
32
|
+
"disabled_tools": "ask_user,python_code_run",
|
33
|
+
"provider": "openai",
|
34
|
+
"model": "gpt-4.1"
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|
38
|
+
If you use `-c NAME`, the disabled tools will be saved and loaded from that custom config file.
|
39
|
+
|
40
|
+
## Viewing Disabled Tools
|
41
|
+
|
42
|
+
Check which tools are currently disabled:
|
43
|
+
|
44
|
+
```bash
|
45
|
+
janito --show-config
|
46
|
+
```
|
47
|
+
|
48
|
+
This will display the config file path and a section showing your disabled tools, for example:
|
49
|
+
```
|
50
|
+
Config file: /home/youruser/.janito/config.json
|
51
|
+
Disabled tools: ask_user, python_code_run
|
52
|
+
```
|
53
|
+
|
54
|
+
## Listing Available Tools
|
55
|
+
|
56
|
+
To see which tools are currently available (excluding disabled ones):
|
57
|
+
|
58
|
+
```bash
|
59
|
+
janito --list-tools
|
60
|
+
```
|
61
|
+
|
62
|
+
Disabled tools will not appear in the tool listing.
|
63
|
+
|
64
|
+
## Common Use Cases
|
65
|
+
|
66
|
+
### Security Enhancement
|
67
|
+
Disable potentially dangerous tools in production environments:
|
68
|
+
```bash
|
69
|
+
janito --set disabled_tools="python_code_run,run_powershell_command,run_bash_command"
|
70
|
+
```
|
71
|
+
|
72
|
+
### Workflow Customization
|
73
|
+
Disable tools you don't use to reduce clutter:
|
74
|
+
```bash
|
75
|
+
janito --set disabled_tools="open_url,open_html_in_browser"
|
76
|
+
```
|
77
|
+
|
78
|
+
### Temporary Disabling
|
79
|
+
Temporarily disable tools for specific sessions:
|
80
|
+
```bash
|
81
|
+
janito --set disabled_tools=ask_user "Generate code without user interaction"
|
82
|
+
```
|
83
|
+
|
84
|
+
## Tool Names
|
85
|
+
|
86
|
+
Use the exact tool names as shown in `janito --list-tools`. Common tool names include:
|
87
|
+
|
88
|
+
- `ask_user` - Interactive user prompts
|
89
|
+
- `python_code_run` - Execute Python code
|
90
|
+
- `run_powershell_command` - Execute PowerShell commands
|
91
|
+
- `run_bash_command` - Execute bash commands
|
92
|
+
- `create_file` - Create new files
|
93
|
+
- `remove_file` - Delete files
|
94
|
+
- `open_url` - Open URLs in browser
|
95
|
+
- And many more...
|
96
|
+
|
97
|
+
## Best Practices
|
98
|
+
|
99
|
+
1. **Test Before Disabling**: Always test your workflow after disabling tools to ensure essential functionality isn't broken.
|
100
|
+
|
101
|
+
2. **Document Changes**: Keep track of which tools you've disabled and why.
|
102
|
+
|
103
|
+
3. **Use Sparingly**: Only disable tools that pose security risks or aren't needed for your specific use case.
|
104
|
+
|
105
|
+
4. **Review Regularly**: Periodically review your disabled tools list to ensure it still meets your needs.
|
106
|
+
|
107
|
+
## Troubleshooting
|
108
|
+
|
109
|
+
### Tool Still Appears Available
|
110
|
+
|
111
|
+
- Ensure you're using the exact tool name (case-sensitive)
|
112
|
+
- Check that the configuration was saved: `janito --show-config`
|
113
|
+
- Restart your terminal session if needed
|
114
|
+
|
115
|
+
### Accidentally Disabled Essential Tools
|
116
|
+
|
117
|
+
- Clear all disabled tools: `janito --set disabled_tools=""`
|
118
|
+
- Or selectively re-enable by removing from the comma-separated list
|
119
|
+
|
120
|
+
### Configuration Not Persisting
|
121
|
+
|
122
|
+
- Verify the config file path: `janito --show-config` shows the config file location at the top (if using `-c NAME`, it will show the custom config file)
|
123
|
+
- Check file permissions for your config file
|
124
|
+
- Ensure no syntax errors in the JSON configuration
|
@@ -17,7 +17,7 @@ pip install janito
|
|
17
17
|
|
18
18
|
### From GitHub (Development Version)
|
19
19
|
```bash
|
20
|
-
pip install git+
|
20
|
+
pip install git+git@github.com:ikignosis/janito.git
|
21
21
|
```
|
22
22
|
|
23
23
|
> For development setup and contributing, see [Developing & Extending](developing.md).
|
@@ -10,7 +10,7 @@ The interactive shell lets you have a continuous conversation with Janito, just
|
|
10
10
|
- 📋 Copy code snippets easily
|
11
11
|
- 💡 Context-aware suggestions (where supported)
|
12
12
|
- 💾 Conversation state is saved/restored between sessions
|
13
|
-
|
13
|
+
|
14
14
|
|
15
15
|
---
|
16
16
|
|
@@ -39,16 +39,7 @@ You can use these commands at any time (prefix with `/` or just type the name):
|
|
39
39
|
| `/execute [on|off] | /read [on|off] | /write [on|off]` | Enable or disable code/shell execution tools at runtime |
|
40
40
|
| `/tools` | List all registered tools and show which are enabled/disabled |
|
41
41
|
|
42
|
-
## 🖱️ Clickable File Links
|
43
|
-
|
44
|
-
When Janito references files in its responses, the file names may appear as clickable links in supported terminals or web-based shells. To enable this, start Janito with the `--web` flag. Clicking these links will open the file in your browser for inspection.
|
45
|
-
|
46
|
-
- **What you can do:**
|
47
|
-
- View file contents in your browser
|
48
|
-
- Access additional actions (e.g., copy, download, or inspect details)
|
49
|
-
- Navigate project files more efficiently during reviews or debugging
|
50
42
|
|
51
|
-
This feature enhances productivity by bridging the terminal and browser, making it easy to inspect and act on files referenced in your conversations.
|
52
43
|
|
53
44
|
## 💻 Usage Example
|
54
45
|
|