janito 1.14.3__py3-none-any.whl → 2.0.1__py3-none-any.whl

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 (283) hide show
  1. janito/__init__.py +6 -1
  2. janito/__main__.py +1 -1
  3. janito/agent/setup_agent.py +139 -0
  4. janito/agent/templates/profiles/{system_prompt_template_base.txt.j2 → system_prompt_template_main.txt.j2} +1 -1
  5. janito/cli/__init__.py +9 -0
  6. janito/cli/chat_mode/bindings.py +37 -0
  7. janito/cli/chat_mode/chat_entry.py +23 -0
  8. janito/cli/chat_mode/prompt_style.py +19 -0
  9. janito/cli/chat_mode/session.py +272 -0
  10. janito/{shell/prompt/completer.py → cli/chat_mode/shell/autocomplete.py} +7 -6
  11. janito/cli/chat_mode/shell/commands/__init__.py +55 -0
  12. janito/cli/chat_mode/shell/commands/base.py +9 -0
  13. janito/cli/chat_mode/shell/commands/clear.py +12 -0
  14. janito/{shell → cli/chat_mode/shell}/commands/conversation_restart.py +34 -30
  15. janito/cli/chat_mode/shell/commands/edit.py +25 -0
  16. janito/cli/chat_mode/shell/commands/help.py +16 -0
  17. janito/cli/chat_mode/shell/commands/history_view.py +93 -0
  18. janito/cli/chat_mode/shell/commands/lang.py +25 -0
  19. janito/cli/chat_mode/shell/commands/last.py +137 -0
  20. janito/cli/chat_mode/shell/commands/livelogs.py +49 -0
  21. janito/cli/chat_mode/shell/commands/multi.py +51 -0
  22. janito/cli/chat_mode/shell/commands/prompt.py +64 -0
  23. janito/cli/chat_mode/shell/commands/role.py +36 -0
  24. janito/cli/chat_mode/shell/commands/session.py +40 -0
  25. janito/{shell → cli/chat_mode/shell}/commands/session_control.py +2 -2
  26. janito/cli/chat_mode/shell/commands/termweb_log.py +92 -0
  27. janito/cli/chat_mode/shell/commands/tools.py +32 -0
  28. janito/{shell → cli/chat_mode/shell}/commands/utility.py +4 -7
  29. janito/{shell → cli/chat_mode/shell}/commands/verbose.py +5 -5
  30. janito/cli/chat_mode/shell/session/__init__.py +1 -0
  31. janito/{shell → cli/chat_mode/shell}/session/manager.py +9 -1
  32. janito/cli/chat_mode/toolbar.py +90 -0
  33. janito/cli/cli_commands/list_models.py +35 -0
  34. janito/cli/cli_commands/list_providers.py +9 -0
  35. janito/cli/cli_commands/list_tools.py +53 -0
  36. janito/cli/cli_commands/model_selection.py +50 -0
  37. janito/cli/cli_commands/model_utils.py +84 -0
  38. janito/cli/cli_commands/set_api_key.py +19 -0
  39. janito/cli/cli_commands/show_config.py +51 -0
  40. janito/cli/cli_commands/show_system_prompt.py +62 -0
  41. janito/cli/config.py +28 -0
  42. janito/cli/console.py +3 -0
  43. janito/cli/core/__init__.py +4 -0
  44. janito/cli/core/event_logger.py +59 -0
  45. janito/cli/core/getters.py +31 -0
  46. janito/cli/core/runner.py +141 -0
  47. janito/cli/core/setters.py +174 -0
  48. janito/cli/core/unsetters.py +54 -0
  49. janito/cli/main.py +8 -196
  50. janito/cli/main_cli.py +312 -0
  51. janito/cli/prompt_core.py +230 -0
  52. janito/cli/prompt_handler.py +6 -0
  53. janito/cli/rich_terminal_reporter.py +101 -0
  54. janito/cli/single_shot_mode/__init__.py +6 -0
  55. janito/cli/single_shot_mode/handler.py +137 -0
  56. janito/cli/termweb_starter.py +73 -24
  57. janito/cli/utils.py +25 -0
  58. janito/cli/verbose_output.py +196 -0
  59. janito/config.py +5 -0
  60. janito/config_manager.py +110 -0
  61. janito/conversation_history.py +30 -0
  62. janito/{agent/tools_utils/dir_walk_utils.py → dir_walk_utils.py} +3 -2
  63. janito/driver_events.py +98 -0
  64. janito/drivers/anthropic/driver.py +113 -0
  65. janito/drivers/azure_openai/driver.py +36 -0
  66. janito/drivers/driver_registry.py +33 -0
  67. janito/drivers/google_genai/driver.py +54 -0
  68. janito/drivers/google_genai/schema_generator.py +67 -0
  69. janito/drivers/mistralai/driver.py +41 -0
  70. janito/drivers/openai/driver.py +334 -0
  71. janito/event_bus/__init__.py +2 -0
  72. janito/event_bus/bus.py +68 -0
  73. janito/event_bus/event.py +15 -0
  74. janito/event_bus/handler.py +31 -0
  75. janito/event_bus/queue_bus.py +57 -0
  76. janito/exceptions.py +23 -0
  77. janito/formatting_token.py +54 -0
  78. janito/i18n/pt.py +1 -0
  79. janito/llm/__init__.py +5 -0
  80. janito/llm/agent.py +443 -0
  81. janito/llm/auth.py +62 -0
  82. janito/llm/driver.py +239 -0
  83. janito/llm/driver_config.py +34 -0
  84. janito/llm/driver_config_builder.py +34 -0
  85. janito/llm/driver_input.py +12 -0
  86. janito/llm/message_parts.py +60 -0
  87. janito/llm/model.py +38 -0
  88. janito/llm/provider.py +187 -0
  89. janito/perf_singleton.py +3 -0
  90. janito/performance_collector.py +167 -0
  91. janito/provider_config.py +98 -0
  92. janito/provider_registry.py +152 -0
  93. janito/providers/__init__.py +7 -0
  94. janito/providers/anthropic/model_info.py +22 -0
  95. janito/providers/anthropic/provider.py +65 -0
  96. janito/providers/azure_openai/model_info.py +15 -0
  97. janito/providers/azure_openai/provider.py +72 -0
  98. janito/providers/deepseek/__init__.py +1 -0
  99. janito/providers/deepseek/model_info.py +16 -0
  100. janito/providers/deepseek/provider.py +91 -0
  101. janito/providers/google/__init__.py +1 -0
  102. janito/providers/google/model_info.py +40 -0
  103. janito/providers/google/provider.py +69 -0
  104. janito/providers/mistralai/model_info.py +37 -0
  105. janito/providers/mistralai/provider.py +69 -0
  106. janito/providers/openai/__init__.py +1 -0
  107. janito/providers/openai/model_info.py +137 -0
  108. janito/providers/openai/provider.py +107 -0
  109. janito/providers/openai/schema_generator.py +63 -0
  110. janito/providers/provider_static_info.py +21 -0
  111. janito/providers/registry.py +26 -0
  112. janito/report_events.py +38 -0
  113. janito/termweb/app.py +1 -1
  114. janito/tools/__init__.py +16 -0
  115. janito/tools/adapters/__init__.py +1 -0
  116. janito/tools/adapters/local/__init__.py +54 -0
  117. janito/tools/adapters/local/adapter.py +92 -0
  118. janito/{agent/tools → tools/adapters/local}/ask_user.py +30 -13
  119. janito/tools/adapters/local/copy_file.py +84 -0
  120. janito/{agent/tools → tools/adapters/local}/create_directory.py +11 -10
  121. janito/tools/adapters/local/create_file.py +82 -0
  122. janito/tools/adapters/local/delete_text_in_file.py +136 -0
  123. janito/{agent/tools → tools/adapters/local}/fetch_url.py +18 -19
  124. janito/tools/adapters/local/find_files.py +140 -0
  125. janito/tools/adapters/local/get_file_outline/core.py +151 -0
  126. janito/{agent/tools → tools/adapters/local}/get_file_outline/python_outline.py +125 -0
  127. janito/tools/adapters/local/get_file_outline/python_outline_v2.py +156 -0
  128. janito/{agent/tools → tools/adapters/local}/get_file_outline/search_outline.py +12 -7
  129. janito/{agent/tools → tools/adapters/local}/move_file.py +13 -9
  130. janito/tools/adapters/local/open_html_in_browser.py +34 -0
  131. janito/{agent/tools → tools/adapters/local}/open_url.py +7 -5
  132. janito/tools/adapters/local/python_code_run.py +165 -0
  133. janito/tools/adapters/local/python_command_run.py +163 -0
  134. janito/tools/adapters/local/python_file_run.py +162 -0
  135. janito/{agent/tools → tools/adapters/local}/remove_directory.py +15 -9
  136. janito/{agent/tools → tools/adapters/local}/remove_file.py +17 -14
  137. janito/{agent/tools → tools/adapters/local}/replace_text_in_file.py +27 -22
  138. janito/tools/adapters/local/run_bash_command.py +176 -0
  139. janito/tools/adapters/local/run_powershell_command.py +219 -0
  140. janito/{agent/tools → tools/adapters/local}/search_text/core.py +32 -12
  141. janito/{agent/tools → tools/adapters/local}/search_text/match_lines.py +13 -4
  142. janito/{agent/tools → tools/adapters/local}/search_text/pattern_utils.py +12 -4
  143. janito/{agent/tools → tools/adapters/local}/search_text/traverse_directory.py +15 -2
  144. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/core.py +12 -11
  145. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/css_validator.py +1 -1
  146. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/html_validator.py +1 -1
  147. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/js_validator.py +1 -1
  148. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/json_validator.py +1 -1
  149. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/markdown_validator.py +1 -1
  150. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/ps1_validator.py +1 -1
  151. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/python_validator.py +1 -1
  152. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/xml_validator.py +1 -1
  153. janito/{agent/tools → tools/adapters/local}/validate_file_syntax/yaml_validator.py +1 -1
  154. janito/{agent/tools/get_lines.py → tools/adapters/local/view_file.py} +45 -27
  155. janito/tools/inspect_registry.py +17 -0
  156. janito/tools/tool_base.py +105 -0
  157. janito/tools/tool_events.py +58 -0
  158. janito/tools/tool_run_exception.py +12 -0
  159. janito/{agent → tools}/tool_use_tracker.py +2 -4
  160. janito/{agent/tools_utils/utils.py → tools/tool_utils.py} +18 -9
  161. janito/tools/tools_adapter.py +207 -0
  162. janito/tools/tools_schema.py +104 -0
  163. janito/utils.py +11 -0
  164. janito/version.py +4 -0
  165. janito-2.0.1.dist-info/METADATA +232 -0
  166. janito-2.0.1.dist-info/RECORD +181 -0
  167. janito/agent/__init__.py +0 -0
  168. janito/agent/api_exceptions.py +0 -4
  169. janito/agent/config.py +0 -147
  170. janito/agent/config_defaults.py +0 -12
  171. janito/agent/config_utils.py +0 -0
  172. janito/agent/content_handler.py +0 -0
  173. janito/agent/conversation.py +0 -238
  174. janito/agent/conversation_api.py +0 -306
  175. janito/agent/conversation_exceptions.py +0 -18
  176. janito/agent/conversation_tool_calls.py +0 -39
  177. janito/agent/conversation_ui.py +0 -17
  178. janito/agent/event.py +0 -24
  179. janito/agent/event_dispatcher.py +0 -24
  180. janito/agent/event_handler_protocol.py +0 -5
  181. janito/agent/event_system.py +0 -15
  182. janito/agent/llm_conversation_history.py +0 -82
  183. janito/agent/message_handler.py +0 -20
  184. janito/agent/message_handler_protocol.py +0 -5
  185. janito/agent/openai_client.py +0 -149
  186. janito/agent/openai_schema_generator.py +0 -187
  187. janito/agent/profile_manager.py +0 -96
  188. janito/agent/queued_message_handler.py +0 -50
  189. janito/agent/rich_live.py +0 -32
  190. janito/agent/rich_message_handler.py +0 -115
  191. janito/agent/runtime_config.py +0 -36
  192. janito/agent/test_handler_protocols.py +0 -47
  193. janito/agent/test_openai_schema_generator.py +0 -93
  194. janito/agent/tests/__init__.py +0 -1
  195. janito/agent/tool_base.py +0 -63
  196. janito/agent/tool_executor.py +0 -122
  197. janito/agent/tool_registry.py +0 -49
  198. janito/agent/tools/__init__.py +0 -47
  199. janito/agent/tools/create_file.py +0 -59
  200. janito/agent/tools/delete_text_in_file.py +0 -97
  201. janito/agent/tools/find_files.py +0 -106
  202. janito/agent/tools/get_file_outline/core.py +0 -81
  203. janito/agent/tools/present_choices.py +0 -64
  204. janito/agent/tools/python_command_runner.py +0 -201
  205. janito/agent/tools/python_file_runner.py +0 -199
  206. janito/agent/tools/python_stdin_runner.py +0 -208
  207. janito/agent/tools/replace_file.py +0 -72
  208. janito/agent/tools/run_bash_command.py +0 -218
  209. janito/agent/tools/run_powershell_command.py +0 -251
  210. janito/agent/tools_utils/__init__.py +0 -1
  211. janito/agent/tools_utils/action_type.py +0 -7
  212. janito/agent/tools_utils/test_gitignore_utils.py +0 -46
  213. janito/cli/_livereload_log_utils.py +0 -13
  214. janito/cli/_print_config.py +0 -96
  215. janito/cli/_termweb_log_utils.py +0 -17
  216. janito/cli/_utils.py +0 -9
  217. janito/cli/arg_parser.py +0 -272
  218. janito/cli/cli_main.py +0 -281
  219. janito/cli/config_commands.py +0 -211
  220. janito/cli/config_runner.py +0 -35
  221. janito/cli/formatting_runner.py +0 -12
  222. janito/cli/livereload_starter.py +0 -60
  223. janito/cli/logging_setup.py +0 -38
  224. janito/cli/one_shot.py +0 -80
  225. janito/livereload/app.py +0 -25
  226. janito/rich_utils.py +0 -59
  227. janito/shell/__init__.py +0 -0
  228. janito/shell/commands/__init__.py +0 -61
  229. janito/shell/commands/config.py +0 -22
  230. janito/shell/commands/edit.py +0 -24
  231. janito/shell/commands/history_view.py +0 -18
  232. janito/shell/commands/lang.py +0 -19
  233. janito/shell/commands/livelogs.py +0 -42
  234. janito/shell/commands/prompt.py +0 -62
  235. janito/shell/commands/termweb_log.py +0 -94
  236. janito/shell/commands/tools.py +0 -26
  237. janito/shell/commands/track.py +0 -36
  238. janito/shell/main.py +0 -326
  239. janito/shell/prompt/load_prompt.py +0 -57
  240. janito/shell/prompt/session_setup.py +0 -57
  241. janito/shell/session/config.py +0 -109
  242. janito/shell/session/history.py +0 -0
  243. janito/shell/ui/interactive.py +0 -226
  244. janito/termweb/static/editor.css +0 -158
  245. janito/termweb/static/editor.css.bak +0 -145
  246. janito/termweb/static/editor.html +0 -46
  247. janito/termweb/static/editor.html.bak +0 -46
  248. janito/termweb/static/editor.js +0 -265
  249. janito/termweb/static/editor.js.bak +0 -259
  250. janito/termweb/static/explorer.html.bak +0 -59
  251. janito/termweb/static/favicon.ico +0 -0
  252. janito/termweb/static/favicon.ico.bak +0 -0
  253. janito/termweb/static/index.html +0 -53
  254. janito/termweb/static/index.html.bak +0 -54
  255. janito/termweb/static/index.html.bak.bak +0 -175
  256. janito/termweb/static/landing.html.bak +0 -36
  257. janito/termweb/static/termicon.svg +0 -1
  258. janito/termweb/static/termweb.css +0 -214
  259. janito/termweb/static/termweb.css.bak +0 -237
  260. janito/termweb/static/termweb.js +0 -162
  261. janito/termweb/static/termweb.js.bak +0 -168
  262. janito/termweb/static/termweb.js.bak.bak +0 -157
  263. janito/termweb/static/termweb_quickopen.js +0 -135
  264. janito/termweb/static/termweb_quickopen.js.bak +0 -125
  265. janito/tests/test_rich_utils.py +0 -44
  266. janito/web/__init__.py +0 -0
  267. janito/web/__main__.py +0 -25
  268. janito/web/app.py +0 -145
  269. janito-1.14.3.dist-info/METADATA +0 -313
  270. janito-1.14.3.dist-info/RECORD +0 -162
  271. janito-1.14.3.dist-info/licenses/LICENSE +0 -21
  272. /janito/{shell → cli/chat_mode/shell}/input_history.py +0 -0
  273. /janito/{shell/commands/session.py → cli/chat_mode/shell/session/history.py} +0 -0
  274. /janito/{agent/tools_utils/formatting.py → formatting.py} +0 -0
  275. /janito/{agent/tools_utils/gitignore_utils.py → gitignore_utils.py} +0 -0
  276. /janito/{agent/platform_discovery.py → platform_discovery.py} +0 -0
  277. /janito/{agent/tools → tools/adapters/local}/get_file_outline/__init__.py +0 -0
  278. /janito/{agent/tools → tools/adapters/local}/get_file_outline/markdown_outline.py +0 -0
  279. /janito/{agent/tools → tools/adapters/local}/search_text/__init__.py +0 -0
  280. /janito/{agent/tools → tools/adapters/local}/validate_file_syntax/__init__.py +0 -0
  281. {janito-1.14.3.dist-info → janito-2.0.1.dist-info}/WHEEL +0 -0
  282. {janito-1.14.3.dist-info → janito-2.0.1.dist-info}/entry_points.txt +0 -0
  283. {janito-1.14.3.dist-info → janito-2.0.1.dist-info}/top_level.txt +0 -0
