janito 1.8.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.
Files changed (228) hide show
  1. {janito-1.8.0/janito.egg-info → janito-1.10.0}/PKG-INFO +63 -41
  2. {janito-1.8.0 → janito-1.10.0}/README.md +61 -40
  3. janito-1.10.0/janito/__init__.py +1 -0
  4. janito-1.10.0/janito/agent/api_exceptions.py +4 -0
  5. {janito-1.8.0 → janito-1.10.0}/janito/agent/config.py +1 -1
  6. {janito-1.8.0 → janito-1.10.0}/janito/agent/config_defaults.py +2 -3
  7. janito-1.10.0/janito/agent/conversation.py +238 -0
  8. janito-1.10.0/janito/agent/conversation_api.py +218 -0
  9. {janito-1.8.0 → janito-1.10.0}/janito/agent/conversation_tool_calls.py +11 -8
  10. janito-1.10.0/janito/agent/llm_conversation_history.py +70 -0
  11. {janito-1.8.0 → janito-1.10.0}/janito/agent/openai_client.py +44 -21
  12. janito-1.10.0/janito/agent/openai_schema_generator.py +187 -0
  13. janito-1.10.0/janito/agent/platform_discovery.py +147 -0
  14. {janito-1.8.0 → janito-1.10.0}/janito/agent/profile_manager.py +5 -5
  15. janito-1.10.0/janito/agent/rich_message_handler.py +115 -0
  16. janito-1.10.0/janito/agent/templates/profiles/system_prompt_template_base.txt.j2 +15 -0
  17. janito-1.10.0/janito/agent/test_openai_schema_generator.py +93 -0
  18. {janito-1.8.0 → janito-1.10.0}/janito/agent/tool_base.py +7 -2
  19. janito-1.10.0/janito/agent/tool_executor.py +122 -0
  20. {janito-1.8.0 → janito-1.10.0}/janito/agent/tool_registry.py +5 -2
  21. janito-1.10.0/janito/agent/tool_use_tracker.py +83 -0
  22. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/__init__.py +13 -12
  23. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/create_directory.py +9 -6
  24. janito-1.10.0/janito/agent/tools/create_file.py +59 -0
  25. janito-1.10.0/janito/agent/tools/delete_text_in_file.py +97 -0
  26. janito-1.10.0/janito/agent/tools/fetch_url.py +98 -0
  27. janito-1.10.0/janito/agent/tools/find_files.py +83 -0
  28. janito-1.10.0/janito/agent/tools/get_file_outline/__init__.py +1 -0
  29. janito-1.8.0/janito/agent/tools/outline_file/__init__.py → janito-1.10.0/janito/agent/tools/get_file_outline/core.py +14 -18
  30. janito-1.10.0/janito/agent/tools/get_file_outline/python_outline.py +134 -0
  31. {janito-1.8.0/janito/agent/tools → janito-1.10.0/janito/agent/tools/get_file_outline}/search_outline.py +11 -0
  32. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/get_lines.py +21 -12
  33. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/move_file.py +13 -12
  34. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/present_choices.py +3 -1
  35. janito-1.10.0/janito/agent/tools/python_command_runner.py +150 -0
  36. janito-1.10.0/janito/agent/tools/python_file_runner.py +148 -0
  37. janito-1.10.0/janito/agent/tools/python_stdin_runner.py +154 -0
  38. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/remove_directory.py +4 -2
  39. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/remove_file.py +15 -13
  40. janito-1.10.0/janito/agent/tools/replace_file.py +72 -0
  41. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/replace_text_in_file.py +7 -5
  42. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/run_bash_command.py +29 -72
  43. janito-1.10.0/janito/agent/tools/run_powershell_command.py +209 -0
  44. janito-1.10.0/janito/agent/tools/search_text.py +254 -0
  45. janito-1.10.0/janito/agent/tools/validate_file_syntax/__init__.py +1 -0
  46. janito-1.10.0/janito/agent/tools/validate_file_syntax/core.py +94 -0
  47. janito-1.10.0/janito/agent/tools/validate_file_syntax/css_validator.py +35 -0
  48. janito-1.10.0/janito/agent/tools/validate_file_syntax/html_validator.py +77 -0
  49. janito-1.10.0/janito/agent/tools/validate_file_syntax/js_validator.py +27 -0
  50. janito-1.10.0/janito/agent/tools/validate_file_syntax/json_validator.py +6 -0
  51. janito-1.10.0/janito/agent/tools/validate_file_syntax/markdown_validator.py +66 -0
  52. janito-1.10.0/janito/agent/tools/validate_file_syntax/ps1_validator.py +32 -0
  53. janito-1.10.0/janito/agent/tools/validate_file_syntax/python_validator.py +5 -0
  54. janito-1.10.0/janito/agent/tools/validate_file_syntax/xml_validator.py +11 -0
  55. janito-1.10.0/janito/agent/tools/validate_file_syntax/yaml_validator.py +6 -0
  56. janito-1.10.0/janito/agent/tools_utils/__init__.py +1 -0
  57. janito-1.10.0/janito/agent/tools_utils/action_type.py +7 -0
  58. janito-1.10.0/janito/agent/tools_utils/dir_walk_utils.py +24 -0
  59. janito-1.10.0/janito/agent/tools_utils/formatting.py +49 -0
  60. janito-1.10.0/janito/agent/tools_utils/gitignore_utils.py +69 -0
  61. janito-1.10.0/janito/agent/tools_utils/test_gitignore_utils.py +46 -0
  62. janito-1.10.0/janito/agent/tools_utils/utils.py +30 -0
  63. janito-1.10.0/janito/cli/_livereload_log_utils.py +13 -0
  64. janito-1.10.0/janito/cli/_print_config.py +96 -0
  65. {janito-1.8.0 → janito-1.10.0}/janito/cli/arg_parser.py +57 -14
  66. janito-1.10.0/janito/cli/cli_main.py +270 -0
  67. janito-1.10.0/janito/cli/livereload_starter.py +60 -0
  68. janito-1.10.0/janito/cli/main.py +202 -0
  69. janito-1.10.0/janito/cli/one_shot.py +80 -0
  70. {janito-1.8.0 → janito-1.10.0}/janito/cli/termweb_starter.py +2 -2
  71. {janito-1.8.0 → janito-1.10.0}/janito/i18n/__init__.py +1 -1
  72. janito-1.10.0/janito/livereload/app.py +25 -0
  73. janito-1.10.0/janito/rich_utils.py +59 -0
  74. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/__init__.py +19 -14
  75. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/config.py +4 -4
  76. janito-1.10.0/janito/shell/commands/conversation_restart.py +74 -0
  77. janito-1.10.0/janito/shell/commands/edit.py +24 -0
  78. janito-1.10.0/janito/shell/commands/history_view.py +18 -0
  79. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/lang.py +3 -0
  80. janito-1.10.0/janito/shell/commands/livelogs.py +42 -0
  81. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/prompt.py +16 -6
  82. janito-1.10.0/janito/shell/commands/session.py +35 -0
  83. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/session_control.py +3 -5
  84. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/termweb_log.py +18 -10
  85. janito-1.10.0/janito/shell/commands/tools.py +26 -0
  86. janito-1.10.0/janito/shell/commands/track.py +36 -0
  87. janito-1.10.0/janito/shell/commands/utility.py +28 -0
  88. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/commands/verbose.py +4 -5
  89. janito-1.10.0/janito/shell/commands.py +40 -0
  90. janito-1.10.0/janito/shell/input_history.py +62 -0
  91. janito-1.10.0/janito/shell/main.py +257 -0
  92. janito-1.8.0/janito/cli_chat_shell/shell_command_completer.py → janito-1.10.0/janito/shell/prompt/completer.py +1 -1
  93. janito-1.8.0/janito/cli_chat_shell/chat_ui.py → janito-1.10.0/janito/shell/prompt/session_setup.py +19 -5
  94. janito-1.10.0/janito/shell/session/manager.py +101 -0
  95. janito-1.8.0/janito/cli_chat_shell/ui.py → janito-1.10.0/janito/shell/ui/interactive.py +23 -17
  96. {janito-1.8.0 → janito-1.10.0}/janito/termweb/app.py +3 -3
  97. janito-1.10.0/janito/termweb/static/editor.css +142 -0
  98. janito-1.10.0/janito/termweb/static/editor.css.bak +27 -0
  99. janito-1.10.0/janito/termweb/static/editor.html +40 -0
  100. janito-1.10.0/janito/termweb/static/editor.html.bak +39 -0
  101. janito-1.10.0/janito/termweb/static/editor.js +209 -0
  102. janito-1.10.0/janito/termweb/static/editor.js.bak +227 -0
  103. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/index.html +2 -3
  104. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/index.html.bak +2 -3
  105. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/termweb.css.bak +33 -84
  106. janito-1.8.0/janito/termweb/static/termweb.js.bak → janito-1.10.0/janito/termweb/static/termweb.js +18 -37
  107. janito-1.8.0/janito/termweb/static/termweb.js → janito-1.10.0/janito/termweb/static/termweb.js.bak +15 -33
  108. janito-1.10.0/janito/tests/test_rich_utils.py +44 -0
  109. janito-1.10.0/janito/web/__init__.py +0 -0
  110. {janito-1.8.0 → janito-1.10.0}/janito/web/app.py +0 -75
  111. {janito-1.8.0 → janito-1.10.0/janito.egg-info}/PKG-INFO +63 -41
  112. {janito-1.8.0 → janito-1.10.0}/janito.egg-info/SOURCES.txt +82 -42
  113. {janito-1.8.0 → janito-1.10.0}/janito.egg-info/requires.txt +1 -0
  114. {janito-1.8.0 → janito-1.10.0}/pyproject.toml +11 -2
  115. janito-1.10.0/tests/test_find_files.py +55 -0
  116. janito-1.10.0/tests/test_outline_formatter.py +49 -0
  117. janito-1.10.0/tests/test_outline_no_overlap.py +31 -0
  118. janito-1.10.0/tests/test_outline_python_file.py +35 -0
  119. janito-1.10.0/tests/test_outline_python_file_complex.py +52 -0
  120. janito-1.10.0/tests/test_outline_tool_run.py +46 -0
  121. janito-1.10.0/tests/test_platform_discovery.py +37 -0
  122. janito-1.10.0/tests/test_python_command_runner.py +23 -0
  123. janito-1.10.0/tests/test_python_file_runner.py +29 -0
  124. janito-1.10.0/tests/test_python_stdin_runner.py +23 -0
  125. janito-1.10.0/tests/test_rich_message_handler_action_type.py +39 -0
  126. janito-1.10.0/tests/test_search_text.py +29 -0
  127. {janito-1.8.0 → janito-1.10.0}/tests/test_set_role.py +1 -1
  128. {janito-1.8.0 → janito-1.10.0}/tests/test_tool_registry_docstring_formats.py +4 -4
  129. {janito-1.8.0 → janito-1.10.0}/tests/test_tool_registry_manual_sim.py +1 -1
  130. {janito-1.8.0 → janito-1.10.0}/tests/test_tool_registry_validation.py +9 -6
  131. {janito-1.8.0 → janito-1.10.0}/tests/test_tool_use_tracker.py +7 -7
  132. {janito-1.8.0 → janito-1.10.0}/tests/test_validate_file_syntax.py +1 -1
  133. {janito-1.8.0 → janito-1.10.0}/tests/test_validate_file_syntax_xml_html.py +2 -2
  134. {janito-1.8.0 → janito-1.10.0}/tests/test_validate_markdown_syntax.py +1 -1
  135. janito-1.8.0/janito/__init__.py +0 -1
  136. janito-1.8.0/janito/agent/config_utils.py +0 -9
  137. janito-1.8.0/janito/agent/conversation.py +0 -175
  138. janito-1.8.0/janito/agent/conversation_api.py +0 -198
  139. janito-1.8.0/janito/agent/openai_schema_generator.py +0 -151
  140. janito-1.8.0/janito/agent/platform_discovery.py +0 -90
  141. janito-1.8.0/janito/agent/rich_message_handler.py +0 -66
  142. janito-1.8.0/janito/agent/templates/profiles/system_prompt_template_base.txt.j2 +0 -14
  143. janito-1.8.0/janito/agent/tool_executor.py +0 -109
  144. janito-1.8.0/janito/agent/tool_use_tracker.py +0 -46
  145. janito-1.8.0/janito/agent/tools/create_file.py +0 -78
  146. janito-1.8.0/janito/agent/tools/dir_walk_utils.py +0 -16
  147. janito-1.8.0/janito/agent/tools/fetch_url.py +0 -53
  148. janito-1.8.0/janito/agent/tools/find_files.py +0 -69
  149. janito-1.8.0/janito/agent/tools/gitignore_utils.py +0 -46
  150. janito-1.8.0/janito/agent/tools/memory.py +0 -48
  151. janito-1.8.0/janito/agent/tools/outline_file/formatting.py +0 -20
  152. janito-1.8.0/janito/agent/tools/outline_file/python_outline.py +0 -71
  153. janito-1.8.0/janito/agent/tools/present_choices_test.py +0 -18
  154. janito-1.8.0/janito/agent/tools/rich_live.py +0 -44
  155. janito-1.8.0/janito/agent/tools/run_powershell_command.py +0 -169
  156. janito-1.8.0/janito/agent/tools/run_python_command.py +0 -163
  157. janito-1.8.0/janito/agent/tools/search_text.py +0 -208
  158. janito-1.8.0/janito/agent/tools/tools_utils.py +0 -56
  159. janito-1.8.0/janito/agent/tools/utils.py +0 -33
  160. janito-1.8.0/janito/agent/tools/validate_file_syntax.py +0 -163
  161. janito-1.8.0/janito/cli/_print_config.py +0 -94
  162. janito-1.8.0/janito/cli/main.py +0 -135
  163. janito-1.8.0/janito/cli/runner/cli_main.py +0 -180
  164. janito-1.8.0/janito/cli_chat_shell/chat_loop.py +0 -163
  165. janito-1.8.0/janito/cli_chat_shell/chat_state.py +0 -38
  166. janito-1.8.0/janito/cli_chat_shell/commands/history_start.py +0 -37
  167. janito-1.8.0/janito/cli_chat_shell/commands/session.py +0 -48
  168. janito-1.8.0/janito/cli_chat_shell/commands/sum.py +0 -49
  169. janito-1.8.0/janito/cli_chat_shell/commands/utility.py +0 -32
  170. janito-1.8.0/janito/cli_chat_shell/session_manager.py +0 -72
  171. janito-1.8.0/janito/rich_utils.py +0 -43
  172. janito-1.8.0/janito/termweb/static/editor.html +0 -238
  173. janito-1.8.0/janito/termweb/static/editor.html.bak +0 -238
  174. janito-1.8.0/tests/test_memory_tool.py +0 -49
  175. janito-1.8.0/tests/test_sum_command.py +0 -46
  176. janito-1.8.0/tests/test_tools.py +0 -137
  177. {janito-1.8.0 → janito-1.10.0}/LICENSE +0 -0
  178. {janito-1.8.0 → janito-1.10.0}/MANIFEST.in +0 -0
  179. {janito-1.8.0 → janito-1.10.0}/janito/__main__.py +0 -0
  180. {janito-1.8.0 → janito-1.10.0}/janito/agent/__init__.py +0 -0
  181. /janito-1.8.0/janito/agent/content_handler.py → /janito-1.10.0/janito/agent/config_utils.py +0 -0
  182. /janito-1.8.0/janito/cli/__init__.py → /janito-1.10.0/janito/agent/content_handler.py +0 -0
  183. {janito-1.8.0 → janito-1.10.0}/janito/agent/conversation_exceptions.py +0 -0
  184. {janito-1.8.0 → janito-1.10.0}/janito/agent/conversation_ui.py +0 -0
  185. {janito-1.8.0 → janito-1.10.0}/janito/agent/event.py +0 -0
  186. {janito-1.8.0 → janito-1.10.0}/janito/agent/event_dispatcher.py +0 -0
  187. {janito-1.8.0 → janito-1.10.0}/janito/agent/event_handler_protocol.py +0 -0
  188. {janito-1.8.0 → janito-1.10.0}/janito/agent/event_system.py +0 -0
  189. {janito-1.8.0 → janito-1.10.0}/janito/agent/message_handler.py +0 -0
  190. {janito-1.8.0 → janito-1.10.0}/janito/agent/message_handler_protocol.py +0 -0
  191. {janito-1.8.0 → janito-1.10.0}/janito/agent/queued_message_handler.py +0 -0
  192. {janito-1.8.0 → janito-1.10.0}/janito/agent/rich_live.py +0 -0
  193. {janito-1.8.0 → janito-1.10.0}/janito/agent/runtime_config.py +0 -0
  194. {janito-1.8.0 → janito-1.10.0}/janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2 +0 -0
  195. {janito-1.8.0 → janito-1.10.0}/janito/agent/test_handler_protocols.py +0 -0
  196. {janito-1.8.0 → janito-1.10.0}/janito/agent/tests/__init__.py +0 -0
  197. {janito-1.8.0 → janito-1.10.0}/janito/agent/tools/ask_user.py +0 -0
  198. {janito-1.8.0/janito/agent/tools/outline_file → janito-1.10.0/janito/agent/tools/get_file_outline}/markdown_outline.py +0 -0
  199. {janito-1.8.0/janito/cli/runner → janito-1.10.0/janito/cli}/__init__.py +0 -0
  200. {janito-1.8.0/janito/cli/runner → janito-1.10.0/janito/cli}/_termweb_log_utils.py +0 -0
  201. {janito-1.8.0 → janito-1.10.0}/janito/cli/_utils.py +0 -0
  202. {janito-1.8.0 → janito-1.10.0}/janito/cli/config_commands.py +0 -0
  203. /janito-1.8.0/janito/cli/runner/config.py → /janito-1.10.0/janito/cli/config_runner.py +0 -0
  204. /janito-1.8.0/janito/cli/runner/formatting.py → /janito-1.10.0/janito/cli/formatting_runner.py +0 -0
  205. {janito-1.8.0 → janito-1.10.0}/janito/cli/logging_setup.py +0 -0
  206. {janito-1.8.0 → janito-1.10.0}/janito/i18n/messages.py +0 -0
  207. {janito-1.8.0 → janito-1.10.0}/janito/i18n/pt.py +0 -0
  208. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell}/__init__.py +0 -0
  209. {janito-1.8.0/janito/cli_chat_shell → janito-1.10.0/janito/shell/prompt}/load_prompt.py +0 -0
  210. /janito-1.8.0/janito/cli_chat_shell/config_shell.py → /janito-1.10.0/janito/shell/session/config.py +0 -0
  211. /janito-1.8.0/janito/termweb/static/favicon.ico → /janito-1.10.0/janito/shell/session/history.py +0 -0
  212. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/explorer.html.bak +0 -0
  213. /janito-1.8.0/janito/termweb/static/favicon.ico.bak → /janito-1.10.0/janito/termweb/static/favicon.ico +0 -0
  214. /janito-1.8.0/janito/web/__init__.py → /janito-1.10.0/janito/termweb/static/favicon.ico.bak +0 -0
  215. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/index.html.bak.bak +0 -0
  216. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/landing.html.bak +0 -0
  217. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/termicon.svg +0 -0
  218. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/termweb.css +0 -0
  219. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/termweb.js.bak.bak +0 -0
  220. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/termweb_quickopen.js +0 -0
  221. {janito-1.8.0 → janito-1.10.0}/janito/termweb/static/termweb_quickopen.js.bak +0 -0
  222. {janito-1.8.0 → janito-1.10.0}/janito/web/__main__.py +0 -0
  223. {janito-1.8.0 → janito-1.10.0}/janito.egg-info/dependency_links.txt +0 -0
  224. {janito-1.8.0 → janito-1.10.0}/janito.egg-info/entry_points.txt +0 -0
  225. {janito-1.8.0 → janito-1.10.0}/janito.egg-info/top_level.txt +0 -0
  226. {janito-1.8.0 → janito-1.10.0}/setup.cfg +0 -0
  227. {janito-1.8.0 → janito-1.10.0}/tests/test_basic.py +0 -0
  228. {janito-1.8.0 → janito-1.10.0}/tests/test_run_powershell_command.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 1.8.0
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
@@ -22,6 +22,7 @@ Requires-Dist: prompt_toolkit
22
22
  Requires-Dist: requests
