janito 1.11.1__tar.gz → 1.12.1__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 (191) hide show
  1. {janito-1.11.1/janito.egg-info → janito-1.12.1}/PKG-INFO +1 -1
  2. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/editor.css +18 -5
  3. janito-1.11.1/janito/termweb/static/editor.html.bak → janito-1.12.1/janito/termweb/static/editor.html +12 -10
  4. janito-1.11.1/janito/termweb/static/editor.html → janito-1.12.1/janito/termweb/static/editor.html.bak +11 -10
  5. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/editor.js +2 -0
  6. {janito-1.11.1 → janito-1.12.1/janito.egg-info}/PKG-INFO +1 -1
  7. {janito-1.11.1 → janito-1.12.1}/pyproject.toml +1 -1
  8. {janito-1.11.1 → janito-1.12.1}/LICENSE +0 -0
  9. {janito-1.11.1 → janito-1.12.1}/MANIFEST.in +0 -0
  10. {janito-1.11.1 → janito-1.12.1}/README.md +0 -0
  11. {janito-1.11.1 → janito-1.12.1}/janito/__init__.py +0 -0
  12. {janito-1.11.1 → janito-1.12.1}/janito/__main__.py +0 -0
  13. {janito-1.11.1 → janito-1.12.1}/janito/agent/__init__.py +0 -0
  14. {janito-1.11.1 → janito-1.12.1}/janito/agent/api_exceptions.py +0 -0
  15. {janito-1.11.1 → janito-1.12.1}/janito/agent/config.py +0 -0
  16. {janito-1.11.1 → janito-1.12.1}/janito/agent/config_defaults.py +0 -0
  17. {janito-1.11.1 → janito-1.12.1}/janito/agent/config_utils.py +0 -0
  18. {janito-1.11.1 → janito-1.12.1}/janito/agent/content_handler.py +0 -0
  19. {janito-1.11.1 → janito-1.12.1}/janito/agent/conversation.py +0 -0
  20. {janito-1.11.1 → janito-1.12.1}/janito/agent/conversation_api.py +0 -0
  21. {janito-1.11.1 → janito-1.12.1}/janito/agent/conversation_exceptions.py +0 -0
  22. {janito-1.11.1 → janito-1.12.1}/janito/agent/conversation_tool_calls.py +0 -0
  23. {janito-1.11.1 → janito-1.12.1}/janito/agent/conversation_ui.py +0 -0
  24. {janito-1.11.1 → janito-1.12.1}/janito/agent/event.py +0 -0
  25. {janito-1.11.1 → janito-1.12.1}/janito/agent/event_dispatcher.py +0 -0
  26. {janito-1.11.1 → janito-1.12.1}/janito/agent/event_handler_protocol.py +0 -0
  27. {janito-1.11.1 → janito-1.12.1}/janito/agent/event_system.py +0 -0
  28. {janito-1.11.1 → janito-1.12.1}/janito/agent/llm_conversation_history.py +0 -0
  29. {janito-1.11.1 → janito-1.12.1}/janito/agent/message_handler.py +0 -0
  30. {janito-1.11.1 → janito-1.12.1}/janito/agent/message_handler_protocol.py +0 -0
  31. {janito-1.11.1 → janito-1.12.1}/janito/agent/openai_client.py +0 -0
  32. {janito-1.11.1 → janito-1.12.1}/janito/agent/openai_schema_generator.py +0 -0
  33. {janito-1.11.1 → janito-1.12.1}/janito/agent/platform_discovery.py +0 -0
  34. {janito-1.11.1 → janito-1.12.1}/janito/agent/profile_manager.py +0 -0
  35. {janito-1.11.1 → janito-1.12.1}/janito/agent/queued_message_handler.py +0 -0
  36. {janito-1.11.1 → janito-1.12.1}/janito/agent/rich_live.py +0 -0
  37. {janito-1.11.1 → janito-1.12.1}/janito/agent/rich_message_handler.py +0 -0
  38. {janito-1.11.1 → janito-1.12.1}/janito/agent/runtime_config.py +0 -0
  39. {janito-1.11.1 → janito-1.12.1}/janito/agent/templates/profiles/system_prompt_template_base.txt.j2 +0 -0
  40. {janito-1.11.1 → janito-1.12.1}/janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2 +0 -0
  41. {janito-1.11.1 → janito-1.12.1}/janito/agent/test_handler_protocols.py +0 -0
  42. {janito-1.11.1 → janito-1.12.1}/janito/agent/test_openai_schema_generator.py +0 -0
  43. {janito-1.11.1 → janito-1.12.1}/janito/agent/tests/__init__.py +0 -0
  44. {janito-1.11.1 → janito-1.12.1}/janito/agent/tool_base.py +0 -0
  45. {janito-1.11.1 → janito-1.12.1}/janito/agent/tool_executor.py +0 -0
  46. {janito-1.11.1 → janito-1.12.1}/janito/agent/tool_registry.py +0 -0
  47. {janito-1.11.1 → janito-1.12.1}/janito/agent/tool_use_tracker.py +0 -0
  48. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/__init__.py +0 -0
  49. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/ask_user.py +0 -0
  50. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/create_directory.py +0 -0
  51. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/create_file.py +0 -0
  52. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/delete_text_in_file.py +0 -0
  53. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/fetch_url.py +0 -0
  54. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/find_files.py +0 -0
  55. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/get_file_outline/__init__.py +0 -0
  56. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/get_file_outline/core.py +0 -0
  57. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/get_file_outline/markdown_outline.py +0 -0
  58. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/get_file_outline/python_outline.py +0 -0
  59. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/get_file_outline/search_outline.py +0 -0
  60. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/get_lines.py +0 -0
  61. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/move_file.py +0 -0
  62. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/open_url.py +0 -0
  63. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/present_choices.py +0 -0
  64. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/python_command_runner.py +0 -0
  65. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/python_file_runner.py +0 -0
  66. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/python_stdin_runner.py +0 -0
  67. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/remove_directory.py +0 -0
  68. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/remove_file.py +0 -0
  69. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/replace_file.py +0 -0
  70. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/replace_text_in_file.py +0 -0
  71. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/run_bash_command.py +0 -0
  72. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/run_powershell_command.py +0 -0
  73. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/search_text/__init__.py +0 -0
  74. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/search_text/core.py +0 -0
  75. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/search_text/match_lines.py +0 -0
  76. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/search_text/pattern_utils.py +0 -0
  77. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/search_text/traverse_directory.py +0 -0
  78. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/__init__.py +0 -0
  79. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/core.py +0 -0
  80. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/css_validator.py +0 -0
  81. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/html_validator.py +0 -0
  82. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/js_validator.py +0 -0
  83. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/json_validator.py +0 -0
  84. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/markdown_validator.py +0 -0
  85. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/ps1_validator.py +0 -0
  86. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/python_validator.py +0 -0
  87. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/xml_validator.py +0 -0
  88. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools/validate_file_syntax/yaml_validator.py +0 -0
  89. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/__init__.py +0 -0
  90. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/action_type.py +0 -0
  91. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/dir_walk_utils.py +0 -0
  92. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/formatting.py +0 -0
  93. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/gitignore_utils.py +0 -0
  94. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/test_gitignore_utils.py +0 -0
  95. {janito-1.11.1 → janito-1.12.1}/janito/agent/tools_utils/utils.py +0 -0
  96. {janito-1.11.1 → janito-1.12.1}/janito/cli/__init__.py +0 -0
  97. {janito-1.11.1 → janito-1.12.1}/janito/cli/_livereload_log_utils.py +0 -0
  98. {janito-1.11.1 → janito-1.12.1}/janito/cli/_print_config.py +0 -0
  99. {janito-1.11.1 → janito-1.12.1}/janito/cli/_termweb_log_utils.py +0 -0
  100. {janito-1.11.1 → janito-1.12.1}/janito/cli/_utils.py +0 -0
  101. {janito-1.11.1 → janito-1.12.1}/janito/cli/arg_parser.py +0 -0
  102. {janito-1.11.1 → janito-1.12.1}/janito/cli/cli_main.py +0 -0
  103. {janito-1.11.1 → janito-1.12.1}/janito/cli/config_commands.py +0 -0
  104. {janito-1.11.1 → janito-1.12.1}/janito/cli/config_runner.py +0 -0
  105. {janito-1.11.1 → janito-1.12.1}/janito/cli/formatting_runner.py +0 -0
  106. {janito-1.11.1 → janito-1.12.1}/janito/cli/livereload_starter.py +0 -0
  107. {janito-1.11.1 → janito-1.12.1}/janito/cli/logging_setup.py +0 -0
  108. {janito-1.11.1 → janito-1.12.1}/janito/cli/main.py +0 -0
  109. {janito-1.11.1 → janito-1.12.1}/janito/cli/one_shot.py +0 -0
  110. {janito-1.11.1 → janito-1.12.1}/janito/cli/termweb_starter.py +0 -0
  111. {janito-1.11.1 → janito-1.12.1}/janito/i18n/__init__.py +0 -0
  112. {janito-1.11.1 → janito-1.12.1}/janito/i18n/messages.py +0 -0
  113. {janito-1.11.1 → janito-1.12.1}/janito/i18n/pt.py +0 -0
  114. {janito-1.11.1 → janito-1.12.1}/janito/livereload/app.py +0 -0
  115. {janito-1.11.1 → janito-1.12.1}/janito/rich_utils.py +0 -0
  116. {janito-1.11.1 → janito-1.12.1}/janito/shell/__init__.py +0 -0
  117. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/__init__.py +0 -0
  118. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/config.py +0 -0
  119. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/conversation_restart.py +0 -0
  120. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/edit.py +0 -0
  121. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/history_view.py +0 -0
  122. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/lang.py +0 -0
  123. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/livelogs.py +0 -0
  124. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/prompt.py +0 -0
  125. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/session.py +0 -0
  126. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/session_control.py +0 -0
  127. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/termweb_log.py +0 -0
  128. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/tools.py +0 -0
  129. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/track.py +0 -0
  130. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/utility.py +0 -0
  131. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands/verbose.py +0 -0
  132. {janito-1.11.1 → janito-1.12.1}/janito/shell/commands.py +0 -0
  133. {janito-1.11.1 → janito-1.12.1}/janito/shell/input_history.py +0 -0
  134. {janito-1.11.1 → janito-1.12.1}/janito/shell/main.py +0 -0
  135. {janito-1.11.1 → janito-1.12.1}/janito/shell/prompt/completer.py +0 -0
  136. {janito-1.11.1 → janito-1.12.1}/janito/shell/prompt/load_prompt.py +0 -0
  137. {janito-1.11.1 → janito-1.12.1}/janito/shell/prompt/session_setup.py +0 -0
  138. {janito-1.11.1 → janito-1.12.1}/janito/shell/session/config.py +0 -0
  139. {janito-1.11.1 → janito-1.12.1}/janito/shell/session/history.py +0 -0
  140. {janito-1.11.1 → janito-1.12.1}/janito/shell/session/manager.py +0 -0
  141. {janito-1.11.1 → janito-1.12.1}/janito/shell/ui/interactive.py +0 -0
  142. {janito-1.11.1 → janito-1.12.1}/janito/termweb/app.py +0 -0
  143. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/editor.css.bak +0 -0
  144. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/editor.js.bak +0 -0
  145. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/explorer.html.bak +0 -0
  146. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/favicon.ico +0 -0
  147. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/favicon.ico.bak +0 -0
  148. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/index.html +0 -0
  149. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/index.html.bak +0 -0
  150. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/index.html.bak.bak +0 -0
  151. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/landing.html.bak +0 -0
  152. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termicon.svg +0 -0
  153. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb.css +0 -0
  154. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb.css.bak +0 -0
  155. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb.js +0 -0
  156. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb.js.bak +0 -0
  157. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb.js.bak.bak +0 -0
  158. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb_quickopen.js +0 -0
  159. {janito-1.11.1 → janito-1.12.1}/janito/termweb/static/termweb_quickopen.js.bak +0 -0
  160. {janito-1.11.1 → janito-1.12.1}/janito/tests/test_rich_utils.py +0 -0
  161. {janito-1.11.1 → janito-1.12.1}/janito/web/__init__.py +0 -0
  162. {janito-1.11.1 → janito-1.12.1}/janito/web/__main__.py +0 -0
  163. {janito-1.11.1 → janito-1.12.1}/janito/web/app.py +0 -0
  164. {janito-1.11.1 → janito-1.12.1}/janito.egg-info/SOURCES.txt +0 -0
  165. {janito-1.11.1 → janito-1.12.1}/janito.egg-info/dependency_links.txt +0 -0
  166. {janito-1.11.1 → janito-1.12.1}/janito.egg-info/entry_points.txt +0 -0
  167. {janito-1.11.1 → janito-1.12.1}/janito.egg-info/requires.txt +0 -0
  168. {janito-1.11.1 → janito-1.12.1}/janito.egg-info/top_level.txt +0 -0
  169. {janito-1.11.1 → janito-1.12.1}/setup.cfg +0 -0
  170. {janito-1.11.1 → janito-1.12.1}/tests/test_basic.py +0 -0
  171. {janito-1.11.1 → janito-1.12.1}/tests/test_find_files.py +0 -0
  172. {janito-1.11.1 → janito-1.12.1}/tests/test_outline_formatter.py +0 -0
  173. {janito-1.11.1 → janito-1.12.1}/tests/test_outline_no_overlap.py +0 -0
  174. {janito-1.11.1 → janito-1.12.1}/tests/test_outline_python_file.py +0 -0
  175. {janito-1.11.1 → janito-1.12.1}/tests/test_outline_python_file_complex.py +0 -0
  176. {janito-1.11.1 → janito-1.12.1}/tests/test_outline_tool_run.py +0 -0
  177. {janito-1.11.1 → janito-1.12.1}/tests/test_platform_discovery.py +0 -0
  178. {janito-1.11.1 → janito-1.12.1}/tests/test_python_command_runner.py +0 -0
  179. {janito-1.11.1 → janito-1.12.1}/tests/test_python_file_runner.py +0 -0
  180. {janito-1.11.1 → janito-1.12.1}/tests/test_python_stdin_runner.py +0 -0
  181. {janito-1.11.1 → janito-1.12.1}/tests/test_rich_message_handler_action_type.py +0 -0
  182. {janito-1.11.1 → janito-1.12.1}/tests/test_run_powershell_command.py +0 -0
  183. {janito-1.11.1 → janito-1.12.1}/tests/test_search_text.py +0 -0
  184. {janito-1.11.1 → janito-1.12.1}/tests/test_set_role.py +0 -0
  185. {janito-1.11.1 → janito-1.12.1}/tests/test_tool_registry_docstring_formats.py +0 -0
  186. {janito-1.11.1 → janito-1.12.1}/tests/test_tool_registry_manual_sim.py +0 -0
  187. {janito-1.11.1 → janito-1.12.1}/tests/test_tool_registry_validation.py +0 -0
  188. {janito-1.11.1 → janito-1.12.1}/tests/test_tool_use_tracker.py +0 -0
  189. {janito-1.11.1 → janito-1.12.1}/tests/test_validate_file_syntax.py +0 -0
  190. {janito-1.11.1 → janito-1.12.1}/tests/test_validate_file_syntax_xml_html.py +0 -0
  191. {janito-1.11.1 → janito-1.12.1}/tests/test_validate_markdown_syntax.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 1.11.1