@@ -1,313 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: janito
3
- Version: 1.14.3
4
- Summary: Language Model Thin Client,
5
- Author-email: João Pinto <joao.pinto@gmail.com>
6
- License-Expression: MIT
7
- Project-URL: homepage, https://janito.dev
8
- Project-URL: repository, https://github.com/joaompinto/janito
9
- Keywords: agent,framework,tools,automation
10
- Classifier: Programming Language :: Python :: 3.10
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.10
13
- Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
- Requires-Dist: beautifulsoup4
16
- Requires-Dist: flask
17
- Requires-Dist: jinja2
18
- Requires-Dist: openai
19
- Requires-Dist: pathspec
20
- Requires-Dist: prompt_toolkit
21
- Requires-Dist: requests
22
- Requires-Dist: rich
23
- Requires-Dist: lxml
24
- Requires-Dist: PyYAML
25
- Requires-Dist: quart
26
- Requires-Dist: questionary
27
- Provides-Extra: docs
28
- Requires-Dist: mkdocs>=1.5.3; extra == "docs"
29
- Requires-Dist: mkdocs-material>=9.4.8; extra == "docs"
30
- Dynamic: license-file
31
-
32
- # 🚀 Janito: Language Model Thin Client
33
-
34
- 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.
35
-
36
-
37
- For a technical overview, see the [Architecture Guide](docs/reference/architecture.md).
38
-
39
- ## 📖 Full Documentation & Overview
40
-
41
- - For structured and in-depth guides, visit the [Janito Documentation Site](https://docs.janito.dev).
42
- - For a high-level, user-friendly overview, see [janito.dev](https://janito.dev).
43
-
44
- ---
45
-
46
-
47
- ## Listing Available Tools
48
-
49
- To list all registered tools on the command line, use the option:
50
-
51
- ```sh
52
- janito --list-tools
53
- ```
54
-
55
- This will display a colorful table with the name, description, and parameters of each available tool.
56
-
57
- ## ⚡ Quick Start
58
-
59
- ## 🖥️ Supported Human Interfaces
60
-
61
- Janito supports multiple ways for users to interact with the agent:
62
-
63
- - **CLI (Command Line Interface):** Run single prompts or commands directly from your terminal (e.g., `janito "Refactor the data processing module"`).
64
- - **CLI Chat Shell:** Start an interactive chat session in your terminal for conversational workflows (`janito`).
65
- - **Web Interface:** Launch a browser-based UI for chat and project management (`janito --web`).
66
-
67
-
68
- ![Janito Terminal Screenshot](https://github.com/joaompinto/janito/blob/main/docs/imgs/terminal_one_shot.png?raw=true)
69
-
70
- ### 🛠️ Common CLI Modifiers
71
-
72
- You can alter Janito's behavior in any interface using these flags:
73
-
74
- - `--system` / `--system-file`: Override or customize the system prompt for the session.
75
- - `--no-tools`: Disable all tool usage (Janito will only use the language model, no file/code/shell actions).
76
- - `--trust-tools`/`-T`: Trusted tools mode (suppresses all tool output, only shows output file locations).
77
- - `--vanilla`: Disables tools, system prompt, and temperature settings for a pure LLM chat experience.
78
- - `--no-termweb`: Disables the termweb file viewer for terminal links.
79
-
80
- These modifiers can be combined with any interface mode for tailored workflows.
81
-
82
- ---
83
-
84
-
85
- ## 📝 Full CLI Options Reference
86
-
87
- 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.
88
-
89
- Run a one-off prompt:
90
-
91
- ```bash
92
- janito "Refactor the data processing module to improve readability."
93
- ```
94
-
95
- Or start the interactive chat shell:
96
-
97
- ```bash
98
- janito
99
- ```
100
-
101
- 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.
102
-
103
- Launch the web UI:
104
-
105
- ```bash
106
- janito --web
107
- ```
108
-
109
- ---
110
-
111
-
112
- ## ✨ Key Features
113
-
114
- - 📝 **Code Editing via Natural Language:** Modify, create, or delete code files simply by describing the changes.
115
- - 📁 **File & Directory Management:** Navigate, create, move, or remove files and folders.
116
- - 🧠 **Context-Aware:** Understands your project structure for precise edits.
117
- - 💬 **Interactive User Prompts:** Asks for clarification when needed.
118
- - 🛠️ **Extensible Tooling:** Built-in tools for file operations, shell commands, directory and file management, Python code execution and validation, text replacement, and more.
119
- - 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).
120
-
121
- ## 📦 Installation
122
-
123
- ### Requirements
124
-
125
- - Python 3.10+
126
-
127
- ### Contributing & Developer Guide
128
-
129
- 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).
130
-
131
- For the full changelog, see [CHANGELOG.md](./CHANGELOG.md).
132
-
133
- ...
134
-
135
- ### Configuration & CLI Options
136
-
137
- 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.
138
-
139
- ### Obtaining an API Key from OpenRouter
140
-
141
- To use Janito with OpenRouter, you need an API key:
142
-
143
- 1. Visit https://platform.openai.com and sign up for an account.
144
- 2. After logging in, go to your account dashboard.
145
- 3. Navigate to the "API Keys" section.
146
- 4. Click "Create new key" and copy the generated API key.
147
- 5. Set your API key in Janito using:
148
-
149
- ```bash
150
- python -m janito --set-api-key YOUR_OPENROUTER_KEY
151
- ```
152
-
153
- Or add it to your configuration file as `api_key`.
154
-
155
- **Keep your API key secure and do not share it publicly.**
156
-
157
- ### Using Azure OpenAI
158
-
159
- For details on using models hosted on Azure OpenAI, see [docs/reference/azure-openai.md](docs/reference/azure-openai.md).
160
-
161
- ---
162
-
163
-
164
- ## 🧑‍💻 System Prompt & Role
165
-
166
- 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.
167
-
168
- - **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`.
169
- - **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.
170
- - **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.
171
-
172
- The default template ensures the agent:
173
-
174
- - Prioritizes safe, reviewable, and minimal changes
175
- - Asks for clarification when system_prompt_template are ambiguous
176
- - Provides concise plans before taking action
177
- - Documents any changes made
178
-
179
- 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).
180
-
181
- ---
182
-
183
-
184
- ## 🥛 Vanilla Mode
185
-
186
- Janito supports a "vanilla mode" for pure LLM interaction:
187
-
188
- - No tools: Disables all tool use (no file operations, shell commands, etc.).
189
- - No system prompt: The LLM receives only your input, with no system prompt or role injected.
190
- - No temperature set: The temperature parameter is not set (unless you explicitly provide `-t`/`--temperature`).
191
-
192
- Activate vanilla mode with the CLI flag:
193
-
194
- ```bash
195
- python -m janito --vanilla "Your prompt here"
196
- ```
197
-
198
- Or in chat shell mode:
199
-
200
- ```bash
201
- python -m janito --vanilla
202
- ```
203
-
204
- Vanilla mode is ideal for:
205
-
206
- - Testing raw model behavior
207
- - Comparing LLM output with and without agent guidance
208
- - Ensuring no agent-side intervention or context is added
209
-
210
- > Note: Vanilla mode is a runtime switch and does not change the Agent API or class signatures. It is controlled via CLI/config only.
211
-
212
- ## 👨‍💻 AgentProfileManager: Profile, Role, and Prompt Management
213
-
214
- Janito now uses a dedicated `AgentProfileManager` class to manage user profiles, roles, interaction profiles, and system prompt selection. This manager:
215
-
216
- - Stores the current role (e.g., "software engineer") and interaction profile (e.g., "default", "technical").
217
- - Renders the system prompt from the appropriate template based on interaction profile.
218
- - Instantiates and manages the low-level LLM Agent, passing the correct prompt.
219
- - Provides methods to update the role, interaction profile, and refresh the prompt at runtime.
220
-
221
- ### Multiple System Prompt Templates
222
-
223
- - The system prompt template is now selected based on the interaction profile (e.g., `default` or `technical`).
224
- - Templates are located in `janito/agent/templates/` (see `system_prompt_template.j2` and `system_prompt_template_technical.j2`).
225
- - You can switch interaction profiles at runtime using the profile manager, enabling different agent behaviors for different user needs.
226
-
227
- This separation ensures that the LLM Agent remains focused on language model interaction and tool execution, while all profile, role, and prompt logic is managed at a higher level.
228
-
229
- See `janito/agent/profile_manager.py` for implementation details.
230
-
231
- ### Agent Interaction Style
232
-
233
- 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.
234
-
235
- - `default`: Concise, general-purpose agent (default)
236
- - `technical`: Strict, workflow-oriented for technical/developer use
237
-
238
- Set globally:
239
-
240
- ```bash
241
- janito --set-global-config profile=technical
242
- ```
243
-
244
- Or per-project (in your project root):
245
-
246
- ```bash
247
- janito --set-local-config profile=technical
248
- ```
249
-
250
- You can also override for a session with the CLI flag:
251
-
252
- ```bash
253
- janito --profile technical
254
- ```
255
-
256
- See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for full details.
257
-
258
- ## 🧑‍💻 Combinatorial Style System
259
-
260
- Janito now supports combinatorial profiles for system prompts, allowing you to combine a main profile (such as `default` or `technical`) with one or more feature extensions (such as `commit_all`).
261
-
262
- - **Main profile:** The base agent behavior and workflow (e.g., `default`, `technical`).
263
- - **Feature extensions:** Optional features that override or extend the main profile (e.g., `commit_all`).
264
- - **Syntax:** Use a hyphen to combine, e.g., `technical-commit_all`.
265
-
266
- **How it works:**
267
-
268
- - The main profile template is loaded first.
269
- - Each feature extension template is layered on top, overriding or extending specific blocks in the main template.
270
- - Feature templates must use `{% extends parent_template %}` for dynamic inheritance.
271
-
272
- **Example usage:**
273
-
274
- ```bash
275
- janito --profile technical-commit_all
276
- ```
277
-
278
- This will apply the `technical` profile with the `commit_all` feature enabled in the agent's system prompt.
279
-
280
- See `janito/render_prompt.py` and `janito/agent/templates/` for implementation details and to create your own feature extensions.
281
-
282
- ---
283
-
284
-
285
- ## 📂 termweb File Viewer (Web File Preview)
286
-
287
- 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!
288
-
289
- ### How to Use
290
-
291
- - Start the CLI chat shell normally:
292
-
293
- ```bash
294
- janito
295
- ```
296
-
297
- - The termweb file viewer will start automatically by default.
298
- - To disable the termweb file viewer, use the `--no-termweb` flag.
299
- - By default, the viewer runs at http://localhost:8088 (or the next available port up to 8100).
300
- - To specify a port, use `--termweb-port 8090`.
301
- - File paths in CLI output become clickable links that open the file in your browser.
302
-
303
- **Note:** The termweb file viewer is intended for quick file previews and review, not for editing or production use. Feedback is welcome!
304
-
305
- ### Why is this useful?
306
-
307
- - Enables instant file previews from the CLI without a full IDE.
308
- - Works with all Janito file tools and outputs that display file paths.
309
- - Uses the Rich library’s link markup for clickable terminal links.
310
-
311
- ---
312
-
313
- _generated by janito.dev_
@@ -1,162 +0,0 @@
1
- janito/__init__.py,sha256=RRlnM2cJwV2DWJtQnG5hIWOxPEZtWsd0G75BOYBeZTo,24
2
- janito/__main__.py,sha256=KKIoPBE9xPcb54PRYO2UOt0ti04iAwLeJlg8YY36vew,76
3
- janito/rich_utils.py,sha256=x7OsZdwtAOtUu_HYbrAMga0LElFMPbQL8GZ62vw5Jh8,1825
4
- janito/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- janito/agent/api_exceptions.py,sha256=TAz3FTE4soqUgKPqei2Jod9LOpA37g3s2-S3G5WGw4E,84
6
- janito/agent/config.py,sha256=1XqNEsltsF_4BiZ7rtyLhNndWmj7pDuTl2UpIi_U9fQ,4910
7
- janito/agent/config_defaults.py,sha256=22MxI84GF8YL5avIjAWxHlvARxu4A2wD0oou_lqNCeA,460
8
- janito/agent/config_utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- janito/agent/content_handler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- janito/agent/conversation.py,sha256=HqjZaXtnoQtKet7MRISDOqnWsjvAXlgKKf4E6LjjVNk,9558
11
- janito/agent/conversation_api.py,sha256=6iKlkLWnfgM4D_6ju-ReMprJSnMC1FdCHKqrSgOluhg,10706
12
- janito/agent/conversation_exceptions.py,sha256=Aw7PRLb3eUfyDOGynKds5F48dgjyiOrTCEcWSprYC58,381
13
- janito/agent/conversation_tool_calls.py,sha256=wz9FFtwNXgnyJQbcLzZfHfCPkiLfItE2vJ1JqjpKucA,1553
14
- janito/agent/conversation_ui.py,sha256=YTqcY51Nu3gtw6NzcH4RmXSCWUr09iO7CKxJsVxsJPc,412
15
- janito/agent/event.py,sha256=1jcua88NT-T4jA0mGIyIF1LvqXKu2GDT8NMjlelWmCI,517
16
- janito/agent/event_dispatcher.py,sha256=eFNDfGY8o63yNLFdMe82LqfmDyGWjrAw9CpyUAcLJAM,856
17
- janito/agent/event_handler_protocol.py,sha256=uIIf9u82BWm8pha4sZxydeEwgbxDoiWVSyplBPI0knE,130
18
- janito/agent/event_system.py,sha256=QxPSQ2XeTyiWV6ejcmS8kTqTBrs7fLHRVXdhyeVHpas,608
19
- janito/agent/llm_conversation_history.py,sha256=9i4GxYH4dF7IYV6ZzBVAm6BDQ2E9842-CIzHlQGSOxg,3055
20
- janito/agent/message_handler.py,sha256=oZJ2u0C7OewHiHwlJslT2o3RPlvY2HhPXPoRcSsBv4M,856
21
- janito/agent/message_handler_protocol.py,sha256=E8PLl9ucNvPK_xmhLEkV-vhQzfO_P_BMvzpqDvUkcVY,150
22
- janito/agent/openai_client.py,sha256=Hd4Rzq4ZiwVWgT1NgSCs7U_1YrXbdypQ4Wa1A_MK090,5341
23
- janito/agent/openai_schema_generator.py,sha256=lxZocrm_HZzyONFrZsOx21FaAodAC63YGtck5TvTQZk,7654
24
- janito/agent/platform_discovery.py,sha256=JN3kC7hkxdvuj-AyrJTlbbDJjtNHke3fdlZDqGi_uz0,4621
25
- janito/agent/profile_manager.py,sha256=Esm8tewDVHnBdd7P04WeTY3F5p9O_ZB8cGlvC7awn7E,3196
26
- janito/agent/queued_message_handler.py,sha256=sjsZneGWkqvfuJNac9QERdHasp9lWZvNcow8dul7tVU,1844
27
- janito/agent/rich_live.py,sha256=NKWU89hRakiJ-0N6FPg40bYREOxQizqicbDv9eUfsKs,927
28
- janito/agent/rich_message_handler.py,sha256=80-y0FjAmOYUxUqrEN0Sx1tOXS_mRcczrs4t0OUQTpk,4023
29
- janito/agent/runtime_config.py,sha256=xSx0-RD-WVA9niSCEmEn2ZPLFbQfRhPwwGIa8tid_v8,901
30
- janito/agent/test_handler_protocols.py,sha256=4o1IitFDUN1fdw48oQCRizKWahahumdmEZ4URHrlmiY,1404
31
- janito/agent/test_openai_schema_generator.py,sha256=PJ6wrnNpH50MAzbXjuohZpe2rX7LLkQVdlWMcjxyXdk,2431
32
- janito/agent/tool_base.py,sha256=KKWmMKyjxpWNukgdImLwZqs9cnS_tVzBt6cpQ532-KM,2025
33
- janito/agent/tool_executor.py,sha256=yizyu88QteTHtJ_ktj679IqsaMyS-TQYR7rXnWI6lOg,5114
34
- janito/agent/tool_registry.py,sha256=AjxYgQTeG9wUTyi0h128AG7INCyziF0z3zux12BlXnE,1673
35
- janito/agent/tool_use_tracker.py,sha256=bEHirQX79u1uHnkmXO7t3JrBt2tHaQhaOzII7Nqiq5A,2874
36
- janito/agent/templates/profiles/system_prompt_template_base.txt.j2,sha256=iWE0xGOdfLgomNFA7e8j6DzdsN17NJV8QITSuxHYtqY,2496
37
- janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2,sha256=FX8piXbR9XNOEKkOSMt4ieZ2wn5fzQlffeQFf8d7gIc,723
38
- janito/agent/tests/__init__.py,sha256=QuXHKEzUJ_DooaKqenv_tKuNH-HabuIVZhvW5JNaeIc,52
39
- janito/agent/tools/__init__.py,sha256=LASzm6aHwqAtcDZnQFk9BW8HMn7s6yHDf4c5B4SXqs4,1248
40
- janito/agent/tools/ask_user.py,sha256=DL-jBU-njSjwhNSbgi23RZCrRBt5beDgZq_PG4yzbWM,3217
41
- janito/agent/tools/create_directory.py,sha256=O-yCF-fRwI9m1IGuziqqHSl4-fiGeFwx4u1c7IoR1HE,2595
42
- janito/agent/tools/create_file.py,sha256=YLjyhCvcUOci87Tr4ejml9W75HiIvotLAgDWTbQT-98,2420
43
- janito/agent/tools/delete_text_in_file.py,sha256=WIUDPgaaPK2Dk1WzKTPdfyckcoA6p51cwAf0SMiJj8c,3494
44
- janito/agent/tools/fetch_url.py,sha256=GsSf5pdMEa_UYv_V5lJw7kClvypVDI96KOzt2k2cAeU,3863
45
- janito/agent/tools/find_files.py,sha256=ZzPB3Pk0JzqZjzeonY3OghfyBGJu5UuppduS2D178h8,4926
46
- janito/agent/tools/get_lines.py,sha256=OO53g0tz1TnWXL8DqabQPEJhI_rYYp1VDjuSElhBPJI,6289
47
- janito/agent/tools/move_file.py,sha256=65ndePzYCR0TpI3LPmvL6qt1Tsz9nU6i-YRr3Y7dzCY,5113
48
- janito/agent/tools/open_url.py,sha256=xXGEonfvU3rCc8vOkdjeC1ibGfDnQEhHQ_qo0MIpPKk,1197
49
- janito/agent/tools/present_choices.py,sha256=XVO9jhWOUry7TedGPkOU4CG3COV_YdTUp3YiKyNKo2U,2422
50
- janito/agent/tools/python_command_runner.py,sha256=cu2EHwhgRKYERZ7Wjz-x0E_6NhNQUWnxcg1wqU4Jg_Q,8511
51
- janito/agent/tools/python_file_runner.py,sha256=nLIG4CSqMNKJyZyQ5js23LpRP8BAGjTTI1s36-YnUXg,8345
52
- janito/agent/tools/python_stdin_runner.py,sha256=rWWAX2l7vPG1poV0wnIy7K983Eft15kf-RvORxqJ1gk,8795
53
- janito/agent/tools/remove_directory.py,sha256=9NmSqlSIGbm-uvundEQM89ZMGmcgPqygnnw-Cu9lQq8,2500
54
- janito/agent/tools/remove_file.py,sha256=v6NJdECofBxYB2YRt3DCqHr91kSPVfMQlgpuL0svVEs,2409
55
- janito/agent/tools/replace_file.py,sha256=SurwU_oR6HqZ2vsxNo8Ud-NT-gayg0XipoiCWlMESDI,3275
56
- janito/agent/tools/replace_text_in_file.py,sha256=gOZOE-gIZ9Dxdzy1mQBue465kYSyAB8LTFQSh4APqoo,10974
57
- janito/agent/tools/run_bash_command.py,sha256=ea694qpN1M0bwkHkxPqRao1pSKyNmbjQnDGZgjRLZ9Q,8582
58
- janito/agent/tools/run_powershell_command.py,sha256=2s4YjsUzgElwX6KgUFq3xZcFj5wosPJ4F0nPXke6M6s,10306
59
- janito/agent/tools/get_file_outline/__init__.py,sha256=OKV_BHnoD9h-vkcVoW6AHmsuDjjauHPCKNK0nVFl4sU,37
60
- janito/agent/tools/get_file_outline/core.py,sha256=e75fij0Wx7mBveBIQirpkuu8WzMnxUIEwSylvS-UNzc,3312
61
- janito/agent/tools/get_file_outline/markdown_outline.py,sha256=bXEBg0D93tEBDNy8t-wh4i7WxsxfpQ2C3dX1_rmtj08,434
62
- janito/agent/tools/get_file_outline/python_outline.py,sha256=d_DKQjo5fbzOvQadc2A_58kmavUTVqkzpWRdFRO4sbU,5768
63
- janito/agent/tools/get_file_outline/search_outline.py,sha256=_wPdylEFvl-iE3fuwY3MEUlaDKO5cbHxN1_DTJf5x8s,1079
64
- janito/agent/tools/search_text/__init__.py,sha256=FEYpF5tTtf0fiAyRGIGSn-kV-MJDkhdFIbus16mYW8Y,34
65
- janito/agent/tools/search_text/core.py,sha256=7x4hXKXQD7OGeE2zwjWoksGxJrFT6SpTDaw3fJsu8wc,6879
66
- janito/agent/tools/search_text/match_lines.py,sha256=OjYgX9vFphambv0SfTLGZoR5Cdzf-Fp5Ytbj4sGEgnI,1999
67
- janito/agent/tools/search_text/pattern_utils.py,sha256=x8ZUVIu_yC5urafcp4f11T--2hiuLTGvjcAevOAKYOI,2123
68
- janito/agent/tools/search_text/traverse_directory.py,sha256=Ln_GaJFQ0DQ4A2qBZ1Y4tX7YMFROhonFgTHf48DDXHQ,3864
69
- janito/agent/tools/validate_file_syntax/__init__.py,sha256=P53RHmas4BbHL90cMxH9m-RpMCJI8JquoJb0rpkPVVk,29
70
- janito/agent/tools/validate_file_syntax/core.py,sha256=tmX1kaZP_W6xQbNAnXKl6V9D-MVsiKz9tads3H3W5dI,3359
71
- janito/agent/tools/validate_file_syntax/css_validator.py,sha256=tRnCzNkpiYKQ_X9yvPeDPqZvc59He2T-2CbXmCs8Hjw,1371
72
- janito/agent/tools/validate_file_syntax/html_validator.py,sha256=YlAQUmBkuE9jMiN3uepYI8W9s3E0vwONXiAdNu9l5-U,3074
73
- janito/agent/tools/validate_file_syntax/js_validator.py,sha256=oVkGxK9wBbZ3cFqwrV_aF76FDQwKPDvbXxXn1tL4We0,1018
74
- janito/agent/tools/validate_file_syntax/json_validator.py,sha256=jfft16AjPqo4opIlv36Yc1QhpwiYVlMOyfeAJuhRZ8U,170
75
- janito/agent/tools/validate_file_syntax/markdown_validator.py,sha256=IppdzFV3d9WK17VqWEal-kQXUVUuZDlR00AZ2OlVHzM,3531
76
- janito/agent/tools/validate_file_syntax/ps1_validator.py,sha256=DQbsIIC3oaFkbeK7BMjZcIzy-zkPHX1JbhMMS3q_rmc,1172
77
- janito/agent/tools/validate_file_syntax/python_validator.py,sha256=SN9eNgk9Uormr_kfyan9hCZClZ1LB5guObOzbZRyo6c,150
78
- janito/agent/tools/validate_file_syntax/xml_validator.py,sha256=nDHMnrSdjAyQhbSIJZcDuqEkeiJmjvTALlKdtn_Ny0k,304
79
- janito/agent/tools/validate_file_syntax/yaml_validator.py,sha256=zDg0F-7y9WDU5ur75tBEicIreQjZ8pXjc_FYyTUuXmo,175
80
- janito/agent/tools_utils/__init__.py,sha256=tMniEJ8rcFeiztKqidRe-sCRJh02gMw_s1OjcQB1Rg4,28
81
- janito/agent/tools_utils/action_type.py,sha256=_BzW1VnJB48WiJCyniKWVzk-M9_d14KBK5oV4VAJ30c,119
82
- janito/agent/tools_utils/dir_walk_utils.py,sha256=MY0bdKfYhAZ-8bT5S9XfFqWiq2ZOzQl0NAqz0BkyIg4,1127
83
- janito/agent/tools_utils/formatting.py,sha256=SMvOmL6bst3KGcI7OLa5D4DE127fQYuHZS3oY8OPsn8,2031
84
- janito/agent/tools_utils/gitignore_utils.py,sha256=P3iF9fMWAomqULq2xsoqHtI9uNIFSPcagljrxZshmLw,4110
85
- janito/agent/tools_utils/test_gitignore_utils.py,sha256=ydA9mzza7QzgyEPjYsecKzPLyYFk0DGBVBz113LGklY,1891
86
- janito/agent/tools_utils/utils.py,sha256=wLGOy0tGr-s9LmBOsU-04ZIpcQgFCWUoY8SEvT893j8,1247
87
- janito/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- janito/cli/_livereload_log_utils.py,sha256=BGhf1VT3dVR2ZhyTnZeTFg4I8Zj2tAn2UslME-ouxXA,482
89
- janito/cli/_print_config.py,sha256=fzrVy23Ppe-Dax97VU759bus-KRe1VycU5MAPbHE72g,3259
90
- janito/cli/_termweb_log_utils.py,sha256=QpH40uxPhksrJHWqthW4cR7BhcSSYakpza_qTeFGABs,722
91
- janito/cli/_utils.py,sha256=tRAUMDWKczd81ZvKYkwpsHWSeLzQoVlOoQ-lOw9Iujw,291
92
- janito/cli/arg_parser.py,sha256=4VzEBI6PPXsHQLHyH4HCax8M-6wWRryNgnr6W4n96Y4,8554
93
- janito/cli/cli_main.py,sha256=emvt6R6Ou1caIeb82W6CfjLo9L14m-UtfpUKk7vDnNI,10572
94
- janito/cli/config_commands.py,sha256=7c1a-FMaRLHSUuH93NqLlao9plg3C220xe_MnhE1zMA,7561
95
- janito/cli/config_runner.py,sha256=Nzam25C8P55dFlT_f6IlEj2ZvFwS63AAbnkIWe3oNsg,1702
96
- janito/cli/formatting_runner.py,sha256=k0mtHoglqR8fKcebSK81iWTT_EL-gDl7eNfjlFZRY6g,287
97
- janito/cli/livereload_starter.py,sha256=JivN7PRG9_dCEEOobXETQcJ7Ro9ELczg8AUbI8LHFPI,2285
98
- janito/cli/logging_setup.py,sha256=_KLF69xqq1xLPIfkXxy0EIewO-Ef2eYoxNVjqjsC0vc,1361
99
- janito/cli/main.py,sha256=6__L7xJS74SDVywpqqU7hw2_KpjTXu58-l-E9DBxiXQ,7296
100
- janito/cli/one_shot.py,sha256=CP-05-jPhrKub1sButXytcfkTcfWXD9FWHLFO4pLjbA,3244
101
- janito/cli/termweb_starter.py,sha256=lN_MXGr_Glr82kS983caPyCXdKmhwzcEERmpCrfgcDA,2797
102
- janito/i18n/__init__.py,sha256=6zCIu6pSQpoMJvIRK9oOD3pkzbNeJik3lFDXse0X6ag,994
103
- janito/i18n/messages.py,sha256=fBuwOTFoygyHPkYphm6Y0r1iE8497Z4iryVAmPhMEkg,1851
104
- janito/i18n/pt.py,sha256=52-ENCIrPW4A1tXFRT28xA8TwuUFoihs6ezJj-m3-Y4,4260
105
- janito/livereload/app.py,sha256=oJTKDN5vpix26d1MA5iQz9mPLDu4VaHisAW8wtOUEhY,666
106
- janito/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
- janito/shell/input_history.py,sha256=JedB9TQoRf31l2XGadeQtyx1qAAFPLRyXSvMLltRwZE,2542
108
- janito/shell/main.py,sha256=q_Odl3mZRlWF91ZqH9z2TLQuOaiJxtcaTZ-ExR93_PE,12207
109
- janito/shell/commands/__init__.py,sha256=CJGXhVFEQdbIL214g3vF7vhyvlvtjqjFHjSMMTjXHjM,2016
110
- janito/shell/commands/config.py,sha256=UTNbyNOLpIqlAle_JpCiffP7h5IOk7wxih-10_ok62w,959
111
- janito/shell/commands/conversation_restart.py,sha256=b32vWa7rm43lA1SrFZ0v-OAB-zf4dTP307rEr52Mt9A,2825
112
- janito/shell/commands/edit.py,sha256=l06cigmTSfWmhzCSP7enajHf2EW6HaKlQyr-5QLLEFw,791
113
- janito/shell/commands/history_view.py,sha256=SoAR5bPIF6xN85F6HoxQJxAV8BluU_934T-CaMYnN7A,797
114
- janito/shell/commands/lang.py,sha256=Ry1OgQmzgR0p6SgjWg-j5sdpHkLRIUCVGtTzkBOhJzg,599
115
- janito/shell/commands/livelogs.py,sha256=GDx9UL7bYOfemCBsIWLrKOCgG-PYy7X_VLrl5USqpgE,1758
116
- janito/shell/commands/prompt.py,sha256=r16Xmjv5mSn4eVF7SHy9mSSxvYoXM3L-ij0WeELG_Qo,2437
117
- janito/shell/commands/session.py,sha256=tYav6GgjAZkvWhlI_rfG6OArNqW6Wn2DTv39Hb20QYc,1262
118
- janito/shell/commands/session_control.py,sha256=PAFg00vXQvIhAuCtd4L149hrj8jGguB0EtBJwo-CFLo,1295
119
- janito/shell/commands/termweb_log.py,sha256=xxFz2GhFRI7w7jNk0D0Gq6RFBuzIZF1paDMK2MBeNWA,3519
120
- janito/shell/commands/tools.py,sha256=Z6kB0Lu87gzWYiUcjNB_kkX-jCNSRpZZh_qgetzhFMU,970
121
- janito/shell/commands/track.py,sha256=xOqVHjcnrMWZ_vhP1gpT0-2NUvJqPVT-MGdC38NJatg,1577
122
- janito/shell/commands/utility.py,sha256=DKcEbBIDmtxxZgWtT9-qBUVmFbCbRUILDo0kecmGJBE,992
123
- janito/shell/commands/verbose.py,sha256=mg7BlsWTkNwbUBN2p_GME4ep3zzAp0jMSc6N4BT3Ebg,980
124
- janito/shell/prompt/completer.py,sha256=6gNu0DNNSbUUVgjk8Y0hWwJwk-jbN8Lm6Y4u0mRu930,755
125
- janito/shell/prompt/load_prompt.py,sha256=gHedc5TtaFBKiGgwRM_u9nVnBuLHDTSa8VPlPOtoMEA,2125
126
- janito/shell/prompt/session_setup.py,sha256=WHnQfhd71lfXkxp5Imjgq7PdmNHkydKl_y6T1VKMwCA,1565
127
- janito/shell/session/config.py,sha256=5hBgPeYDrgxtVEyVaR8nmw1DYNmSqY8ilyuNyUXnnpQ,3684
128
- janito/shell/session/history.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
- janito/shell/session/manager.py,sha256=LGf2x9mprGOHAJhq7_OfIZM8Z2bmAEJ_KakaZr1XqXc,3116
130
- janito/shell/ui/interactive.py,sha256=icfo1QborKUk2YAvIJHRW2EjQHoY3g2p7aRWgkYv7Cw,7798
131
- janito/termweb/app.py,sha256=co4a7cw6pC2P79dMZaNxjPJrP_B9suTGRIWTgqK5ccw,3322
132
- janito/termweb/static/editor.css,sha256=71xpzRL993GPKKJPfTVcPI6iHhjnUg2U5-z33EAuTWA,3185
133
- janito/termweb/static/editor.css.bak,sha256=S7tMjZFtcDZyx4asRf-WNclyuK9_rnemwOc6JpzSwdQ,2908
134
- janito/termweb/static/editor.html,sha256=tqUZUWxmL6NRWoPI4fgtz2UIdK4k2Y7BnoEBiGJ-ILA,3069
135
- janito/termweb/static/editor.html.bak,sha256=7gXtQjd6psAVVdfXnqe1fhtDnKQxaNmnlaLgJvgt8pY,3011
136
- janito/termweb/static/editor.js,sha256=PV0EQMqWsxqVUu5VsFk5qNOo6WF7o0ZLSvIP4CpUZLY,10159
137
- janito/termweb/static/editor.js.bak,sha256=O91nykKXaG2EwU4BtKmmR9Zqa42lRK-VYMQ00_a129M,9998
138
- janito/termweb/static/explorer.html.bak,sha256=PM1fcbaQJm545WT94mVEekUNW3jduBAHOz6rwJBR1FA,2568
139
- janito/termweb/static/favicon.ico,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
- janito/termweb/static/favicon.ico.bak,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- janito/termweb/static/index.html,sha256=Kt-fSp4Daefef8NOe-l034s8sFecmxexxmbHsd33rfI,2816
142
- janito/termweb/static/index.html.bak,sha256=lwF9j4C0wL56rBEU3f0s3HzdSGOWxf64LbQhBUh5fxU,2934
143
- janito/termweb/static/index.html.bak.bak,sha256=dsKoC2lE0oJCGUUDTWcnIQE3s5Uoqd12WoTkWEwbH_c,6626
144
- janito/termweb/static/landing.html.bak,sha256=JGwIcATj0B8MhHXLoXg2clypqsKJwi54NtW-rRDUsMs,1403
145
- janito/termweb/static/termicon.svg,sha256=vc2Z3q-ADVK3pLzE3wnw_qpR6vDguWKEdH_pWObPjbw,229
146
- janito/termweb/static/termweb.css,sha256=yygj2xaFiT-0RNIQk0V8I-vNuzYAo5gUsq-Z8yVNwvs,4430
147
- janito/termweb/static/termweb.css.bak,sha256=aYzXm6iawtaBzofeCw1KC74K003xUq4eRR2ET-OAbVE,4931
148
- janito/termweb/static/termweb.js,sha256=6NfpyK9T8A2JccBvZ5FjQ--j-tYOpfF2nqxNvMSs4u8,7489
149
- janito/termweb/static/termweb.js.bak,sha256=hVzFd4gGMPEPvJEicQsXQpePp9mTjKVB_tS29xfWPhs,7720
150
- janito/termweb/static/termweb.js.bak.bak,sha256=SQeqc9YwdreCmFJ7LtCYlHOjRHi8rsoW_fZ3x5WroWQ,7692
151
- janito/termweb/static/termweb_quickopen.js,sha256=HNT85JjWAvjI5ROwukOU-oI4ZVVjCO6yg5IT115pdXI,5379
152
- janito/termweb/static/termweb_quickopen.js.bak,sha256=sk_zbEw6HJt1iZSAYlaW0qAhq0to-KcBsOKx0AZqkKA,4814
153
- janito/tests/test_rich_utils.py,sha256=S_mGVynekAP0DM4A_ZaY-SseJGtdlBJxOlzc-v8lJX8,1283
154
- janito/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
- janito/web/__main__.py,sha256=5Ck6okOZmxKYkQ-ir4mxXDH7XWMNR-9szgsm0UyQLE0,734
156
- janito/web/app.py,sha256=-zUBA1zlnrZdYbI421CSAgFZXOisLmIznNzUJrkSLQQ,4762
157
- janito-1.14.3.dist-info/licenses/LICENSE,sha256=sHBqv0bvtrb29H7WRR-Z603YHm9pLtJIo3nHU_9cmgE,1091
158
- janito-1.14.3.dist-info/METADATA,sha256=sEoeDSpRcwVXhol4d1CGLJINmYjEDlXTMP7UGpEuB8Y,12917
159
- janito-1.14.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
160
- janito-1.14.3.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
161
- janito-1.14.3.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
162
- janito-1.14.3.dist-info/RECORD,,
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) [year] [Full Name]
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
File without changes