23
23
  Requires-Dist: rich
24
24
  Requires-Dist: toml
25
+ Requires-Dist: lxml
25
26
  Provides-Extra: docs
26
27
  Requires-Dist: mkdocs>=1.5.3; extra == "docs"
27
28
  Requires-Dist: mkdocs-material>=9.4.8; extra == "docs"
@@ -29,37 +30,12 @@ Dynamic: license-file
29
30
 
30
31
  # 🚀 Janito: Natural Language Coding Agent
31
32
 
32
- **Current Version: 1.7.0**
33
- See [CHANGELOG.md](./CHANGELOG.md) for details on the latest release.
34
-
35
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.
36
34
 
37
35
  For a technical overview, see the [Architecture Guide](docs/reference/architecture.md).
38
36
 
39
- ## 🧪 Experimental Feature: Liteweb File Viewer
40
-
41
- 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!
42
-
43
- ### How to Use
44
-
45
- - Start the CLI chat shell with the `--termweb` flag:
46
- ```bash
47
- janito --termweb
48
- ```
49
- - By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
50
- - To specify a port, use `--termweb-port 8090`.
51
- - File paths in CLI output become clickable links that open the file in your browser.
52
-
53
- **Note:** This feature is experimental. It is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
54
-
55
- ### Why is this useful?
56
- - Enables instant file previews from the CLI without a full IDE.
57
- - Works with all Janito file tools and outputs that display file paths.
58
- - Uses the Rich library’s link markup for clickable terminal links.
59
-
60
- ---
61
-
62
37
  ## 📖 Full Documentation & Overview