3
+ Version: 1.12.1
4
4
  Summary: Natural Language Coding Agent,
5
5
  Author-email: João Pinto <joao.pinto@gmail.com>
6
6
  License-Expression: MIT
@@ -31,18 +31,29 @@ body.light-theme {
31
31
  min-height: 0;
32
32
  padding: 0;
33
33
  margin: 0;
34
- height: 100%;
35
34
  }
36
35
  .editor-pane {
37
36
  flex: 1 1 auto;
38
37
  display: flex;
39
38
  flex-direction: column;
40
- height: 100%;
41
39
  min-height: 0;
42
40
  padding: 0;
43
41
  margin: 0;
44
42
  }
45
43
  /* Removed custom .CodeMirror background/color to use CodeMirror's theme defaults */
44
+
45
+ /* Ensure editor fills available space */
46
+ .editor-pane textarea, .editor-pane .CodeMirror {
47
+ flex: 1 1 auto;
48
+ width: 100%;
49
+ height: 100%;
50
+ min-height: 0;
51
+ min-width: 0;
52
+ box-sizing: border-box;
53
+ resize: none;
54
+ display: block;
55
+ }
56
+
46
57
  .header {
47
58
  background: #222;
48
59
  color: #fff;
@@ -86,16 +97,18 @@ body.light-theme .filename-display {
86
97
  }
87
98
 
88
99
  .footer {
100
+ position: relative;
101
+ flex-shrink: 0;
89
102
  width: 100%;
90
- background: #23272b;
103
+ background: #222;
91
104
  color: #fff;
92
105
  padding: 4px 12px;
93
106
  box-sizing: border-box;
94
107
  display: flex;
95
108
  align-items: center;
96
- justify-content: flex-start;
109
+ justify-content: space-between;
97
110
  border-top: 1px solid #333;
98
- min-height: 28px;
111
+ height: 36px;
99
112
  font-size: 0.95em;
100
113
  }
101
114
 
@@ -12,22 +12,24 @@
12
12
  </head>
13
13
  <body>
14
14
  <div class="header">
15
- <div class="header-title">Janito Light Editor</div>
16
- <span id="filename-display" class="filename-display"></span>
17
- <div style="flex:1 1 auto;"></div>
18
- <button class="theme-switcher" id="theme-switcher" title="Alternator tema">
19
- <span id="theme-icon" aria-label="Switch theme" style="pointer-events:none;">🌙</span>
20
- </button>
21
- </div>
22
- <div class="footer">
23
- <button class="save-btn" id="save-btn">Save</button>
15
+ <div class="header-title">Janito Light Editor</div>
16
+ <span id="filename-display" class="filename-display"></span>
17
+ <div style="flex:1 1 auto;"></div>
18
+ <button class="theme-switcher" id="theme-switcher" title="Alternator tema">
19
+ <span id="theme-icon" aria-label="Switch theme" style="pointer-events:none;">🌙</span>
20
+ </button>
24
21
  </div>
25
- <div id="save-popup" style="display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;background:#323b4c;color:#fff;padding:14px 28px;border-radius:8px;box-shadow:0 2px 12px #0007;font-size:1.1em;">Saved!</div>
26
22
  <div class="main">
27
23
  <div class="editor-pane">
28
24
  <textarea id="code" name="code"></textarea>
25
+ <div id="save-popup" style="display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;background:#2196f3;color:#fff;padding:14px 28px;border-radius:8px;box-shadow:0 4px 16px #1976d288;border:2px solid #1976d2;font-size:1.1em;">Saved!</div>
29
26
  </div>
30
27
  </div>
28
+ <div class="footer">
29
+ <button class="save-btn" id="save-btn">Save</button>
30
+
31
+ </div>
32
+ <div id="save-popup" style="display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;background:#2196f3;color:#fff;padding:14px 28px;border-radius:8px;box-shadow:0 4px 16px #1976d288;border:2px solid #1976d2;font-size:1.1em;">Saved!</div>
31
33
  <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.13/codemirror.min.js"></script>
32
34
  <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.13/mode/python/python.min.js"></script>
33
35
  <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.13/mode/django/django.min.js"></script>
@@ -12,23 +12,24 @@
12
12
  </head>
13
13
  <body>
14
14
  <div class="header">
15
- <div class="header-title">Janito Light Editor</div>
16
- <span id="filename-display" class="filename-display"></span>
17
- <div style="flex:1 1 auto;"></div>
18
- <button class="theme-switcher" id="theme-switcher" title="Alternator tema">
19
- <span id="theme-icon" aria-label="Switch theme" style="pointer-events:none;">🌙</span>
20
- </button>
21
- </div>
22
- <div class="footer">
23
- <button class="save-btn" id="save-btn">Save</button>
15
+ <div class="header-title">Janito Light Editor</div>
16
+ <span id="filename-display" class="filename-display"></span>
17
+ <div style="flex:1 1 auto;"></div>
18
+ <button class="theme-switcher" id="theme-switcher" title="Alternator tema">
19
+ <span id="theme-icon" aria-label="Switch theme" style="pointer-events:none;">🌙</span>
20
+ </button>
24
21
  </div>
25
- <div id="save-popup" style="display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;background:#323b4c;color:#fff;padding:14px 28px;border-radius:8px;box-shadow:0 2px 12px #0007;font-size:1.1em;">Saved!</div>
26
22
  <div class="main">
27
23
  <div class="editor-pane">
28
24
  <textarea id="code" name="code"></textarea>
29
25
  <div id="save-popup" style="display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;background:#323b4c;color:#fff;padding:14px 28px;border-radius:8px;box-shadow:0 2px 12px #0007;font-size:1.1em;">Saved!</div>
30
26
  </div>
31
27
  </div>
28
+ <div class="footer">
29
+ <button class="save-btn" id="save-btn">Save</button>
30
+
31
+ </div>
32
+ <div id="save-popup" style="display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9999;background:#323b4c;color:#fff;padding:14px 28px;border-radius:8px;box-shadow:0 2px 12px #0007;font-size:1.1em;">Saved!</div>
32
33
  <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.13/codemirror.min.js"></script>
33
34
  <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.13/mode/python/python.min.js"></script>
34
35
  <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.13/mode/django/django.min.js"></script>
@@ -91,6 +91,8 @@ document.addEventListener('DOMContentLoaded', function() {
91
91
  editorInstance.setOption('mode', mode);
92
92
  }
93
93
  window.editorInstance = editorInstance;
94
+
95
+
94
96
  // Add Ctrl-F handler for find
95
97
  editorInstance.addKeyMap({
96
98
  'Ctrl-F': function(cm) {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: janito
3
- Version: 1.11.1
3
+ Version: 1.12.1
4
4
  Summary: Natural Language Coding Agent,
5
5
  Author-email: João Pinto <joao.pinto@gmail.com>
6
6
  License-Expression: MIT
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "janito"
3
3
 
4
- version = "1.11.1"
4
+ version = "1.12.1"
5
5
  description = "Natural Language Coding Agent,"
6
6
  authors = [
7
7
  { name = "João Pinto", email = "joao.pinto@gmail.com" }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes