janito 1.9.0__tar.gz → 1.10.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-1.9.0/janito.egg-info → janito-1.10.0}/PKG-INFO +61 -42
- {janito-1.9.0 → janito-1.10.0}/README.md +60 -41
- janito-1.10.0/janito/__init__.py +1 -0
- janito-1.10.0/janito/agent/api_exceptions.py +4 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/config.py +1 -1
- janito-1.10.0/janito/agent/config_defaults.py +12 -0
- janito-1.10.0/janito/agent/conversation.py +238 -0
- janito-1.10.0/janito/agent/conversation_api.py +218 -0
- janito-1.9.0/janito/agent/conversation_history.py → janito-1.10.0/janito/agent/llm_conversation_history.py +18 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/openai_client.py +38 -23
- janito-1.10.0/janito/agent/openai_schema_generator.py +187 -0
- janito-1.10.0/janito/agent/platform_discovery.py +147 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/profile_manager.py +5 -5
- janito-1.10.0/janito/agent/rich_message_handler.py +115 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/templates/profiles/system_prompt_template_base.txt.j2 +5 -4
- janito-1.10.0/janito/agent/test_openai_schema_generator.py +93 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tool_base.py +7 -2
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tool_executor.py +54 -49
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tool_registry.py +5 -2
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tool_use_tracker.py +26 -5
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/__init__.py +6 -3
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/create_directory.py +3 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/create_file.py +7 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/fetch_url.py +40 -3
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/find_files.py +3 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/get_file_outline/core.py +6 -7
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/get_file_outline/search_outline.py +3 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/get_lines.py +7 -2
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/move_file.py +3 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/present_choices.py +3 -1
- janito-1.10.0/janito/agent/tools/python_command_runner.py +150 -0
- janito-1.10.0/janito/agent/tools/python_file_runner.py +148 -0
- janito-1.10.0/janito/agent/tools/python_stdin_runner.py +154 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/remove_directory.py +3 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/remove_file.py +5 -1
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/replace_file.py +12 -2
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/replace_text_in_file.py +4 -2
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/run_bash_command.py +30 -69
- janito-1.10.0/janito/agent/tools/run_powershell_command.py +209 -0
- janito-1.10.0/janito/agent/tools/search_text.py +254 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/core.py +3 -1
- janito-1.10.0/janito/agent/tools_utils/action_type.py +7 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools_utils/dir_walk_utils.py +3 -2
- janito-1.10.0/janito/agent/tools_utils/formatting.py +49 -0
- janito-1.10.0/janito/agent/tools_utils/gitignore_utils.py +69 -0
- janito-1.10.0/janito/agent/tools_utils/test_gitignore_utils.py +46 -0
- janito-1.10.0/janito/cli/_print_config.py +96 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/arg_parser.py +13 -12
- janito-1.10.0/janito/cli/cli_main.py +270 -0
- janito-1.10.0/janito/cli/main.py +202 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/one_shot.py +40 -26
- {janito-1.9.0 → janito-1.10.0}/janito/i18n/__init__.py +1 -1
- janito-1.10.0/janito/rich_utils.py +59 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/__init__.py +2 -4
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/conversation_restart.py +3 -1
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/edit.py +3 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/history_view.py +3 -3
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/lang.py +3 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/livelogs.py +5 -3
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/prompt.py +6 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/session.py +3 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/session_control.py +3 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/termweb_log.py +8 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/tools.py +3 -0
- janito-1.10.0/janito/shell/commands/track.py +36 -0
- janito-1.10.0/janito/shell/commands/utility.py +28 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/verbose.py +3 -4
- janito-1.10.0/janito/shell/input_history.py +62 -0
- janito-1.10.0/janito/shell/main.py +257 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/session/manager.py +0 -21
- {janito-1.9.0 → janito-1.10.0}/janito/shell/ui/interactive.py +0 -2
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/editor.css +0 -4
- janito-1.10.0/janito/tests/test_rich_utils.py +44 -0
- {janito-1.9.0 → janito-1.10.0}/janito/web/app.py +0 -75
- {janito-1.9.0 → janito-1.10.0/janito.egg-info}/PKG-INFO +61 -42
- {janito-1.9.0 → janito-1.10.0}/janito.egg-info/SOURCES.txt +18 -5
- {janito-1.9.0 → janito-1.10.0}/pyproject.toml +9 -1
- janito-1.10.0/tests/test_outline_formatter.py +49 -0
- janito-1.10.0/tests/test_platform_discovery.py +37 -0
- janito-1.10.0/tests/test_python_command_runner.py +23 -0
- janito-1.10.0/tests/test_python_file_runner.py +29 -0
- janito-1.10.0/tests/test_python_stdin_runner.py +23 -0
- janito-1.10.0/tests/test_rich_message_handler_action_type.py +39 -0
- janito-1.10.0/tests/test_search_text.py +29 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_tool_registry_validation.py +3 -3
- janito-1.9.0/janito/__init__.py +0 -1
- janito-1.9.0/janito/agent/config_defaults.py +0 -36
- janito-1.9.0/janito/agent/conversation.py +0 -197
- janito-1.9.0/janito/agent/conversation_api.py +0 -228
- janito-1.9.0/janito/agent/openai_schema_generator.py +0 -154
- janito-1.9.0/janito/agent/platform_discovery.py +0 -90
- janito-1.9.0/janito/agent/providers.py +0 -77
- janito-1.9.0/janito/agent/rich_message_handler.py +0 -66
- janito-1.9.0/janito/agent/tools/run_powershell_command.py +0 -180
- janito-1.9.0/janito/agent/tools/run_python_command.py +0 -161
- janito-1.9.0/janito/agent/tools/search_text.py +0 -204
- janito-1.9.0/janito/agent/tools_utils/formatting.py +0 -23
- janito-1.9.0/janito/agent/tools_utils/gitignore_utils.py +0 -43
- janito-1.9.0/janito/cli/_print_config.py +0 -94
- janito-1.9.0/janito/cli/cli_main.py +0 -280
- janito-1.9.0/janito/cli/main.py +0 -224
- janito-1.9.0/janito/rich_utils.py +0 -21
- janito-1.9.0/janito/shell/commands/sum.py +0 -49
- janito-1.9.0/janito/shell/commands/utility.py +0 -33
- janito-1.9.0/janito/shell/main.py +0 -321
- janito-1.9.0/tests/test_conversation_history.py +0 -67
- {janito-1.9.0 → janito-1.10.0}/LICENSE +0 -0
- {janito-1.9.0 → janito-1.10.0}/MANIFEST.in +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/__main__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/config_utils.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/content_handler.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/conversation_exceptions.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/conversation_tool_calls.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/conversation_ui.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/event.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/event_dispatcher.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/event_handler_protocol.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/event_system.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/message_handler.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/message_handler_protocol.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/queued_message_handler.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/rich_live.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/runtime_config.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2 +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/test_handler_protocols.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tests/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/ask_user.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/delete_text_in_file.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/get_file_outline/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/get_file_outline/markdown_outline.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/get_file_outline/python_outline.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/css_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/html_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/js_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/json_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/markdown_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/ps1_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/python_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/xml_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools/validate_file_syntax/yaml_validator.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools_utils/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/agent/tools_utils/utils.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/_livereload_log_utils.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/_termweb_log_utils.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/_utils.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/config_commands.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/config_runner.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/formatting_runner.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/livereload_starter.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/logging_setup.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/cli/termweb_starter.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/i18n/messages.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/i18n/pt.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/livereload/app.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands/config.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/commands.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/prompt/completer.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/prompt/load_prompt.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/prompt/session_setup.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/session/config.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/shell/session/history.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/app.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/editor.css.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/editor.html +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/editor.html.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/editor.js +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/editor.js.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/explorer.html.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/favicon.ico +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/favicon.ico.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/index.html +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/index.html.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/index.html.bak.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/landing.html.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termicon.svg +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb.css +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb.css.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb.js +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb.js.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb.js.bak.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb_quickopen.js +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/termweb/static/termweb_quickopen.js.bak +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/web/__init__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito/web/__main__.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito.egg-info/dependency_links.txt +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito.egg-info/entry_points.txt +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito.egg-info/requires.txt +0 -0
- {janito-1.9.0 → janito-1.10.0}/janito.egg-info/top_level.txt +0 -0
- {janito-1.9.0 → janito-1.10.0}/setup.cfg +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_basic.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_find_files.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_outline_no_overlap.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_outline_python_file.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_outline_python_file_complex.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_outline_tool_run.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_run_powershell_command.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_set_role.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_tool_registry_docstring_formats.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_tool_registry_manual_sim.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_tool_use_tracker.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_validate_file_syntax.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_validate_file_syntax_xml_html.py +0 -0
- {janito-1.9.0 → janito-1.10.0}/tests/test_validate_markdown_syntax.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: janito
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.10.0
|
4
4
|
Summary: Natural Language Coding Agent,
|
5
5
|
Author-email: João Pinto <joao.pinto@gmail.com>
|
6
6
|
License-Expression: MIT
|
@@ -30,38 +30,12 @@ Dynamic: license-file
|
|
30
30
|
|
31
31
|
# 🚀 Janito: Natural Language Coding Agent
|
32
32
|
|
33
|
-
**Current Version: 1.8.1**
|
34
|
-
See [CHANGELOG.md](./CHANGELOG.md) for details on the latest release.
|
35
|
-
|
36
33
|
Janito is an AI-powered assistant for the command line and web that interprets natural language system_prompt_template to edit code, manage files, and analyze projects using patterns and tools designed by experienced software engineers. It prioritizes transparency, interactive clarification, and precise, reviewable changes.
|
37
34
|
|
38
35
|
For a technical overview, see the [Architecture Guide](docs/reference/architecture.md).
|
39
36
|
|
40
|
-
## 🧪 Experimental Feature: termweb File Viewer
|
41
|
-
|
42
|
-
Janito now includes an experimental lightweight web file viewer for use with the CLI chat shell. This feature allows you to click on file paths in the terminal (when using a Rich-compatible terminal) and instantly preview file contents in your browser—no full IDE required!
|
43
|
-
|
44
|
-
### How to Use
|
45
|
-
|
46
|
-
- Start the CLI chat shell with the `--termweb` flag:
|
47
|
-
```bash
|
48
|
-
janito --termweb
|
49
|
-
```
|
50
|
-
- To disable the termweb file viewer, use the `--no-termweb` flag.
|
51
|
-
- By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
|
52
|
-
- To specify a port, use `--termweb-port 8090`.
|
53
|
-
- File paths in CLI output become clickable links that open the file in your browser.
|
54
|
-
|
55
|
-
**Note:** This feature is experimental. It is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
|
56
|
-
|
57
|
-
### Why is this useful?
|
58
|
-
- Enables instant file previews from the CLI without a full IDE.
|
59
|
-
- Works with all Janito file tools and outputs that display file paths.
|
60
|
-
- Uses the Rich library’s link markup for clickable terminal links.
|
61
|
-
|
62
|
-
---
|
63
|
-
|
64
37
|
## 📖 Full Documentation & Overview
|
38
|
+
|
65
39
|
- For structured and in-depth guides, visit the [Janito Documentation Site](https://docs.janito.dev).
|
66
40
|
- For a high-level, user-friendly overview, see [janito.dev](https://janito.dev).
|
67
41
|
|
@@ -80,6 +54,7 @@ This will display a colorful table with the name, description, and parameters of
|
|
80
54
|
## ⚡ Quick Start
|
81
55
|
|
82
56
|
## 🖥️ Supported Human Interfaces
|
57
|
+
|
83
58
|
Janito supports multiple ways for users to interact with the agent:
|
84
59
|
|
85
60
|
- **CLI (Command Line Interface):** Run single prompts or commands directly from your terminal (e.g., `janito "Refactor the data processing module"`).
|
@@ -90,6 +65,7 @@ Janito supports multiple ways for users to interact with the agent:
|
|
90
65
|

|
91
66
|
|
92
67
|
### 🛠️ Common CLI Modifiers
|
68
|
+
|
93
69
|
You can alter Janito's behavior in any interface using these flags:
|
94
70
|
|
95
71
|
- `--system` / `--system-file`: Override or customize the system prompt for the session.
|
@@ -100,13 +76,20 @@ You can alter Janito's behavior in any interface using these flags:
|
|
100
76
|
|
101
77
|
These modifiers can be combined with any interface mode for tailored workflows.
|
102
78
|
|
79
|
+
---
|
80
|
+
|
81
|
+
## 📝 Full CLI Options Reference
|
82
|
+
|
83
|
+
The full list of CLI options has been moved to its own document for clarity. Please see [docs/CLI_OPTIONS.md](docs/CLI_OPTIONS.md) for a comprehensive, up-to-date reference of all supported command-line flags and their descriptions.
|
103
84
|
|
104
85
|
Run a one-off prompt:
|
86
|
+
|
105
87
|
```bash
|
106
88
|
janito "Refactor the data processing module to improve readability."
|
107
89
|
```
|
108
90
|
|
109
91
|
Or start the interactive chat shell:
|
92
|
+
|
110
93
|
```bash
|
111
94
|
janito
|
112
95
|
```
|
@@ -114,6 +97,7 @@ janito
|
|
114
97
|
While in the chat shell, you can use special commands like `/reload` to reload the system prompt from a file without restarting your session. See the documentation for more shell commands.
|
115
98
|
|
116
99
|
Launch the web UI:
|
100
|
+
|
117
101
|
```bash
|
118
102
|
janito --web
|
119
103
|
```
|
@@ -121,25 +105,23 @@ janito --web
|
|
121
105
|
---
|
122
106
|
|
123
107
|
## ✨ Key Features
|
108
|
+
|
124
109
|
- 📝 **Code Editing via Natural Language:** Modify, create, or delete code files simply by describing the changes.
|
125
110
|
- 📁 **File & Directory Management:** Navigate, create, move, or remove files and folders.
|
126
111
|
- 🧠 **Context-Aware:** Understands your project structure for precise edits.
|
127
112
|
- 💬 **Interactive User Prompts:** Asks for clarification when needed.
|
128
113
|
- 🛠️ **Extensible Tooling:** Built-in tools for file operations, shell commands, directory and file management, Python code execution and validation, text replacement, and more.
|
129
|
-
- See [janito/agent/tools/README.md](janito/agent/tools/README.md) for the full list of built-in tools and their usage details. For the message handler model, see [docs/
|
130
|
-
- 🌐 **Web Interface (In Development):** Simple web UI for streaming responses and tool progress.
|
114
|
+
- See [janito/agent/tools/README.md](janito/agent/tools/README.md) for the full list of built-in tools and their usage details. For the message handler model, see [docs/reference/message-handler-model.md](docs/reference/message-handler-model.md).
|
131
115
|
|
132
116
|
## 📦 Installation
|
133
117
|
|
134
118
|
### Requirements
|
135
|
-
- Python 3.10+
|
136
119
|
|
120
|
+
- Python 3.10+
|
137
121
|
|
138
122
|
### Contributing & Developer Guide
|
139
123
|
|
140
|
-
If you want to extend Janito or add new tools, see the [Developer Guide](docs/
|
141
|
-
|
142
|
-
|
124
|
+
If you want to extend Janito or add new tools, see the [Developer Guide](docs/guides/developing.md) for system_prompt_template, tool registration requirements, and code profile guidelines. For the full list of built-in tools and their usage, see the [Tools Reference](janito/agent/tools/README.md).
|
143
125
|
|
144
126
|
For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
|
145
127
|
|
@@ -149,28 +131,27 @@ For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
|
|
149
131
|
|
150
132
|
See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for all configuration parameters, CLI flags, and advanced usage details. All CLI and configuration options have been moved there for clarity and maintainability.
|
151
133
|
|
152
|
-
|
153
134
|
### Obtaining an API Key from OpenRouter
|
154
135
|
|
155
136
|
To use Janito with OpenRouter, you need an API key:
|
156
137
|
|
157
|
-
1. Visit https://
|
138
|
+
1. Visit https://platform.openai.com and sign up for an account.
|
158
139
|
2. After logging in, go to your account dashboard.
|
159
140
|
3. Navigate to the "API Keys" section.
|
160
141
|
4. Click "Create new key" and copy the generated API key.
|
161
142
|
5. Set your API key in Janito using:
|
143
|
+
|
162
144
|
```bash
|
163
145
|
python -m janito --set-api-key YOUR_OPENROUTER_KEY
|
164
146
|
```
|
147
|
+
|
165
148
|
Or add it to your configuration file as `api_key`.
|
166
149
|
|
167
150
|
**Keep your API key secure and do not share it publicly.**
|
168
151
|
|
169
152
|
### Using Azure OpenAI
|
170
153
|
|
171
|
-
For details on using models hosted on Azure OpenAI, see [docs/
|
172
|
-
|
173
|
-
|
154
|
+
For details on using models hosted on Azure OpenAI, see [docs/reference/azure-openai.md](docs/reference/azure-openai.md).
|
174
155
|
|
175
156
|
---
|
176
157
|
|
@@ -179,20 +160,20 @@ For details on using models hosted on Azure OpenAI, see [docs/AZURE_OPENAI.md](d
|
|
179
160
|
Janito operates using a system prompt template that defines its behavior, communication profile, and capabilities. By default, Janito assumes the role of a "software engineer"—this means its responses and actions are tailored to the expectations and best practices of professional software engineering.
|
180
161
|
|
181
162
|
- **Role:** You can customize the agent's role (e.g., "data scientist", "DevOps engineer") using the `--role` flag or config. The default is `software engineer`.
|
182
|
-
- **System Prompt Template:** The system prompt is rendered from a Jinja2 template (see `janito/agent/templates/
|
163
|
+
- **System Prompt Template:** The system prompt is rendered from a Jinja2 template (see `janito/agent/templates/profiles/system_prompt_template_base.txt.j2`). This template governs how the agent interprets system_prompt_template, interacts with files, and communicates with users.
|
183
164
|
- **Customization & Precedence:** Advanced users can override the system prompt with the `--system` flag (raw string), or point to a custom file using `--system-file`. The precedence is: `--system-file` > `--system`/config > default template.
|
184
165
|
|
185
166
|
The default template ensures the agent:
|
167
|
+
|
186
168
|
- Prioritizes safe, reviewable, and minimal changes
|
187
169
|
- Asks for clarification when system_prompt_template are ambiguous
|
188
170
|
- Provides concise plans before taking action
|
189
171
|
- Documents any changes made
|
190
172
|
|
191
|
-
For more details or to customize the prompt, see the template file at `janito/agent/templates/
|
173
|
+
For more details or to customize the prompt, see the template file at `janito/agent/templates/profiles/system_prompt_template_base.txt.j2` and the architecture overview in [docs/reference/architecture.md](docs/reference/architecture.md).
|
192
174
|
|
193
175
|
---
|
194
176
|
|
195
|
-
|
196
177
|
## 🥛 Vanilla Mode
|
197
178
|
|
198
179
|
Janito supports a "vanilla mode" for pure LLM interaction:
|
@@ -214,6 +195,7 @@ python -m janito --vanilla
|
|
214
195
|
```
|
215
196
|
|
216
197
|
Vanilla mode is ideal for:
|
198
|
+
|
217
199
|
- Testing raw model behavior
|
218
200
|
- Comparing LLM output with and without agent guidance
|
219
201
|
- Ensuring no agent-side intervention or context is added
|
@@ -223,12 +205,14 @@ Vanilla mode is ideal for:
|
|
223
205
|
## 👨💻 AgentProfileManager: Profile, Role, and Prompt Management
|
224
206
|
|
225
207
|
Janito now uses a dedicated `AgentProfileManager` class to manage user profiles, roles, interaction profiles, and system prompt selection. This manager:
|
208
|
+
|
226
209
|
- Stores the current role (e.g., "software engineer") and interaction profile (e.g., "default", "technical").
|
227
210
|
- Renders the system prompt from the appropriate template based on interaction profile.
|
228
211
|
- Instantiates and manages the low-level LLM Agent, passing the correct prompt.
|
229
212
|
- Provides methods to update the role, interaction profile, and refresh the prompt at runtime.
|
230
213
|
|
231
214
|
### Multiple System Prompt Templates
|
215
|
+
|
232
216
|
- The system prompt template is now selected based on the interaction profile (e.g., `default` or `technical`).
|
233
217
|
- Templates are located in `janito/agent/templates/` (see `system_prompt_template.j2` and `system_prompt_template_technical.j2`).
|
234
218
|
- You can switch interaction profiles at runtime using the profile manager, enabling different agent behaviors for different user needs.
|
@@ -240,19 +224,24 @@ See `janito/agent/profile_manager.py` for implementation details.
|
|
240
224
|
### Agent Interaction Style
|
241
225
|
|
242
226
|
You can control the agent's behavior and prompt profile globally or per-project using the `profile` config key. See [Prompt Profiles Guide](docs/guides/prompt_profiles.md) for all available styles and combinations.
|
227
|
+
|
243
228
|
- `default`: Concise, general-purpose agent (default)
|
244
229
|
- `technical`: Strict, workflow-oriented for technical/developer use
|
245
230
|
|
246
231
|
Set globally:
|
232
|
+
|
247
233
|
```bash
|
248
234
|
janito --set-global-config profile=technical
|
249
235
|
```
|
236
|
+
|
250
237
|
Or per-project (in your project root):
|
238
|
+
|
251
239
|
```bash
|
252
240
|
janito --set-local-config profile=technical
|
253
241
|
```
|
254
242
|
|
255
243
|
You can also override for a session with the CLI flag:
|
244
|
+
|
256
245
|
```bash
|
257
246
|
janito --profile technical
|
258
247
|
```
|
@@ -268,11 +257,13 @@ Janito now supports combinatorial profiles for system prompts, allowing you to c
|
|
268
257
|
- **Syntax:** Use a hyphen to combine, e.g., `technical-commit_all`.
|
269
258
|
|
270
259
|
**How it works:**
|
260
|
+
|
271
261
|
- The main profile template is loaded first.
|
272
262
|
- Each feature extension template is layered on top, overriding or extending specific blocks in the main template.
|
273
263
|
- Feature templates must use `{% extends parent_template %}` for dynamic inheritance.
|
274
264
|
|
275
265
|
**Example usage:**
|
266
|
+
|
276
267
|
```bash
|
277
268
|
janito --profile technical-commit_all
|
278
269
|
```
|
@@ -281,5 +272,33 @@ This will apply the `technical` profile with the `commit_all` feature enabled in
|
|
281
272
|
|
282
273
|
See `janito/render_prompt.py` and `janito/agent/templates/` for implementation details and to create your own feature extensions.
|
283
274
|
|
275
|
+
---
|
276
|
+
|
277
|
+
## 📂 termweb File Viewer (Web File Preview)
|
278
|
+
|
279
|
+
Janito includes a lightweight web file viewer (termweb) that starts by default when you use the CLI chat shell. This feature allows you to click on file paths in the terminal (when using a Rich-compatible terminal) and instantly preview file contents in your browser—no full IDE required!
|
280
|
+
|
281
|
+
### How to Use
|
282
|
+
|
283
|
+
- Start the CLI chat shell normally:
|
284
|
+
|
285
|
+
```bash
|
286
|
+
janito
|
287
|
+
```
|
288
|
+
|
289
|
+
- The termweb file viewer will start automatically by default.
|
290
|
+
- To disable the termweb file viewer, use the `--no-termweb` flag.
|
291
|
+
- By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
|
292
|
+
- To specify a port, use `--termweb-port 8090`.
|
293
|
+
- File paths in CLI output become clickable links that open the file in your browser.
|
294
|
+
|
295
|
+
**Note:** The termweb file viewer is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
|
296
|
+
|
297
|
+
### Why is this useful?
|
298
|
+
|
299
|
+
- Enables instant file previews from the CLI without a full IDE.
|
300
|
+
- Works with all Janito file tools and outputs that display file paths.
|
301
|
+
- Uses the Rich library’s link markup for clickable terminal links.
|
302
|
+
|
284
303
|
---
|
285
304
|
_generated by janito.dev_
|
@@ -1,37 +1,11 @@
|
|
1
1
|
# 🚀 Janito: Natural Language Coding Agent
|
2
2
|
|
3
|
-
**Current Version: 1.8.1**
|
4
|
-
See [CHANGELOG.md](./CHANGELOG.md) for details on the latest release.
|
5
|
-
|
6
3
|
Janito is an AI-powered assistant for the command line and web that interprets natural language system_prompt_template to edit code, manage files, and analyze projects using patterns and tools designed by experienced software engineers. It prioritizes transparency, interactive clarification, and precise, reviewable changes.
|
7
4
|
|
8
5
|
For a technical overview, see the [Architecture Guide](docs/reference/architecture.md).
|
9
6
|
|
10
|
-
## 🧪 Experimental Feature: termweb File Viewer
|
11
|
-
|
12
|
-
Janito now includes an experimental lightweight web file viewer for use with the CLI chat shell. This feature allows you to click on file paths in the terminal (when using a Rich-compatible terminal) and instantly preview file contents in your browser—no full IDE required!
|
13
|
-
|
14
|
-
### How to Use
|
15
|
-
|
16
|
-
- Start the CLI chat shell with the `--termweb` flag:
|
17
|
-
```bash
|
18
|
-
janito --termweb
|
19
|
-
```
|
20
|
-
- To disable the termweb file viewer, use the `--no-termweb` flag.
|
21
|
-
- By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
|
22
|
-
- To specify a port, use `--termweb-port 8090`.
|
23
|
-
- File paths in CLI output become clickable links that open the file in your browser.
|
24
|
-
|
25
|
-
**Note:** This feature is experimental. It is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
|
26
|
-
|
27
|
-
### Why is this useful?
|
28
|
-
- Enables instant file previews from the CLI without a full IDE.
|
29
|
-
- Works with all Janito file tools and outputs that display file paths.
|
30
|
-
- Uses the Rich library’s link markup for clickable terminal links.
|
31
|
-
|
32
|
-
---
|
33
|
-
|
34
7
|
## 📖 Full Documentation & Overview
|
8
|
+
|
35
9
|
- For structured and in-depth guides, visit the [Janito Documentation Site](https://docs.janito.dev).
|
36
10
|
- For a high-level, user-friendly overview, see [janito.dev](https://janito.dev).
|
37
11
|
|
@@ -50,6 +24,7 @@ This will display a colorful table with the name, description, and parameters of
|
|
50
24
|
## ⚡ Quick Start
|
51
25
|
|
52
26
|
## 🖥️ Supported Human Interfaces
|
27
|
+
|
53
28
|
Janito supports multiple ways for users to interact with the agent:
|
54
29
|
|
55
30
|
- **CLI (Command Line Interface):** Run single prompts or commands directly from your terminal (e.g., `janito "Refactor the data processing module"`).
|
@@ -60,6 +35,7 @@ Janito supports multiple ways for users to interact with the agent:
|
|
60
35
|

|
61
36
|
|
62
37
|
### 🛠️ Common CLI Modifiers
|
38
|
+
|
63
39
|
You can alter Janito's behavior in any interface using these flags:
|
64
40
|
|
65
41
|
- `--system` / `--system-file`: Override or customize the system prompt for the session.
|
@@ -70,13 +46,20 @@ You can alter Janito's behavior in any interface using these flags:
|
|
70
46
|
|
71
47
|
These modifiers can be combined with any interface mode for tailored workflows.
|
72
48
|
|
49
|
+
---
|
50
|
+
|
51
|
+
## 📝 Full CLI Options Reference
|
52
|
+
|
53
|
+
The full list of CLI options has been moved to its own document for clarity. Please see [docs/CLI_OPTIONS.md](docs/CLI_OPTIONS.md) for a comprehensive, up-to-date reference of all supported command-line flags and their descriptions.
|
73
54
|
|
74
55
|
Run a one-off prompt:
|
56
|
+
|
75
57
|
```bash
|
76
58
|
janito "Refactor the data processing module to improve readability."
|
77
59
|
```
|
78
60
|
|
79
61
|
Or start the interactive chat shell:
|
62
|
+
|
80
63
|
```bash
|
81
64
|
janito
|
82
65
|
```
|
@@ -84,6 +67,7 @@ janito
|
|
84
67
|
While in the chat shell, you can use special commands like `/reload` to reload the system prompt from a file without restarting your session. See the documentation for more shell commands.
|
85
68
|
|
86
69
|
Launch the web UI:
|
70
|
+
|
87
71
|
```bash
|
88
72
|
janito --web
|
89
73
|
```
|
@@ -91,25 +75,23 @@ janito --web
|
|
91
75
|
---
|
92
76
|
|
93
77
|
## ✨ Key Features
|
78
|
+
|
94
79
|
- 📝 **Code Editing via Natural Language:** Modify, create, or delete code files simply by describing the changes.
|
95
80
|
- 📁 **File & Directory Management:** Navigate, create, move, or remove files and folders.
|
96
81
|
- 🧠 **Context-Aware:** Understands your project structure for precise edits.
|
97
82
|
- 💬 **Interactive User Prompts:** Asks for clarification when needed.
|
98
83
|
- 🛠️ **Extensible Tooling:** Built-in tools for file operations, shell commands, directory and file management, Python code execution and validation, text replacement, and more.
|
99
|
-
- See [janito/agent/tools/README.md](janito/agent/tools/README.md) for the full list of built-in tools and their usage details. For the message handler model, see [docs/
|
100
|
-
- 🌐 **Web Interface (In Development):** Simple web UI for streaming responses and tool progress.
|
84
|
+
- See [janito/agent/tools/README.md](janito/agent/tools/README.md) for the full list of built-in tools and their usage details. For the message handler model, see [docs/reference/message-handler-model.md](docs/reference/message-handler-model.md).
|
101
85
|
|
102
86
|
## 📦 Installation
|
103
87
|
|
104
88
|
### Requirements
|
105
|
-
- Python 3.10+
|
106
89
|
|
90
|
+
- Python 3.10+
|
107
91
|
|
108
92
|
### Contributing & Developer Guide
|
109
93
|
|
110
|
-
If you want to extend Janito or add new tools, see the [Developer Guide](docs/
|
111
|
-
|
112
|
-
|
94
|
+
If you want to extend Janito or add new tools, see the [Developer Guide](docs/guides/developing.md) for system_prompt_template, tool registration requirements, and code profile guidelines. For the full list of built-in tools and their usage, see the [Tools Reference](janito/agent/tools/README.md).
|
113
95
|
|
114
96
|
For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
|
115
97
|
|
@@ -119,28 +101,27 @@ For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
|
|
119
101
|
|
120
102
|
See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for all configuration parameters, CLI flags, and advanced usage details. All CLI and configuration options have been moved there for clarity and maintainability.
|
121
103
|
|
122
|
-
|
123
104
|
### Obtaining an API Key from OpenRouter
|
124
105
|
|
125
106
|
To use Janito with OpenRouter, you need an API key:
|
126
107
|
|
127
|
-
1. Visit https://
|
108
|
+
1. Visit https://platform.openai.com and sign up for an account.
|
128
109
|
2. After logging in, go to your account dashboard.
|
129
110
|
3. Navigate to the "API Keys" section.
|
130
111
|
4. Click "Create new key" and copy the generated API key.
|
131
112
|
5. Set your API key in Janito using:
|
113
|
+
|
132
114
|
```bash
|
133
115
|
python -m janito --set-api-key YOUR_OPENROUTER_KEY
|
134
116
|
```
|
117
|
+
|
135
118
|
Or add it to your configuration file as `api_key`.
|
136
119
|
|
137
120
|
**Keep your API key secure and do not share it publicly.**
|
138
121
|
|
139
122
|
### Using Azure OpenAI
|
140
123
|
|
141
|
-
For details on using models hosted on Azure OpenAI, see [docs/
|
142
|
-
|
143
|
-
|
124
|
+
For details on using models hosted on Azure OpenAI, see [docs/reference/azure-openai.md](docs/reference/azure-openai.md).
|
144
125
|
|
145
126
|
---
|
146
127
|
|
@@ -149,20 +130,20 @@ For details on using models hosted on Azure OpenAI, see [docs/AZURE_OPENAI.md](d
|
|
149
130
|
Janito operates using a system prompt template that defines its behavior, communication profile, and capabilities. By default, Janito assumes the role of a "software engineer"—this means its responses and actions are tailored to the expectations and best practices of professional software engineering.
|
150
131
|
|
151
132
|
- **Role:** You can customize the agent's role (e.g., "data scientist", "DevOps engineer") using the `--role` flag or config. The default is `software engineer`.
|
152
|
-
- **System Prompt Template:** The system prompt is rendered from a Jinja2 template (see `janito/agent/templates/
|
133
|
+
- **System Prompt Template:** The system prompt is rendered from a Jinja2 template (see `janito/agent/templates/profiles/system_prompt_template_base.txt.j2`). This template governs how the agent interprets system_prompt_template, interacts with files, and communicates with users.
|
153
134
|
- **Customization & Precedence:** Advanced users can override the system prompt with the `--system` flag (raw string), or point to a custom file using `--system-file`. The precedence is: `--system-file` > `--system`/config > default template.
|
154
135
|
|
155
136
|
The default template ensures the agent:
|
137
|
+
|
156
138
|
- Prioritizes safe, reviewable, and minimal changes
|
157
139
|
- Asks for clarification when system_prompt_template are ambiguous
|
158
140
|
- Provides concise plans before taking action
|
159
141
|
- Documents any changes made
|
160
142
|
|
161
|
-
For more details or to customize the prompt, see the template file at `janito/agent/templates/
|
143
|
+
For more details or to customize the prompt, see the template file at `janito/agent/templates/profiles/system_prompt_template_base.txt.j2` and the architecture overview in [docs/reference/architecture.md](docs/reference/architecture.md).
|
162
144
|
|
163
145
|
---
|
164
146
|
|
165
|
-
|
166
147
|
## 🥛 Vanilla Mode
|
167
148
|
|
168
149
|
Janito supports a "vanilla mode" for pure LLM interaction:
|
@@ -184,6 +165,7 @@ python -m janito --vanilla
|
|
184
165
|
```
|
185
166
|
|
186
167
|
Vanilla mode is ideal for:
|
168
|
+
|
187
169
|
- Testing raw model behavior
|
188
170
|
- Comparing LLM output with and without agent guidance
|
189
171
|
- Ensuring no agent-side intervention or context is added
|
@@ -193,12 +175,14 @@ Vanilla mode is ideal for:
|
|
193
175
|
## 👨💻 AgentProfileManager: Profile, Role, and Prompt Management
|
194
176
|
|
195
177
|
Janito now uses a dedicated `AgentProfileManager` class to manage user profiles, roles, interaction profiles, and system prompt selection. This manager:
|
178
|
+
|
196
179
|
- Stores the current role (e.g., "software engineer") and interaction profile (e.g., "default", "technical").
|
197
180
|
- Renders the system prompt from the appropriate template based on interaction profile.
|
198
181
|
- Instantiates and manages the low-level LLM Agent, passing the correct prompt.
|
199
182
|
- Provides methods to update the role, interaction profile, and refresh the prompt at runtime.
|
200
183
|
|
201
184
|
### Multiple System Prompt Templates
|
185
|
+
|
202
186
|
- The system prompt template is now selected based on the interaction profile (e.g., `default` or `technical`).
|
203
187
|
- Templates are located in `janito/agent/templates/` (see `system_prompt_template.j2` and `system_prompt_template_technical.j2`).
|
204
188
|
- You can switch interaction profiles at runtime using the profile manager, enabling different agent behaviors for different user needs.
|
@@ -210,19 +194,24 @@ See `janito/agent/profile_manager.py` for implementation details.
|
|
210
194
|
### Agent Interaction Style
|
211
195
|
|
212
196
|
You can control the agent's behavior and prompt profile globally or per-project using the `profile` config key. See [Prompt Profiles Guide](docs/guides/prompt_profiles.md) for all available styles and combinations.
|
197
|
+
|
213
198
|
- `default`: Concise, general-purpose agent (default)
|
214
199
|
- `technical`: Strict, workflow-oriented for technical/developer use
|
215
200
|
|
216
201
|
Set globally:
|
202
|
+
|
217
203
|
```bash
|
218
204
|
janito --set-global-config profile=technical
|
219
205
|
```
|
206
|
+
|
220
207
|
Or per-project (in your project root):
|
208
|
+
|
221
209
|
```bash
|
222
210
|
janito --set-local-config profile=technical
|
223
211
|
```
|
224
212
|
|
225
213
|
You can also override for a session with the CLI flag:
|
214
|
+
|
226
215
|
```bash
|
227
216
|
janito --profile technical
|
228
217
|
```
|
@@ -238,11 +227,13 @@ Janito now supports combinatorial profiles for system prompts, allowing you to c
|
|
238
227
|
- **Syntax:** Use a hyphen to combine, e.g., `technical-commit_all`.
|
239
228
|
|
240
229
|
**How it works:**
|
230
|
+
|
241
231
|
- The main profile template is loaded first.
|
242
232
|
- Each feature extension template is layered on top, overriding or extending specific blocks in the main template.
|
243
233
|
- Feature templates must use `{% extends parent_template %}` for dynamic inheritance.
|
244
234
|
|
245
235
|
**Example usage:**
|
236
|
+
|
246
237
|
```bash
|
247
238
|
janito --profile technical-commit_all
|
248
239
|
```
|
@@ -251,5 +242,33 @@ This will apply the `technical` profile with the `commit_all` feature enabled in
|
|
251
242
|
|
252
243
|
See `janito/render_prompt.py` and `janito/agent/templates/` for implementation details and to create your own feature extensions.
|
253
244
|
|
245
|
+
---
|
246
|
+
|
247
|
+
## 📂 termweb File Viewer (Web File Preview)
|
248
|
+
|
249
|
+
Janito includes a lightweight web file viewer (termweb) that starts by default when you use the CLI chat shell. This feature allows you to click on file paths in the terminal (when using a Rich-compatible terminal) and instantly preview file contents in your browser—no full IDE required!
|
250
|
+
|
251
|
+
### How to Use
|
252
|
+
|
253
|
+
- Start the CLI chat shell normally:
|
254
|
+
|
255
|
+
```bash
|
256
|
+
janito
|
257
|
+
```
|
258
|
+
|
259
|
+
- The termweb file viewer will start automatically by default.
|
260
|
+
- To disable the termweb file viewer, use the `--no-termweb` flag.
|
261
|
+
- By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
|
262
|
+
- To specify a port, use `--termweb-port 8090`.
|
263
|
+
- File paths in CLI output become clickable links that open the file in your browser.
|
264
|
+
|
265
|
+
**Note:** The termweb file viewer is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
|
266
|
+
|
267
|
+
### Why is this useful?
|
268
|
+
|
269
|
+
- Enables instant file previews from the CLI without a full IDE.
|
270
|
+
- Works with all Janito file tools and outputs that display file paths.
|
271
|
+
- Uses the Rich library’s link markup for clickable terminal links.
|
272
|
+
|
254
273
|
---
|
255
274
|
_generated by janito.dev_
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "1.10.0-dev"
|
@@ -55,7 +55,7 @@ class FileConfig(BaseConfig):
|
|
55
55
|
CONFIG_OPTIONS = {
|
56
56
|
"api_key": "API key for OpenAI-compatible service (required)",
|
57
57
|
"trust": "Trust mode: suppress all console output (bool, default: False)",
|
58
|
-
"model": "Model name to use (e.g., '
|
58
|
+
"model": "Model name to use (e.g., 'gpt-4.1')",
|
59
59
|
"base_url": "API base URL (OpenAI-compatible endpoint)",
|
60
60
|
"role": "Role description for the Agent Profile (e.g., 'software engineer')",
|
61
61
|
"system_prompt_template": "Override the entire Agent Profile prompt text",
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Centralized config defaults for Janito
|
2
|
+
CONFIG_DEFAULTS = {
|
3
|
+
"api_key": None, # Must be set by user
|
4
|
+
"model": "gpt-4.1", # Default model
|
5
|
+
"role": "software developer", # Part of the Agent Profile
|
6
|
+
"system_prompt_template": None, # None means auto-generate from Agent Profile role
|
7
|
+
"temperature": 0.2,
|
8
|
+
"max_tokens": 32000,
|
9
|
+
"use_azure_openai": False,
|
10
|
+
"azure_openai_api_version": "2023-05-15",
|
11
|
+
"profile": "base",
|
12
|
+
}
|