38
+
63
39
  - For structured and in-depth guides, visit the [Janito Documentation Site](https://docs.janito.dev).
64
40
  - For a high-level, user-friendly overview, see [janito.dev](https://janito.dev).
65
41
 
@@ -78,6 +54,7 @@ This will display a colorful table with the name, description, and parameters of
78
54
  ## ⚡ Quick Start
79
55
 
80
56
  ## 🖥️ Supported Human Interfaces
57
+
81
58
  Janito supports multiple ways for users to interact with the agent:
82
59
 
83
60
  - **CLI (Command Line Interface):** Run single prompts or commands directly from your terminal (e.g., `janito "Refactor the data processing module"`).
@@ -88,22 +65,31 @@ Janito supports multiple ways for users to interact with the agent:
88
65
  ![Janito Terminal Screenshot](https://github.com/joaompinto/janito/blob/main/docs/imgs/terminal.png?raw=true)
89
66
 
90
67
  ### 🛠️ Common CLI Modifiers
68
+
91
69
  You can alter Janito's behavior in any interface using these flags:
92
70
 
93
71
  - `--system` / `--system-file`: Override or customize the system prompt for the session.
94
72
  - `--no-tools`: Disable all tool usage (Janito will only use the language model, no file/code/shell actions).
95
73
  - `--trust-tools`/`-T`: Trusted tools mode (suppresses all tool output, only shows output file locations).
96
74
  - `--vanilla`: Disables tools, system prompt, and temperature settings for a pure LLM chat experience.
75
+ - `--no-termweb`: Disables the termweb file viewer for terminal links.
97
76
 
98
77
  These modifiers can be combined with any interface mode for tailored workflows.
99
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.
100
84
 
101
85
  Run a one-off prompt:
86
+
102
87
  ```bash
103
88
  janito "Refactor the data processing module to improve readability."
104
89
  ```
105
90
 
106
91
  Or start the interactive chat shell:
92
+
107
93
  ```bash
108
94
  janito
109
95
  ```
@@ -111,6 +97,7 @@ janito
111
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.
112
98
 
113
99
  Launch the web UI:
100
+
114
101
  ```bash
115
102
  janito --web
116
103
  ```
@@ -118,25 +105,23 @@ janito --web
118
105
  ---
119
106
 
120
107
  ## ✨ Key Features
108
+
121
109
  - 📝 **Code Editing via Natural Language:** Modify, create, or delete code files simply by describing the changes.
122
110
  - 📁 **File & Directory Management:** Navigate, create, move, or remove files and folders.
123
111
  - 🧠 **Context-Aware:** Understands your project structure for precise edits.
124
112
  - 💬 **Interactive User Prompts:** Asks for clarification when needed.
125
113
  - 🛠️ **Extensible Tooling:** Built-in tools for file operations, shell commands, directory and file management, Python code execution and validation, text replacement, and more.
126
- - 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/MESSAGE_HANDLER_MODEL.md](docs/MESSAGE_HANDLER_MODEL.md).
127
- - 🌐 **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).
128
115
 
129
116
  ## 📦 Installation
130
117
 
131
118
  ### Requirements
132
- - Python 3.10+
133
119
 
120
+ - Python 3.10+
134
121
 
135
122
  ### Contributing & Developer Guide
136
123
 
137
- If you want to extend Janito or add new tools, see the [Developer Guide](docs/README_DEV.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).
138
-
139
-
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).
140
125
 
141
126
  For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
142
127
 
@@ -146,28 +131,27 @@ For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
146
131
 
147
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.
148
133
 
149
-
150
134
  ### Obtaining an API Key from OpenRouter
151
135
 
152
136
  To use Janito with OpenRouter, you need an API key:
153
137
 
154
- 1. Visit https://openrouter.ai and sign up for an account.
138
+ 1. Visit https://platform.openai.com and sign up for an account.
155
139
  2. After logging in, go to your account dashboard.
156
140
  3. Navigate to the "API Keys" section.
157
141
  4. Click "Create new key" and copy the generated API key.
158
142
  5. Set your API key in Janito using:
143
+
159
144
  ```bash
160
145
  python -m janito --set-api-key YOUR_OPENROUTER_KEY
161
146
  ```
147
+
162
148
  Or add it to your configuration file as `api_key`.
163
149
 
164
150
  **Keep your API key secure and do not share it publicly.**
165
151
 
166
152
  ### Using Azure OpenAI
167
153
 
168
- For details on using models hosted on Azure OpenAI, see [docs/AZURE_OPENAI.md](docs/AZURE_OPENAI.md).
169
-
170
-
154
+ For details on using models hosted on Azure OpenAI, see [docs/reference/azure-openai.md](docs/reference/azure-openai.md).
171
155
 
172
156
  ---
173
157
 
@@ -176,20 +160,20 @@ For details on using models hosted on Azure OpenAI, see [docs/AZURE_OPENAI.md](d
176
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.
177
161
 
178
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`.
179
- - **System Prompt Template:** The system prompt is rendered from a Jinja2 template (see `janito/agent/templates/prompt_prompt_template.j2`). This template governs how the agent interprets system_prompt_template, interacts with files, and communicates with users.
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.
180
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.
181
165
 
182
166
  The default template ensures the agent:
167
+
183
168
  - Prioritizes safe, reviewable, and minimal changes
184
169
  - Asks for clarification when system_prompt_template are ambiguous
185
170
  - Provides concise plans before taking action
186
171
  - Documents any changes made
187
172
 
188
- For more details or to customize the prompt, see the template file at `janito/agent/templates/prompt_prompt_template.j2` and the architecture overview in [docs/reference/architecture.md](docs/reference/architecture.md).
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).
189
174
 
190
175
  ---
191
176
 
192
-
193
177
  ## 🥛 Vanilla Mode
194
178
 
195
179
  Janito supports a "vanilla mode" for pure LLM interaction:
@@ -211,6 +195,7 @@ python -m janito --vanilla
211
195
  ```
212
196
 
213
197
  Vanilla mode is ideal for:
198
+
214
199
  - Testing raw model behavior
215
200
  - Comparing LLM output with and without agent guidance
216
201
  - Ensuring no agent-side intervention or context is added
@@ -220,12 +205,14 @@ Vanilla mode is ideal for:
220
205
  ## 👨‍💻 AgentProfileManager: Profile, Role, and Prompt Management
221
206
 
222
207
  Janito now uses a dedicated `AgentProfileManager` class to manage user profiles, roles, interaction profiles, and system prompt selection. This manager:
208
+
223
209
  - Stores the current role (e.g., "software engineer") and interaction profile (e.g., "default", "technical").
224
210
  - Renders the system prompt from the appropriate template based on interaction profile.
225
211
  - Instantiates and manages the low-level LLM Agent, passing the correct prompt.
226
212
  - Provides methods to update the role, interaction profile, and refresh the prompt at runtime.
227
213
 
228
214
  ### Multiple System Prompt Templates
215
+
229
216
  - The system prompt template is now selected based on the interaction profile (e.g., `default` or `technical`).
230
217
  - Templates are located in `janito/agent/templates/` (see `system_prompt_template.j2` and `system_prompt_template_technical.j2`).
231
218
  - You can switch interaction profiles at runtime using the profile manager, enabling different agent behaviors for different user needs.
@@ -237,19 +224,24 @@ See `janito/agent/profile_manager.py` for implementation details.
237
224
  ### Agent Interaction Style
238
225
 
239
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
+
240
228
  - `default`: Concise, general-purpose agent (default)
241
229
  - `technical`: Strict, workflow-oriented for technical/developer use
242
230
 
243
231
  Set globally:
232
+
244
233
  ```bash
245
234
  janito --set-global-config profile=technical
246
235
  ```
236
+
247
237
  Or per-project (in your project root):
238
+
248
239
  ```bash
249
240
  janito --set-local-config profile=technical
250
241
  ```
251
242
 
252
243
  You can also override for a session with the CLI flag:
244
+
253
245
  ```bash
254
246
  janito --profile technical
255
247
  ```
@@ -265,11 +257,13 @@ Janito now supports combinatorial profiles for system prompts, allowing you to c
265
257
  - **Syntax:** Use a hyphen to combine, e.g., `technical-commit_all`.
266
258
 
267
259
  **How it works:**
260
+
268
261
  - The main profile template is loaded first.
269
262
  - Each feature extension template is layered on top, overriding or extending specific blocks in the main template.
270
263
  - Feature templates must use `{% extends parent_template %}` for dynamic inheritance.
271
264
 
272
265
  **Example usage:**
266
+
273
267
  ```bash
274
268
  janito --profile technical-commit_all
275
269
  ```
@@ -278,5 +272,33 @@ This will apply the `technical` profile with the `commit_all` feature enabled in
278
272
 
279
273
  See `janito/render_prompt.py` and `janito/agent/templates/` for implementation details and to create your own feature extensions.
280
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
+
281
303
  ---
282
304
  _generated by janito.dev_
@@ -1,36 +1,11 @@
1
1
  # 🚀 Janito: Natural Language Coding Agent
2
2
 
3
- **Current Version: 1.7.0**
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: Liteweb 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
- - By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
21
- - To specify a port, use `--termweb-port 8090`.
22
- - File paths in CLI output become clickable links that open the file in your browser.
23
-
24
- **Note:** This feature is experimental. It is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
25
-
26
- ### Why is this useful?
27
- - Enables instant file previews from the CLI without a full IDE.
28
- - Works with all Janito file tools and outputs that display file paths.
29
- - Uses the Rich library’s link markup for clickable terminal links.
30
-
31
- ---
32
-
33
7
  ## 📖 Full Documentation & Overview
8
+
34
9
  - For structured and in-depth guides, visit the [Janito Documentation Site](https://docs.janito.dev).
35
10
  - For a high-level, user-friendly overview, see [janito.dev](https://janito.dev).
36
11
 
@@ -49,6 +24,7 @@ This will display a colorful table with the name, description, and parameters of
49
24
  ## ⚡ Quick Start
50
25
 
51
26
  ## 🖥️ Supported Human Interfaces
27
+
52
28
  Janito supports multiple ways for users to interact with the agent:
53
29
 
54
30
  - **CLI (Command Line Interface):** Run single prompts or commands directly from your terminal (e.g., `janito "Refactor the data processing module"`).
@@ -59,22 +35,31 @@ Janito supports multiple ways for users to interact with the agent:
59
35
  ![Janito Terminal Screenshot](https://github.com/joaompinto/janito/blob/main/docs/imgs/terminal.png?raw=true)
60
36
 
61
37
  ### 🛠️ Common CLI Modifiers
38
+
62
39
  You can alter Janito's behavior in any interface using these flags:
63
40
 
64
41
  - `--system` / `--system-file`: Override or customize the system prompt for the session.
65
42
  - `--no-tools`: Disable all tool usage (Janito will only use the language model, no file/code/shell actions).
66
43
  - `--trust-tools`/`-T`: Trusted tools mode (suppresses all tool output, only shows output file locations).
67
44
  - `--vanilla`: Disables tools, system prompt, and temperature settings for a pure LLM chat experience.
45
+ - `--no-termweb`: Disables the termweb file viewer for terminal links.
68
46
 
69
47
  These modifiers can be combined with any interface mode for tailored workflows.
70
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.
71
54
 
72
55
  Run a one-off prompt:
56
+
73
57
  ```bash
74
58
  janito "Refactor the data processing module to improve readability."
75
59
  ```
76
60
 
77
61
  Or start the interactive chat shell:
62
+
78
63
  ```bash
79
64
  janito
80
65
  ```
@@ -82,6 +67,7 @@ janito
82
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.
83
68
 
84
69
  Launch the web UI:
70
+
85
71
  ```bash
86
72
  janito --web
87
73
  ```
@@ -89,25 +75,23 @@ janito --web
89
75
  ---
90
76
 
91
77
  ## ✨ Key Features
78
+
92
79
  - 📝 **Code Editing via Natural Language:** Modify, create, or delete code files simply by describing the changes.
93
80
  - 📁 **File & Directory Management:** Navigate, create, move, or remove files and folders.
94
81
  - 🧠 **Context-Aware:** Understands your project structure for precise edits.
95
82
  - 💬 **Interactive User Prompts:** Asks for clarification when needed.
96
83
  - 🛠️ **Extensible Tooling:** Built-in tools for file operations, shell commands, directory and file management, Python code execution and validation, text replacement, and more.
97
- - 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/MESSAGE_HANDLER_MODEL.md](docs/MESSAGE_HANDLER_MODEL.md).
98
- - 🌐 **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).
99
85
 
100
86
  ## 📦 Installation
101
87
 
102
88
  ### Requirements
103
- - Python 3.10+
104
89
 
90
+ - Python 3.10+
105
91
 
106
92
  ### Contributing & Developer Guide
107
93
 
108
- If you want to extend Janito or add new tools, see the [Developer Guide](docs/README_DEV.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).
109
-
110
-
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).
111
95
 
112
96
  For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
113
97
 
@@ -117,28 +101,27 @@ For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
117
101
 
118
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.
119
103
 
120
-
121
104
  ### Obtaining an API Key from OpenRouter
122
105
 
123
106
  To use Janito with OpenRouter, you need an API key:
124
107
 
125
- 1. Visit https://openrouter.ai and sign up for an account.
108
+ 1. Visit https://platform.openai.com and sign up for an account.
126
109
  2. After logging in, go to your account dashboard.
127
110
  3. Navigate to the "API Keys" section.
128
111
  4. Click "Create new key" and copy the generated API key.
129
112
  5. Set your API key in Janito using:
113
+
130
114
  ```bash
131
115
  python -m janito --set-api-key YOUR_OPENROUTER_KEY
132
116
  ```
117
+
133
118
  Or add it to your configuration file as `api_key`.
134
119
 
135
120
  **Keep your API key secure and do not share it publicly.**
136
121
 
137
122
  ### Using Azure OpenAI
138
123
 
139
- For details on using models hosted on Azure OpenAI, see [docs/AZURE_OPENAI.md](docs/AZURE_OPENAI.md).
140
-
141
-
124
+ For details on using models hosted on Azure OpenAI, see [docs/reference/azure-openai.md](docs/reference/azure-openai.md).
142
125
 
143
126
  ---
144
127
 
@@ -147,20 +130,20 @@ For details on using models hosted on Azure OpenAI, see [docs/AZURE_OPENAI.md](d
147
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.
148
131
 
149
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`.
150
- - **System Prompt Template:** The system prompt is rendered from a Jinja2 template (see `janito/agent/templates/prompt_prompt_template.j2`). This template governs how the agent interprets system_prompt_template, interacts with files, and communicates with users.
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.
151
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.
152
135
 
153
136
  The default template ensures the agent:
137
+
154
138
  - Prioritizes safe, reviewable, and minimal changes
155
139
  - Asks for clarification when system_prompt_template are ambiguous
156
140
  - Provides concise plans before taking action
157
141
  - Documents any changes made
158
142
 
159
- For more details or to customize the prompt, see the template file at `janito/agent/templates/prompt_prompt_template.j2` and the architecture overview in [docs/reference/architecture.md](docs/reference/architecture.md).
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).
160
144
 
161
145
  ---
162
146
 
163
-
164
147
  ## 🥛 Vanilla Mode
165
148
 
166
149
  Janito supports a "vanilla mode" for pure LLM interaction:
@@ -182,6 +165,7 @@ python -m janito --vanilla
182
165
  ```
183
166
 
184
167
  Vanilla mode is ideal for:
168
+
185
169
  - Testing raw model behavior
186
170
  - Comparing LLM output with and without agent guidance
187
171
  - Ensuring no agent-side intervention or context is added
@@ -191,12 +175,14 @@ Vanilla mode is ideal for:
191
175
  ## 👨‍💻 AgentProfileManager: Profile, Role, and Prompt Management
192
176
 
193
177
  Janito now uses a dedicated `AgentProfileManager` class to manage user profiles, roles, interaction profiles, and system prompt selection. This manager:
178
+
194
179
  - Stores the current role (e.g., "software engineer") and interaction profile (e.g., "default", "technical").
195
180
  - Renders the system prompt from the appropriate template based on interaction profile.
196
181
  - Instantiates and manages the low-level LLM Agent, passing the correct prompt.
197
182
  - Provides methods to update the role, interaction profile, and refresh the prompt at runtime.
198
183
 
199
184
  ### Multiple System Prompt Templates
185
+
200
186
  - The system prompt template is now selected based on the interaction profile (e.g., `default` or `technical`).
201
187
  - Templates are located in `janito/agent/templates/` (see `system_prompt_template.j2` and `system_prompt_template_technical.j2`).
202
188
  - You can switch interaction profiles at runtime using the profile manager, enabling different agent behaviors for different user needs.
@@ -208,19 +194,24 @@ See `janito/agent/profile_manager.py` for implementation details.
208
194
  ### Agent Interaction Style
209
195
 
210
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
+
211
198
  - `default`: Concise, general-purpose agent (default)
212
199
  - `technical`: Strict, workflow-oriented for technical/developer use
213
200
 
214
201
  Set globally:
202
+
215
203
  ```bash
216
204
  janito --set-global-config profile=technical
217
205
  ```
206
+
218
207
  Or per-project (in your project root):
208
+
219
209
  ```bash
220
210
  janito --set-local-config profile=technical
221
211
  ```
222
212
 
223
213
  You can also override for a session with the CLI flag:
214
+
224
215
  ```bash
225
216
  janito --profile technical
226
217
  ```
@@ -236,11 +227,13 @@ Janito now supports combinatorial profiles for system prompts, allowing you to c
236
227
  - **Syntax:** Use a hyphen to combine, e.g., `technical-commit_all`.
237
228
 
238
229
  **How it works:**
230
+
239
231
  - The main profile template is loaded first.
240
232
  - Each feature extension template is layered on top, overriding or extending specific blocks in the main template.
241
233
  - Feature templates must use `{% extends parent_template %}` for dynamic inheritance.
242
234
 
243
235
  **Example usage:**
236
+
244
237
  ```bash
245
238
  janito --profile technical-commit_all
246
239
  ```
@@ -249,5 +242,33 @@ This will apply the `technical` profile with the `commit_all` feature enabled in
249
242
 
250
243
  See `janito/render_prompt.py` and `janito/agent/templates/` for implementation details and to create your own feature extensions.
251
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
+
252
273
  ---
253
274
  _generated by janito.dev_
@@ -0,0 +1 @@
1
+ __version__ = "1.10.0-dev"
@@ -0,0 +1,4 @@
1
+ class ApiError(Exception):
2
+ """Custom exception for API errors."""
3
+
4
+ pass
@@ -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., 'openai/gpt-4.1')",
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",
@@ -1,12 +1,11 @@
1
1
  # Centralized config defaults for Janito
2
2
  CONFIG_DEFAULTS = {
3
3
  "api_key": None, # Must be set by user
4
- "model": "openai/gpt-4.1", # Default model
5
- "base_url": "https://openrouter.ai/api/v1",
4
+ "model": "gpt-4.1", # Default model
6
5
  "role": "software developer", # Part of the Agent Profile
7
6
  "system_prompt_template": None, # None means auto-generate from Agent Profile role
8
7
  "temperature": 0.2,
9
- "max_tokens": 200000,
8
+ "max_tokens": 32000,
10
9
  "use_azure_openai": False,
11
10
  "azure_openai_api_version": "2023-05-15",
12
11
  "profile": "base",