janito 2.2.0__py3-none-any.whl → 2.3.0__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 (130) hide show
  1. janito/__init__.py +6 -6
  2. janito/agent/setup_agent.py +14 -5
  3. janito/agent/templates/profiles/system_prompt_template_main.txt.j2 +3 -1
  4. janito/cli/chat_mode/bindings.py +6 -0
  5. janito/cli/chat_mode/session.py +16 -0
  6. janito/cli/chat_mode/shell/autocomplete.py +21 -21
  7. janito/cli/chat_mode/shell/commands/__init__.py +3 -0
  8. janito/cli/chat_mode/shell/commands/clear.py +12 -12
  9. janito/cli/chat_mode/shell/commands/exec.py +27 -0
  10. janito/cli/chat_mode/shell/commands/multi.py +51 -51
  11. janito/cli/chat_mode/shell/commands/tools.py +17 -6
  12. janito/cli/chat_mode/shell/input_history.py +62 -62
  13. janito/cli/chat_mode/shell/session/manager.py +1 -0
  14. janito/cli/chat_mode/toolbar.py +1 -0
  15. janito/cli/cli_commands/list_models.py +35 -35
  16. janito/cli/cli_commands/list_providers.py +9 -9
  17. janito/cli/cli_commands/list_tools.py +53 -53
  18. janito/cli/cli_commands/model_selection.py +50 -50
  19. janito/cli/cli_commands/model_utils.py +13 -2
  20. janito/cli/cli_commands/set_api_key.py +19 -19
  21. janito/cli/cli_commands/show_config.py +51 -51
  22. janito/cli/cli_commands/show_system_prompt.py +62 -62
  23. janito/cli/config.py +2 -1
  24. janito/cli/core/__init__.py +4 -4
  25. janito/cli/core/event_logger.py +59 -59
  26. janito/cli/core/getters.py +3 -1
  27. janito/cli/core/runner.py +165 -148
  28. janito/cli/core/setters.py +5 -1
  29. janito/cli/core/unsetters.py +54 -54
  30. janito/cli/main_cli.py +12 -1
  31. janito/cli/prompt_core.py +5 -2
  32. janito/cli/rich_terminal_reporter.py +22 -3
  33. janito/cli/single_shot_mode/__init__.py +6 -6
  34. janito/cli/single_shot_mode/handler.py +11 -1
  35. janito/cli/verbose_output.py +1 -1
  36. janito/config.py +5 -5
  37. janito/config_manager.py +2 -0
  38. janito/driver_events.py +14 -0
  39. janito/drivers/anthropic/driver.py +113 -113
  40. janito/drivers/azure_openai/driver.py +38 -3
  41. janito/drivers/driver_registry.py +0 -2
  42. janito/drivers/openai/driver.py +196 -36
  43. janito/formatting_token.py +54 -54
  44. janito/i18n/__init__.py +35 -35
  45. janito/i18n/messages.py +23 -23
  46. janito/i18n/pt.py +47 -47
  47. janito/llm/__init__.py +5 -5
  48. janito/llm/agent.py +443 -443
  49. janito/llm/auth.py +1 -0
  50. janito/llm/driver.py +7 -1
  51. janito/llm/driver_config.py +1 -0
  52. janito/llm/driver_config_builder.py +34 -34
  53. janito/llm/driver_input.py +12 -12
  54. janito/llm/message_parts.py +60 -60
  55. janito/llm/model.py +38 -38
  56. janito/llm/provider.py +196 -196
  57. janito/provider_config.py +7 -3
  58. janito/provider_registry.py +176 -158
  59. janito/providers/__init__.py +1 -0
  60. janito/providers/anthropic/model_info.py +22 -22
  61. janito/providers/anthropic/provider.py +2 -2
  62. janito/providers/azure_openai/model_info.py +7 -6
  63. janito/providers/azure_openai/provider.py +30 -2
  64. janito/providers/deepseek/__init__.py +1 -1
  65. janito/providers/deepseek/model_info.py +16 -16
  66. janito/providers/deepseek/provider.py +91 -91
  67. janito/providers/google/model_info.py +21 -29
  68. janito/providers/google/provider.py +49 -38
  69. janito/providers/mistralai/provider.py +2 -2
  70. janito/providers/provider_static_info.py +2 -3
  71. janito/tools/adapters/__init__.py +1 -1
  72. janito/tools/adapters/local/adapter.py +33 -11
  73. janito/tools/adapters/local/ask_user.py +102 -102
  74. janito/tools/adapters/local/copy_file.py +84 -84
  75. janito/tools/adapters/local/create_directory.py +69 -69
  76. janito/tools/adapters/local/create_file.py +82 -82
  77. janito/tools/adapters/local/delete_text_in_file.py +4 -7
  78. janito/tools/adapters/local/fetch_url.py +97 -97
  79. janito/tools/adapters/local/find_files.py +138 -138
  80. janito/tools/adapters/local/get_file_outline/__init__.py +1 -1
  81. janito/tools/adapters/local/get_file_outline/core.py +117 -117
  82. janito/tools/adapters/local/get_file_outline/java_outline.py +40 -40
  83. janito/tools/adapters/local/get_file_outline/markdown_outline.py +14 -14
  84. janito/tools/adapters/local/get_file_outline/python_outline.py +303 -303
  85. janito/tools/adapters/local/get_file_outline/python_outline_v2.py +156 -156
  86. janito/tools/adapters/local/get_file_outline/search_outline.py +33 -33
  87. janito/tools/adapters/local/move_file.py +3 -13
  88. janito/tools/adapters/local/python_code_run.py +166 -166
  89. janito/tools/adapters/local/python_command_run.py +164 -164
  90. janito/tools/adapters/local/python_file_run.py +163 -163
  91. janito/tools/adapters/local/remove_directory.py +6 -17
  92. janito/tools/adapters/local/remove_file.py +4 -10
  93. janito/tools/adapters/local/replace_text_in_file.py +6 -9
  94. janito/tools/adapters/local/run_bash_command.py +176 -176
  95. janito/tools/adapters/local/run_powershell_command.py +219 -219
  96. janito/tools/adapters/local/search_text/__init__.py +1 -1
  97. janito/tools/adapters/local/search_text/core.py +201 -201
  98. janito/tools/adapters/local/search_text/match_lines.py +1 -1
  99. janito/tools/adapters/local/search_text/pattern_utils.py +73 -73
  100. janito/tools/adapters/local/search_text/traverse_directory.py +145 -145
  101. janito/tools/adapters/local/validate_file_syntax/__init__.py +1 -1
  102. janito/tools/adapters/local/validate_file_syntax/core.py +106 -106
  103. janito/tools/adapters/local/validate_file_syntax/css_validator.py +35 -35
  104. janito/tools/adapters/local/validate_file_syntax/html_validator.py +93 -93
  105. janito/tools/adapters/local/validate_file_syntax/js_validator.py +27 -27
  106. janito/tools/adapters/local/validate_file_syntax/json_validator.py +6 -6
  107. janito/tools/adapters/local/validate_file_syntax/markdown_validator.py +109 -109
  108. janito/tools/adapters/local/validate_file_syntax/ps1_validator.py +32 -32
  109. janito/tools/adapters/local/validate_file_syntax/python_validator.py +5 -5
  110. janito/tools/adapters/local/validate_file_syntax/xml_validator.py +11 -11
  111. janito/tools/adapters/local/validate_file_syntax/yaml_validator.py +6 -6
  112. janito/tools/adapters/local/view_file.py +167 -167
  113. janito/tools/inspect_registry.py +17 -17
  114. janito/tools/tool_base.py +105 -105
  115. janito/tools/tool_events.py +58 -58
  116. janito/tools/tool_run_exception.py +12 -12
  117. janito/tools/tool_use_tracker.py +81 -81
  118. janito/tools/tool_utils.py +45 -45
  119. janito/tools/tools_adapter.py +78 -6
  120. janito/tools/tools_schema.py +104 -104
  121. janito/version.py +4 -4
  122. {janito-2.2.0.dist-info → janito-2.3.0.dist-info}/METADATA +388 -251
  123. janito-2.3.0.dist-info/RECORD +181 -0
  124. janito/drivers/google_genai/driver.py +0 -54
  125. janito/drivers/google_genai/schema_generator.py +0 -67
  126. janito-2.2.0.dist-info/RECORD +0 -182
  127. {janito-2.2.0.dist-info → janito-2.3.0.dist-info}/WHEEL +0 -0
  128. {janito-2.2.0.dist-info → janito-2.3.0.dist-info}/entry_points.txt +0 -0
  129. {janito-2.2.0.dist-info → janito-2.3.0.dist-info}/licenses/LICENSE +0 -0
  130. {janito-2.2.0.dist-info → janito-2.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,181 @@
1
+ janito/__init__.py,sha256=8MEGY4TmcQVDzG_QEpN3MrRAimTWPVLwdfTpTofOODU,226
2
+ janito/__main__.py,sha256=lPQ8kAyYfyeS1KopmJ8EVY5g1YswlIqCS615mM_B_rM,70
3
+ janito/config.py,sha256=v4RWybUr4qy6qRlUQmwf51xzqDGhuclqRXGh3hTW14A,196
4
+ janito/config_manager.py,sha256=KGYvaL7Iwgxqd_0xfG_KMmi1YDz19k2dxrUpylcA08c,4351
5
+ janito/conversation_history.py,sha256=GqqEJElTVONzOMRe-9g25WCMcDi0PF7DOnqGWLTrY_8,897
6
+ janito/dir_walk_utils.py,sha256=ON9EyVH7Aaik8WtCH5z8DQis9ycdoNVkjNvU16HH498,1193
7
+ janito/driver_events.py,sha256=51ab7KW_W6fVZVeO0ez-HJFY4NbTI327ZlEmEsEkxQc,3405
8
+ janito/exceptions.py,sha256=l4AepRdWwAuLp5fUygrBBgO9rpwgfV6JvY1afOdq2pw,913
9
+ janito/formatting.py,sha256=SMvOmL6bst3KGcI7OLa5D4DE127fQYuHZS3oY8OPsn8,2031
10
+ janito/formatting_token.py,sha256=BzJoAuYxhOlZJixuR2m-e8L7jbV1FhzFvJz9SzXXMFM,1911
11
+ janito/gitignore_utils.py,sha256=P3iF9fMWAomqULq2xsoqHtI9uNIFSPcagljrxZshmLw,4110
12
+ janito/perf_singleton.py,sha256=g1h0Sdf4ydzegeEpJlMhQt4H0GQZ2hryXrdYOTL-b30,113
13
+ janito/performance_collector.py,sha256=RYu4av16Trj3RljJZ8-2Gbn1KlGdJUosrcVFYtwviNI,6285
14
+ janito/platform_discovery.py,sha256=JN3kC7hkxdvuj-AyrJTlbbDJjtNHke3fdlZDqGi_uz0,4621
15
+ janito/provider_config.py,sha256=acn2FEgWsEIyi2AxZiuCLoP2rXDd-nXcP5VB4CZHaeE,3189
16
+ janito/provider_registry.py,sha256=QUDr0KDnlNMOEZnwxpeSjkF9jSxtxXyS1-lNPklfwOA,7587
17
+ janito/report_events.py,sha256=q4OR_jTZNfcqaQF_fzTjgqo6_VlUIxSGWfhpT4nJWcw,938
18
+ janito/utils.py,sha256=eXSsMgM69YyzahgCNrJQLcEbB8ssLI1MQqaa20ONxbE,376
19
+ janito/version.py,sha256=ozLtKoqj7xXtB2iTD9mlIgEedNpXJHto4lwWQpWuFcg,104
20
+ janito/agent/setup_agent.py,sha256=vPpfkGgO5k7gIDOT_LNnbM1tewM7rhx9VkaAdD57t7Y,5220
21
+ janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2,sha256=FX8piXbR9XNOEKkOSMt4ieZ2wn5fzQlffeQFf8d7gIc,723
22
+ janito/agent/templates/profiles/system_prompt_template_main.txt.j2,sha256=npmG2_WU2Rcp1z2n33vX5ShK0y6yKDQqF2zJytgmGpE,2533
23
+ janito/cli/__init__.py,sha256=xaPDOrWphBbCR63Xpcx_yfpXSJIlCaaICc4j2qpWqrM,194
24
+ janito/cli/config.py,sha256=Drs0ubwSjrGMjHwkjLUrRA2ezqg07iE1Z0KuDj-cXSw,1148
25
+ janito/cli/console.py,sha256=gJolqzWL7jEPLxeuH-CwBDRFpXt976KdZOEAB2tdBDs,64
26
+ janito/cli/main.py,sha256=s5odou0txf8pzTf1ADk2yV7T5m8B6cejJ81e7iu776U,312
27
+ janito/cli/main_cli.py,sha256=e1AcKYf84vmgVTrRkQkVkvXNNQ7hsr0wC2c_pCIHaTk,11151
28
+ janito/cli/prompt_core.py,sha256=f1nk_jjrZg9du5mVtWCQGSskJikMevvPnWID5KGlNpk,10671
29
+ janito/cli/prompt_handler.py,sha256=SnPTlL64noeAMGlI08VBDD5IDD8jlVMIYA4-fS8zVLg,215
30
+ janito/cli/rich_terminal_reporter.py,sha256=LCUGojAGlvs2SOHs7_qFz8AbAGJW5cyLQhte4OXHIR4,4981
31
+ janito/cli/termweb_starter.py,sha256=2Gr3yqSVydMWhoHUgNCtd7yviRi8uaatDtcGTpJL1Qc,5033
32
+ janito/cli/utils.py,sha256=plCQiDKIf3V8mFhhX5H9-MF2W86i-xRdWf8Xi117Z0w,677
33
+ janito/cli/verbose_output.py,sha256=GVW4ZTqeVlv8BH7lfvSivX4nojXPDiZOYs1UM3wCkrU,7628
34
+ janito/cli/chat_mode/bindings.py,sha256=l-Uk6ee3SbtYFc8FzR5FQIu2iCmtzebINYo8w9hnmr4,1078
35
+ janito/cli/chat_mode/chat_entry.py,sha256=Rdaq7-3OHtro2ncUOPHXZOLpOoKPRJnoz7Jqr8_fuDQ,604
36
+ janito/cli/chat_mode/prompt_style.py,sha256=-viZYJgjGID6kR9toz6HtzIkIxGOCG28xNqiiD2MwX0,640
37
+ janito/cli/chat_mode/session.py,sha256=23hPQl4uk7P95prjaqY6ZdE5Dm5CGfI54qc61R6v7x4,12448
38
+ janito/cli/chat_mode/toolbar.py,sha256=WUkyodsVgroHptrvIdX7DfAQMZ8j_Z5oX_4SE4iySQY,3689
39
+ janito/cli/chat_mode/shell/autocomplete.py,sha256=7jclMfAMOBKfZWrOfaPVhru7ZKx8S64tNKOdK-g6rYI,772
40
+ janito/cli/chat_mode/shell/input_history.py,sha256=P6qRaBiSxJsUDANjQagJI4YQj1kWdwXgulaew6rBC68,2475
41
+ janito/cli/chat_mode/shell/commands/__init__.py,sha256=R20AE4KNbt650J0kKu36ubh9_tgcy-qdC6jbhGDI2EQ,2089
42
+ janito/cli/chat_mode/shell/commands/base.py,sha256=I6-SVOcRd7q4PpoutLdrbhbqeUpJic2oyPhOSMgMihA,288
43
+ janito/cli/chat_mode/shell/commands/clear.py,sha256=eBC2zqJf95lH-TQrcKzL2eLx658Xpv_W1YDuXHP50kQ,410
44
+ janito/cli/chat_mode/shell/commands/conversation_restart.py,sha256=2YH_BkU0200liuZAKO6YZULrzB0i15wWWahuA_QODgw,2905
45
+ janito/cli/chat_mode/shell/commands/edit.py,sha256=OU3BmJEgslTmazCYo23XCIT99hhzscinjoqVMg_VH3E,892
46
+ janito/cli/chat_mode/shell/commands/exec.py,sha256=oFpRnRUTHmrhicFrSYqDmBxp-rSb_J7VUWgeUeftDwQ,1462
47
+ janito/cli/chat_mode/shell/commands/help.py,sha256=Oa1oJ-Ea9uR6b57gwv7dVKKNRTFHyupahhOVh-P4rk8,633
48
+ janito/cli/chat_mode/shell/commands/history_view.py,sha256=9dyxYpDHjT77LEIikjBQA03Ep3P2AmKXUwUnVsG0OQc,3584
49
+ janito/cli/chat_mode/shell/commands/lang.py,sha256=uIelDs3gPYDZ9X9gw7iDMmiwefT7TiBo32420pq2tW8,837
50
+ janito/cli/chat_mode/shell/commands/livelogs.py,sha256=uJI14qyubXEz8m0Cajd-vURPYxC__7p_CNCq6PVOHN0,2142
51
+ janito/cli/chat_mode/shell/commands/multi.py,sha256=odlobZSr3q_6cK0B-tPwS92TEhdIOCP7U8VqgHfu4ho,1934
52
+ janito/cli/chat_mode/shell/commands/prompt.py,sha256=x9S3mOpplpR5aiy5b8LSIsZEEFGenQtPGK6HxYdwx1Y,2448
53
+ janito/cli/chat_mode/shell/commands/role.py,sha256=7A2S2wzE6lcv1rg4iLGH8vVy-TnzRE0Tn_wPRhBHLpY,1474
54
+ janito/cli/chat_mode/shell/commands/session.py,sha256=9wsw5U24-KJgTT70KAwnGuS8MVPyvpxCJfAt_Io76O0,1574
55
+ janito/cli/chat_mode/shell/commands/session_control.py,sha256=tmMGJ8IvWoBwSIJu7T6GPnFYFrmXWIG2Gr9tTni4y3U,1307
56
+ janito/cli/chat_mode/shell/commands/termweb_log.py,sha256=W2586JMBwMKNlsgdgACQYIy_1oTOxjjckzRQwJBreXM,3853
57
+ janito/cli/chat_mode/shell/commands/tools.py,sha256=je0ePuQTeSdPNOlyZIH1tBFedobJJCeCQHIIwTQufmU,2156
58
+ janito/cli/chat_mode/shell/commands/utility.py,sha256=K982P-UwgPLzpEvSuSBGwiQ3zC34S_6T2ork_djweQw,847
59
+ janito/cli/chat_mode/shell/commands/verbose.py,sha256=HDTe0NhdcjBuhh-eJSW8iLPDeeBO95K5iSDAMAljxa4,953
60
+ janito/cli/chat_mode/shell/session/__init__.py,sha256=uTYE_QpZFEn7v9QE5o1LdulpCWa9vmk0OsefbBGWg_c,37
61
+ janito/cli/chat_mode/shell/session/history.py,sha256=tYav6GgjAZkvWhlI_rfG6OArNqW6Wn2DTv39Hb20QYc,1262
62
+ janito/cli/chat_mode/shell/session/manager.py,sha256=SL9BCdlCPdoo-5BPAIC1eaJuXv7hH4d5VGqMF6T7MEI,3333
63
+ janito/cli/cli_commands/list_models.py,sha256=R6b_3LNljd_L4MpQWllUMlRzfCLIGR73BWYG3Em7VLI,1081
64
+ janito/cli/cli_commands/list_providers.py,sha256=fe9JuXSy6zv-XXAabgxXqErjsraj37KfCA35D4XF-JI,164
65
+ janito/cli/cli_commands/list_tools.py,sha256=7QyEfBOmi7ftFlRse4PILLD_RM2jhGjEBbsS4C9fxdE,2133
66
+ janito/cli/cli_commands/model_selection.py,sha256=Pd9Z9zjLKCym-SMK51yf7KEdv00FEM-1SIKRMnR0HbY,1593
67
+ janito/cli/cli_commands/model_utils.py,sha256=ZGIExsv7WMHL_pqh4yeUXIfFGlu0vZE08PF0bCIIIK4,2864
68
+ janito/cli/cli_commands/set_api_key.py,sha256=7QXKzQ2sxAEKQlX9X8ywL2LjDacDQumkDJT4k-GBIls,586
69
+ janito/cli/cli_commands/show_config.py,sha256=NvBWvGhYi8VklKwpcHVMpx3P0UzSIy_M99meZmsh5f4,1973
70
+ janito/cli/cli_commands/show_system_prompt.py,sha256=-BIvjByRXyLWBeAZLYaxZntCmacmdggsFjSQsP5GZQA,2384
71
+ janito/cli/core/__init__.py,sha256=Z7-HaIYAQiHm4e9GrL3Bx3wISmtXlHY6EH5Tk9R10vY,192
72
+ janito/cli/core/event_logger.py,sha256=dqd2dAXzOsbphiSbic11W7keujx1vURglSagkhVtSPs,1949
73
+ janito/cli/core/getters.py,sha256=Znw6aF6QUHGu6UWqQHQYu7LvNPPIjOO4SD4yyYaIGnw,1467
74
+ janito/cli/core/runner.py,sha256=z-YSAuS1uOI9JkDIU3n4ItCIsSTSXPqiPDm2HnLXGUA,7105
75
+ janito/cli/core/setters.py,sha256=U-Tp-NlHTLHteLchUdTXvA_v2gaXb7M98oolMvXEuvw,6883
76
+ janito/cli/core/unsetters.py,sha256=FGgxVkN69AnUjvWEKukz8dFZvFkcndpLla7ugA7QFTo,1958
77
+ janito/cli/single_shot_mode/__init__.py,sha256=K5QHkJBnNlZNBzabc2tMe8MaWHC8Jn7Xpv8NLJXg8aA,109
78
+ janito/cli/single_shot_mode/handler.py,sha256=pqs4r0EZc28-9d1qpo8mj_-x3QVDAxMCkTkd0GCdRa0,6250
79
+ janito/drivers/driver_registry.py,sha256=c_nezPfjPHaAZjCZhU80JN_YRCKYBJhomQNYZCu-Ug4,1007
80
+ janito/drivers/anthropic/driver.py,sha256=bFjMTDIFXCBZlq_7SdUAfRsOM5RdAg18CIVh5B9WmYE,3824
81
+ janito/drivers/azure_openai/driver.py,sha256=zQc9xH-RD409okDCfTRwb1QXXb9WzR2bsBfRyrZ5HYc,3936
82
+ janito/drivers/mistralai/driver.py,sha256=r7iMMAG5V7OmzrtQhVCuK3ueAEzgbgS1qcPDKHTNKoo,1208
83
+ janito/drivers/openai/driver.py,sha256=50Ic_w6HR7xqp2rZ9RYM4Ylbhn4MKAuhyRNTHYozhVQ,21812
84
+ janito/event_bus/__init__.py,sha256=VG6GOhKMBh0O_92D-zW8a3YitJPKDajGgPiFezTXlNE,77
85
+ janito/event_bus/bus.py,sha256=LokZbAdwcWhWOyKSp7H3Ism57x4EZhxlRPjl3NE4UKU,2847
86
+ janito/event_bus/event.py,sha256=TMWZ4ccv1vGIsBQpeKDsDOBGgw9Pk_ltYWd6dMUJp6Q,398
87
+ janito/event_bus/handler.py,sha256=RhBtT1E48VEM2-k8u3HYsESw7VX5qAgiB8ZTJeKXhHc,1322
88
+ janito/event_bus/queue_bus.py,sha256=l4phun3pxXxi8ZlIq8ChYaiYDVO1PZeXoOzyi3vyu20,1558
89
+ janito/i18n/__init__.py,sha256=j7hL6NWK6HiTd3Wql-XhQtQviPytB1BPbGloe78MoCk,959
90
+ janito/i18n/messages.py,sha256=F5-sRB6gOE2sIaG_r93ibQwbrazaP8X4pSMB95be_jA,1828
91
+ janito/i18n/pt.py,sha256=sRea0nKmbyONhFDXoHg9OsY9__RzplskHlWa6mRCEvA,4241
92
+ janito/llm/__init__.py,sha256=NibzrlIQcFCKo5MZsPfhy4yJ2rKWrMC9HZRIeg9T0hQ,129
93
+ janito/llm/agent.py,sha256=Y-AVySMpZDRlHOgBzSXiyY1T-szwWgGBiKMsLIMglbc,17964
94
+ janito/llm/auth.py,sha256=8Dl_orUEPhn2X6XjkO2Nr-j1HFT2YDxk1qJl9hSFI88,2286
95
+ janito/llm/driver.py,sha256=EURz04w3CWwxJ2VOZ5bUcNCneQqRS6-mrqKetDjZ7cs,9816
96
+ janito/llm/driver_config.py,sha256=OW0ae49EfgKDqaThuDjZBiaN78voNzwiZ6szERMqJos,1406
97
+ janito/llm/driver_config_builder.py,sha256=KWAQ9OFz5Bo-jtgUCLZS-COGV1YZComx2BNzwZNGrvo,1367
98
+ janito/llm/driver_input.py,sha256=BpO8EpUyZIoJ4l-LWed5wrAfHeT0vFynl3zw-DLBIvg,377
99
+ janito/llm/message_parts.py,sha256=x805963skJSdNQOeM-I3QW6MOV9-oSOfNapxi4rVpR4,1305
100
+ janito/llm/model.py,sha256=1PeK0uLcT361OaYkPEOWVxwvwoFr7ZnCyrYqUCnpiQA,1093
101
+ janito/llm/provider.py,sha256=zKhVkNvjKmHNr3B8hQyxcf7lcY3VF2l6HBWxIzIYhAo,7782
102
+ janito/providers/__init__.py,sha256=Q9zTiZlDuAsdI6y4tAcqLlZ6LCKyRaOsoQ2iBAGq0O4,367
103
+ janito/providers/provider_static_info.py,sha256=Lwbcb-AOEmo9v5Ma4SqM51uSXGwWYFewMJSDl1rOd8M,568
104
+ janito/providers/registry.py,sha256=u8nWy4JtVM4mibLTnGYNs6QrN64A4dBB-hTCYfLSnWo,704
105
+ janito/providers/anthropic/model_info.py,sha256=oNcYrZXehG83FOPJhaIknmXiiqJYzjfvRtepU-xWrRg,619
106
+ janito/providers/anthropic/provider.py,sha256=t3HPy7x9-2LKtWBOjRIxCa2v9QenHYOrEfUFVRnTvzA,2360
107
+ janito/providers/azure_openai/model_info.py,sha256=TMSqEpQROIIYUGAyulYJ5xGhj7CbLoaKL_JXeLbXaG0,689
108
+ janito/providers/azure_openai/provider.py,sha256=ePbC_FQZEyp2b7WIE7vl9N3-5LqEomkW0e5zigcSv1U,4925
109
+ janito/providers/deepseek/__init__.py,sha256=6yMBq7WwqyUuwKmYoiaWlqcXyDW-qx5mBOdMpwU8qHE,35
110
+ janito/providers/deepseek/model_info.py,sha256=bnAz_vV3VTs326Ws3veKeQ-tdR4BHhmsi_ESiCUS_Zc,449
111
+ janito/providers/deepseek/provider.py,sha256=jn8cUSl9M-DoN-spYErOClEb232IRqabe0I4I27ZvOg,3568
112
+ janito/providers/google/__init__.py,sha256=hE3OGJvLEhvNLhIK_XmCGIdrIj8MKlyGgdOLJ4mdess,38
113
+ janito/providers/google/model_info.py,sha256=Yt6UffgCmPDvXzegmzy2FVo7pNblwUOl7oC6bSRYOaI,1106
114
+ janito/providers/google/provider.py,sha256=SkB2d5vvXBri0L3X-UMtXjyvOtVdCbECAEoj1TodFDQ,3109
115
+ janito/providers/mistralai/model_info.py,sha256=Kh0S_3O76fcPGYW-ywmsF4Hhd8011wLpORPLRu3zdlQ,1026
116
+ janito/providers/mistralai/provider.py,sha256=s_bnklPEh52TEijzAPaLYnk19mcg3SnA6vQ-PGyrpoc,2526
117
+ janito/providers/openai/__init__.py,sha256=f0m16-sIqScjL9Mp4A0CQBZx6H3PTEy0cnE08jeaB5U,38
118
+ janito/providers/openai/model_info.py,sha256=cz08O26Ychm-aP3T8guJRqpR96Im9Cwtgl2iMgM7tJs,3384
119
+ janito/providers/openai/provider.py,sha256=d2MsSuaR8GhE966FKhY8cX2jSFv5EPAVTf36-ZJwC7I,4481
120
+ janito/providers/openai/schema_generator.py,sha256=hTqeLcPTR8jeKn5DUUpo7b-EZ-V-g1WwXiX7MbHnFzE,2234
121
+ janito/termweb/app.py,sha256=lOZqNf5TEvijryLXaa2CDx722PqBR_DH32A44V1Lfz0,3305
122
+ janito/tools/__init__.py,sha256=Xk6i_b2VTfrSGt_iBGAe61uSZGyrztv_WzbGlxQVNrU,566
123
+ janito/tools/inspect_registry.py,sha256=FiSdjqOVrQR4_ddnLDTubUMrR4IIQR0ZNZWui4YRwQY,521
124
+ janito/tools/tool_base.py,sha256=A6mpNlinw23-QC_SveLa0COFJsriu8OuwVG-wwi7tUM,3265
125
+ janito/tools/tool_events.py,sha256=9upnEbDxNXzj2L_Ki-Lnb5jV7YsQsg7pZR5rJesdnT4,1469
126
+ janito/tools/tool_run_exception.py,sha256=ILoizPiLpa3ICjl1tvRkPYp4ROUAoocP1sfFNWv_0Sg,513
127
+ janito/tools/tool_use_tracker.py,sha256=x0bYUsqcnhAVTDza57qo9HmEUt2JoqgtdO5QmzY6Mb8,2724
128
+ janito/tools/tool_utils.py,sha256=qfApGMGHUeddnMuEImAanx9ikqz0ClSrfe0Smoz8sKw,1318
129
+ janito/tools/tools_adapter.py,sha256=vhSs9fxUdkVAxKtFYyhXXR82UctTathCN9sKU1QONkY,11385
130
+ janito/tools/tools_schema.py,sha256=wZQXN2JX9xPGYS7yiueTbaT8StVwQ2dpbBGEoKTcYjw,4311
131
+ janito/tools/adapters/__init__.py,sha256=wC_jc71wYppdZgLhZvFY0URCNdimiBk9NuIJwvnydK4,91
132
+ janito/tools/adapters/local/__init__.py,sha256=WPTSOMrZpRg7ioNqCp3fYmnMaF3HnzymGzVpvH0Mp5w,1941
133
+ janito/tools/adapters/local/adapter.py,sha256=y-vaTbBelFovELApRt2cI17g8ercqPlM8hwkgmVlU4I,4654
134
+ janito/tools/adapters/local/ask_user.py,sha256=vY3F7ZoQbgNj1f_JsJKCaYAxV7DZ2OrOK5976RBYhUw,3329
135
+ janito/tools/adapters/local/copy_file.py,sha256=4IF80UBL_fbdHedXkl9A9vTn9hnSwfCfMbA5vhvxWn8,3423
136
+ janito/tools/adapters/local/create_directory.py,sha256=zcWA_6ZFZChOVegPeHSaw2f3c-tAdMqgsYP58PZLn3A,2482
137
+ janito/tools/adapters/local/create_file.py,sha256=pArWDm1_fy_pi777hR8LqukPX7WgITGeLXf0APdN198,3381
138
+ janito/tools/adapters/local/delete_text_in_file.py,sha256=OvJqmusOSYH5CYKpjodoOl5onqQLcoYduZQIuoFoWTc,5101
139
+ janito/tools/adapters/local/fetch_url.py,sha256=dm4s4aXeoegLPucpjDyKRf0xH3HaA3ZbsdqpIsaIlHs,3709
140
+ janito/tools/adapters/local/find_files.py,sha256=hOzRiIhHcr7UUwryz5WjaTgfPoX2OlBKP4YffNq1zYU,5826
141
+ janito/tools/adapters/local/move_file.py,sha256=Ng6T4xEqo1WhB8AZfQ6U64nd5ntXunli3PwABHPqhuM,4541
142
+ janito/tools/adapters/local/open_html_in_browser.py,sha256=ankH5hFjhZ7IUym2qUgmwtOSdhvnBSj9SLwirIJNCQM,1925
143
+ janito/tools/adapters/local/open_url.py,sha256=40qPXTyq2SINHQgEnqfCEfBnGAQOJB4uZlQoe-R2sNU,1339
144
+ janito/tools/adapters/local/python_code_run.py,sha256=X_a6GXyTUhIXsnTW8Ahu0u0QmYWIDWiWFS8T6gVWX5c,6484
145
+ janito/tools/adapters/local/python_command_run.py,sha256=D0JwQKxNnOtAMJHBgmaPw_6xCQnaC-v90nhSuUX4fYY,6426
146
+ janito/tools/adapters/local/python_file_run.py,sha256=8MRRK_5e1sEbjmHHByRRYKmHQN0aKXa8tNXVMiMMYtg,6302
147
+ janito/tools/adapters/local/remove_directory.py,sha256=8VXcMPfLAXhScpkb22VfAETNeWjTmgm8hFTGWRq7TtY,1791
148
+ janito/tools/adapters/local/remove_file.py,sha256=NaZTvuIRtGurp1rLZIjQZ6_kkGcmXc8oQkk9gDc5W3s,2051
149
+ janito/tools/adapters/local/replace_text_in_file.py,sha256=5DNOEivKcT083lspjoi0eCaTn0Qd3YfrX1yrSNTY4_E,10814
150
+ janito/tools/adapters/local/run_bash_command.py,sha256=jNAHAoRPuAaLV0QM2DPw076yBMa0Ps8HnH_4ilzee2g,7415
151
+ janito/tools/adapters/local/run_powershell_command.py,sha256=yOEC6WnJsl_t2GqgOhgad642Z7C2kLih5btPd_U7vOI,9010
152
+ janito/tools/adapters/local/view_file.py,sha256=B1kyYTc1xfF8nAmo4erau1_laL2Iy4BxEjthob5MbfU,6967
153
+ janito/tools/adapters/local/get_file_outline/__init__.py,sha256=py8Dj0yWlyG3MJN-uX9rF_IMrykHrJ3Wtmbu9uQP_hs,36
154
+ janito/tools/adapters/local/get_file_outline/core.py,sha256=KgNEiNIVpDgAQFi7BTSoBi3VxbH1QRXFBJrRjHzqTL4,4218
155
+ janito/tools/adapters/local/get_file_outline/java_outline.py,sha256=Ovasg7hrlDJd8yyazi-zQ1ODwBq9mVYlRUycrOIA5ig,1645
156
+ janito/tools/adapters/local/get_file_outline/markdown_outline.py,sha256=iD7gA8px_5nZlmCjEMXXToERoPTwNeGAEcNogPMcBBU,420
157
+ janito/tools/adapters/local/get_file_outline/python_outline.py,sha256=254ahYEG2Mlhggg_5OLq09OFn6CKCjR-9J7ElJWkOeo,10023
158
+ janito/tools/adapters/local/get_file_outline/python_outline_v2.py,sha256=uhKyWXZVnwGA_9pta40PFBJ27wCt425V3AGEBBXe3Ng,5297
159
+ janito/tools/adapters/local/get_file_outline/search_outline.py,sha256=VwSxi2ssosV-8aA2g96XtIwa8qErmkHIrP0akLJiffc,1131
160
+ janito/tools/adapters/local/search_text/__init__.py,sha256=o6bLR4giJJr2Akx_TZtYkmsgdbnRfTmlijtYmDA7P8o,33
161
+ janito/tools/adapters/local/search_text/core.py,sha256=2alZUpAOhfYmUMqJIJwwEtVDwaFw8Efn3ANQdRBIuws,7439
162
+ janito/tools/adapters/local/search_text/match_lines.py,sha256=2l0r8_1l5gnmu9vJSdkxu0JwbPNHx7m84Ei2s4V0hcQ,2141
163
+ janito/tools/adapters/local/search_text/pattern_utils.py,sha256=hGSPOfZtyUHyF6UQV7Xz5VxAWCAwtoHk-k3LXoOh0I0,2301
164
+ janito/tools/adapters/local/search_text/traverse_directory.py,sha256=0Ez8uMVaYFDwPIGnkUEnujQPQ0JmLUknf0mQJlTaNYM,3919
165
+ janito/tools/adapters/local/validate_file_syntax/__init__.py,sha256=Fd0aL49X9jBEyHCq0SfdFfQYKSrD6O02bLE7t49ANZg,28
166
+ janito/tools/adapters/local/validate_file_syntax/core.py,sha256=oyGk1KMJUgGSdLCVS_A5Jlx2LSmcf-uuQHLEzdsYg5c,3231
167
+ janito/tools/adapters/local/validate_file_syntax/css_validator.py,sha256=JihhHjp-LJ0bsP7y_Y8ElzT2IN7V0N9oFgQYcphqfUM,1326
168
+ janito/tools/adapters/local/validate_file_syntax/html_validator.py,sha256=2wQCS_r-fWxYXH_T3I_XpWJAkrPNHceCOBBLuzNiEbA,2971
169
+ janito/tools/adapters/local/validate_file_syntax/js_validator.py,sha256=vHxnpXiAbp5_PDroveMJiA1svsvgcfAEGnXUh8ellDY,981
170
+ janito/tools/adapters/local/validate_file_syntax/json_validator.py,sha256=G0nooPKL3B0X9j-S-lttNetljrV13TwLMGer4x5D_TI,154
171
+ janito/tools/adapters/local/validate_file_syntax/markdown_validator.py,sha256=HhaRiT1VPE0xxpQJkjN_vSDICzVUJU4Gyw-dvN-6sHg,3412
172
+ janito/tools/adapters/local/validate_file_syntax/ps1_validator.py,sha256=oAFZApxonawuWtXpmZ2vZ6qfHSJi-UAUkqoXlQqvrzY,1130
173
+ janito/tools/adapters/local/validate_file_syntax/python_validator.py,sha256=5GfpKsdqnma860pMjD4sjx0uFieAtLOFWqnFCH6K4Q8,135
174
+ janito/tools/adapters/local/validate_file_syntax/xml_validator.py,sha256=_w7UK32GNliZ9IfKqNm15UAiB-6OQfSmcFAaspIDKs4,283
175
+ janito/tools/adapters/local/validate_file_syntax/yaml_validator.py,sha256=L4b0yikiKaxHPfflPzndTUMsk20N0hwAjgYLWpNHkt4,159
176
+ janito-2.3.0.dist-info/licenses/LICENSE,sha256=GSAKapQH5ZIGWlpQTA7v5YrfECyaxaohUb1vJX-qepw,1090
177
+ janito-2.3.0.dist-info/METADATA,sha256=3MDvo-E-jjYsRr3gelf96nNtzcVlZhZFOs6_4lpzKpY,15081
178
+ janito-2.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
179
+ janito-2.3.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
180
+ janito-2.3.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
181
+ janito-2.3.0.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- """
2
- Google Gemini LLM driver.
3
-
4
- This driver handles interaction with the Google Gemini API, including support for tool/function calls and event publishing.
5
- """
6
-
7
- import json
8
- import time
9
- import uuid
10
- import traceback
11
- from typing import Optional, List, Dict, Any, Union
12
- from janito.llm.driver import LLMDriver
13
- from janito.drivers.google_genai.schema_generator import generate_tool_declarations
14
- from janito.driver_events import (
15
- GenerationStarted,
16
- GenerationFinished,
17
- RequestStarted,
18
- RequestFinished,
19
- ResponseReceived,
20
- RequestStatus,
21
- )
22
- from janito.tools.adapters.local.adapter import LocalToolsAdapter
23
- from janito.llm.message_parts import TextMessagePart, FunctionCallMessagePart
24
- from janito.llm.driver_config import LLMDriverConfig
25
-
26
-
27
- def extract_usage_metadata_native(usage_obj):
28
- if usage_obj is None:
29
- return {}
30
- result = {}
31
- for attr in dir(usage_obj):
32
- if attr.startswith("_") or attr == "__class__":
33
- continue
34
- value = getattr(usage_obj, attr)
35
- if isinstance(value, (str, int, float, bool, type(None))):
36
- result[attr] = value
37
- elif isinstance(value, list):
38
- if all(isinstance(i, (str, int, float, bool, type(None))) for i in value):
39
- result[attr] = value
40
- return result
41
-
42
-
43
- class GoogleGenaiModelDriver(LLMDriver):
44
- available = False
45
- unavailable_reason = "GoogleGenaiModelDriver is not implemented yet."
46
-
47
- @classmethod
48
- def is_available(cls):
49
- return cls.available
50
-
51
- name = "google_genai"
52
-
53
- def __init__(self, tools_adapter=None):
54
- raise ImportError(self.unavailable_reason)
@@ -1,67 +0,0 @@
1
- import inspect
2
- import typing
3
- from janito.tools.tools_schema import ToolSchemaBase
4
-
5
- try:
6
- from google.genai import types as genai_types
7
- except ImportError:
8
- genai_types = None
9
-
10
-
11
- class GeminiSchemaGenerator(ToolSchemaBase):
12
- PYTHON_TYPE_TO_GENAI_TYPE = {
13
- str: "STRING",
14
- int: "INTEGER",
15
- float: "NUMBER",
16
- bool: "BOOLEAN",
17
- list: "ARRAY",
18
- dict: "OBJECT",
19
- }
20
-
21
- def type_to_genai_schema(self, annotation, description=None):
22
- if hasattr(annotation, "__origin__"):
23
- if annotation.__origin__ is list or annotation.__origin__ is typing.List:
24
- return genai_types.Schema(
25
- type="ARRAY",
26
- items=self.type_to_genai_schema(annotation.__args__[0]),
27
- description=description,
28
- )
29
- if annotation.__origin__ is dict or annotation.__origin__ is typing.Dict:
30
- return genai_types.Schema(type="OBJECT", description=description)
31
- return genai_types.Schema(
32
- type=self.PYTHON_TYPE_TO_GENAI_TYPE.get(annotation, "STRING"),
33
- description=description,
34
- )
35
-
36
- def generate_declaration(self, tool_class):
37
- func, tool_name, sig, summary, param_descs, return_desc, description = (
38
- self.validate_tool_class(tool_class)
39
- )
40
- properties = {}
41
- required = []
42
- # Removed tool_call_reason from properties and required
43
- for name, param in sig.parameters.items():
44
- if name == "self":
45
- continue
46
- annotation = param.annotation
47
- pdesc = param_descs.get(name, "")
48
- schema = self.type_to_genai_schema(annotation, description=pdesc)
49
- properties[name] = schema
50
- if param.default == inspect._empty:
51
- required.append(name)
52
- parameters_schema = genai_types.Schema(
53
- type="OBJECT", properties=properties, required=required
54
- )
55
- return genai_types.FunctionDeclaration(
56
- name=tool_name, description=description, parameters=parameters_schema
57
- )
58
-
59
-
60
- def generate_tool_declarations(tool_classes: list):
61
- if genai_types is None:
62
- raise ImportError("google-genai package is not installed.")
63
- generator = GeminiSchemaGenerator()
64
- function_declarations = [
65
- generator.generate_declaration(tool_class) for tool_class in tool_classes
66
- ]
67
- return [genai_types.Tool(function_declarations=function_declarations)]
@@ -1,182 +0,0 @@
1
- janito/__init__.py,sha256=qQhVl9yA_ONcd5dtk2RR9dJK3vbjvQXZSOu783eI6AY,232
2
- janito/__main__.py,sha256=lPQ8kAyYfyeS1KopmJ8EVY5g1YswlIqCS615mM_B_rM,70
3
- janito/config.py,sha256=HJh0CmZEx7AbMQOmFkiYHFNzc-fO7fqpZ9rh6RenxK8,201
4
- janito/config_manager.py,sha256=bbviXlbrSyQSVsYjcNo--ZLr_jFuAVL6ntuuWrvHbjs,4297
5
- janito/conversation_history.py,sha256=GqqEJElTVONzOMRe-9g25WCMcDi0PF7DOnqGWLTrY_8,897
6
- janito/dir_walk_utils.py,sha256=ON9EyVH7Aaik8WtCH5z8DQis9ycdoNVkjNvU16HH498,1193
7
- janito/driver_events.py,sha256=bDsrPd69kfcN0pQHA3w3RxEystFQhylUqLBEQLvB8VI,2759
8
- janito/exceptions.py,sha256=l4AepRdWwAuLp5fUygrBBgO9rpwgfV6JvY1afOdq2pw,913
9
- janito/formatting.py,sha256=SMvOmL6bst3KGcI7OLa5D4DE127fQYuHZS3oY8OPsn8,2031
10
- janito/formatting_token.py,sha256=J810eUoXhtM73fIAkgAcl_oN2WhdUs6A06lDX75mnmg,1965
11
- janito/gitignore_utils.py,sha256=P3iF9fMWAomqULq2xsoqHtI9uNIFSPcagljrxZshmLw,4110
12
- janito/perf_singleton.py,sha256=g1h0Sdf4ydzegeEpJlMhQt4H0GQZ2hryXrdYOTL-b30,113
13
- janito/performance_collector.py,sha256=RYu4av16Trj3RljJZ8-2Gbn1KlGdJUosrcVFYtwviNI,6285
14
- janito/platform_discovery.py,sha256=JN3kC7hkxdvuj-AyrJTlbbDJjtNHke3fdlZDqGi_uz0,4621
15
- janito/provider_config.py,sha256=dzYvxWg3Smjt9Jbkw0CNdXmBMwSTgoFTOAajdPL2w5w,3048
16
- janito/provider_registry.py,sha256=wq_HFN0UGMC88IXIH_jbsM7DPsryCIYKlrtbxcOTnjI,6558
17
- janito/report_events.py,sha256=q4OR_jTZNfcqaQF_fzTjgqo6_VlUIxSGWfhpT4nJWcw,938
18
- janito/utils.py,sha256=eXSsMgM69YyzahgCNrJQLcEbB8ssLI1MQqaa20ONxbE,376
19
- janito/version.py,sha256=oziPMzlDXUmNwuhEbuBxrideguRRqIU6Vp0g75Q5nKI,108
20
- janito/agent/setup_agent.py,sha256=4TdZeutRKsjjWx5qIqEId4VY1rUUXED8XiWKdY1n4ac,4940
21
- janito/agent/templates/profiles/system_prompt_template_base_pt.txt.j2,sha256=FX8piXbR9XNOEKkOSMt4ieZ2wn5fzQlffeQFf8d7gIc,723
22
- janito/agent/templates/profiles/system_prompt_template_main.txt.j2,sha256=1MRFx_NRXAoBWFq_2c-CXGUCuWwmlGGcnbdpWv9x0pQ,2497
23
- janito/cli/__init__.py,sha256=xaPDOrWphBbCR63Xpcx_yfpXSJIlCaaICc4j2qpWqrM,194
24
- janito/cli/config.py,sha256=wMxlJhHl8EyqrVZ9xi8Hb302fvbz0nLf5mcORRxTFlw,1044
25
- janito/cli/console.py,sha256=gJolqzWL7jEPLxeuH-CwBDRFpXt976KdZOEAB2tdBDs,64
26
- janito/cli/main.py,sha256=s5odou0txf8pzTf1ADk2yV7T5m8B6cejJ81e7iu776U,312
27
- janito/cli/main_cli.py,sha256=oekJEa4TqhebIrSjT8pAAiGeQPY1qLmlrNWHE4J8D0A,10811
28
- janito/cli/prompt_core.py,sha256=hss97xsNhx3YSrvgU0p9RanNRgRGZeomHEzOOXdrmew,10423
29
- janito/cli/prompt_handler.py,sha256=SnPTlL64noeAMGlI08VBDD5IDD8jlVMIYA4-fS8zVLg,215
30
- janito/cli/rich_terminal_reporter.py,sha256=cMi_e6uBMMk9DqGHeMEbWdqiuIoPn-5f1abB3WLWIts,4265
31
- janito/cli/termweb_starter.py,sha256=2Gr3yqSVydMWhoHUgNCtd7yviRi8uaatDtcGTpJL1Qc,5033
32
- janito/cli/utils.py,sha256=plCQiDKIf3V8mFhhX5H9-MF2W86i-xRdWf8Xi117Z0w,677
33
- janito/cli/verbose_output.py,sha256=NvQCCEEEiTNiat_eJbcK1SFHl7Fc1P01KuZNmvljIMo,7398
34
- janito/cli/chat_mode/bindings.py,sha256=hj6KXw81-Dt80lu4MR-l5h6Olui29E20fEmiktw_c-Y,906
35
- janito/cli/chat_mode/chat_entry.py,sha256=Rdaq7-3OHtro2ncUOPHXZOLpOoKPRJnoz7Jqr8_fuDQ,604
36
- janito/cli/chat_mode/prompt_style.py,sha256=-viZYJgjGID6kR9toz6HtzIkIxGOCG28xNqiiD2MwX0,640
37
- janito/cli/chat_mode/session.py,sha256=C8016U66s_cQKw6ueNlhOeMAkLVcGOO6GkwCvzxyvVg,11528
38
- janito/cli/chat_mode/toolbar.py,sha256=6XMbe7DGbEE6pF_9PiZbg7deAK54TXbv2vlBXNzS43Y,3642
39
- janito/cli/chat_mode/shell/autocomplete.py,sha256=lE68MaVaodbA2VfUM0_YLqQVLBJAE_BJsd5cMtwuD-g,793
40
- janito/cli/chat_mode/shell/input_history.py,sha256=mdcu8XNPp1ewVQMTEmqoAdgj1Lsig5cKkUfvFVxShYo,2537
41
- janito/cli/chat_mode/shell/commands/__init__.py,sha256=C4XsKVP3PNvu1Ln9r_brtZfZZPzffFmR2n3ktHbLV3I,1955
42
- janito/cli/chat_mode/shell/commands/base.py,sha256=I6-SVOcRd7q4PpoutLdrbhbqeUpJic2oyPhOSMgMihA,288
43
- janito/cli/chat_mode/shell/commands/clear.py,sha256=wYEHGYcAohUoCJlbEhiXKfDbJvuzAVK4e9uirskIllw,422
44
- janito/cli/chat_mode/shell/commands/conversation_restart.py,sha256=2YH_BkU0200liuZAKO6YZULrzB0i15wWWahuA_QODgw,2905
45
- janito/cli/chat_mode/shell/commands/edit.py,sha256=OU3BmJEgslTmazCYo23XCIT99hhzscinjoqVMg_VH3E,892
46
- janito/cli/chat_mode/shell/commands/help.py,sha256=Oa1oJ-Ea9uR6b57gwv7dVKKNRTFHyupahhOVh-P4rk8,633
47
- janito/cli/chat_mode/shell/commands/history_view.py,sha256=9dyxYpDHjT77LEIikjBQA03Ep3P2AmKXUwUnVsG0OQc,3584
48
- janito/cli/chat_mode/shell/commands/lang.py,sha256=uIelDs3gPYDZ9X9gw7iDMmiwefT7TiBo32420pq2tW8,837
49
- janito/cli/chat_mode/shell/commands/livelogs.py,sha256=uJI14qyubXEz8m0Cajd-vURPYxC__7p_CNCq6PVOHN0,2142
50
- janito/cli/chat_mode/shell/commands/multi.py,sha256=HAAk0fAO3n8KFta3I4hT_scOAlz4SxWDyaNBUJBQ4nc,1985
51
- janito/cli/chat_mode/shell/commands/prompt.py,sha256=x9S3mOpplpR5aiy5b8LSIsZEEFGenQtPGK6HxYdwx1Y,2448
52
- janito/cli/chat_mode/shell/commands/role.py,sha256=7A2S2wzE6lcv1rg4iLGH8vVy-TnzRE0Tn_wPRhBHLpY,1474
53
- janito/cli/chat_mode/shell/commands/session.py,sha256=9wsw5U24-KJgTT70KAwnGuS8MVPyvpxCJfAt_Io76O0,1574
54
- janito/cli/chat_mode/shell/commands/session_control.py,sha256=tmMGJ8IvWoBwSIJu7T6GPnFYFrmXWIG2Gr9tTni4y3U,1307
55
- janito/cli/chat_mode/shell/commands/termweb_log.py,sha256=W2586JMBwMKNlsgdgACQYIy_1oTOxjjckzRQwJBreXM,3853
56
- janito/cli/chat_mode/shell/commands/tools.py,sha256=lnIm5RhvI7wzPjm_GcgXIzmPg6o-6ovT-wT6ISGFN80,1546
57
- janito/cli/chat_mode/shell/commands/utility.py,sha256=K982P-UwgPLzpEvSuSBGwiQ3zC34S_6T2ork_djweQw,847
58
- janito/cli/chat_mode/shell/commands/verbose.py,sha256=HDTe0NhdcjBuhh-eJSW8iLPDeeBO95K5iSDAMAljxa4,953
59
- janito/cli/chat_mode/shell/session/__init__.py,sha256=uTYE_QpZFEn7v9QE5o1LdulpCWa9vmk0OsefbBGWg_c,37
60
- janito/cli/chat_mode/shell/session/history.py,sha256=tYav6GgjAZkvWhlI_rfG6OArNqW6Wn2DTv39Hb20QYc,1262
61
- janito/cli/chat_mode/shell/session/manager.py,sha256=uJD9RKsfMCMm3HRuiuetQ9Y-ki21lFSt68pJikSYA-o,3310
62
- janito/cli/cli_commands/list_models.py,sha256=VN7_DG6aTxaHPrc6_H-OftRXRT1urhf5ze_qJ_SO35U,1116
63
- janito/cli/cli_commands/list_providers.py,sha256=AMAVdoS7KN7WA3gaKhZZdfio_zvknu21OLDc6CTFZ34,173
64
- janito/cli/cli_commands/list_tools.py,sha256=NEmaCqEpfEpWU9Z_RNyJ3WAjFDf7xlGSLZnZLnBrZeM,2186
65
- janito/cli/cli_commands/model_selection.py,sha256=ANWtwC5glZkGMdaNtARDbEG3QmuBUcDLVxzzC5jeBNo,1643
66
- janito/cli/cli_commands/model_utils.py,sha256=d1rENGb34_YgIRTvVaWm3BixGjKsXnoOXoXipT9pins,2377
67
- janito/cli/cli_commands/set_api_key.py,sha256=iPtWPhS5VeyIlwVX43TGg7OYUwXCcGzugvwoa3KB8A8,605
68
- janito/cli/cli_commands/show_config.py,sha256=6j4P2mK1Q7KZGPF9EXV3ascuWRQtpbgAQgRAnNszBJI,2024
69
- janito/cli/cli_commands/show_system_prompt.py,sha256=OtcIsmI9au7JE7hxEuJPw118Vaq53UyqqyP67u2sV5Y,2446
70
- janito/cli/core/__init__.py,sha256=YH95fhgY9yBX8RgqX9dSrEkl4exjV0T4rbmJ6xUpG-Y,196
71
- janito/cli/core/event_logger.py,sha256=1X6lR0Ax7AgF8HlPWFoY5Ystuu7Bh4ooTo78vXzeGB0,2008
72
- janito/cli/core/getters.py,sha256=IfweIK5uZZz9y-p8lyHHmXaqjWk6BkzY6ImJxxh7ATc,1426
73
- janito/cli/core/runner.py,sha256=baDS5_fwnabYr87h37pE3g-t4H4_TcsTowkQ_eQs310,5979
74
- janito/cli/core/setters.py,sha256=c_JAlaEPpwR514Y7lQHgnZC9X2PpsjWia2fRzKmSFV8,6633
75
- janito/cli/core/unsetters.py,sha256=FEw9gCt0vRvoCt0kRSNfVB2tzi_TqppJIx2nHPP59-k,2012
76
- janito/cli/single_shot_mode/__init__.py,sha256=Ct99pKe9tINzVW6oedZJfzfZQKWpXz-weSSCn0hrwHY,115
77
- janito/cli/single_shot_mode/handler.py,sha256=2VTGiYOHIZE5z_S0pic9-rBcyL_nb5NgldNZKKZtibM,5600
78
- janito/drivers/driver_registry.py,sha256=zEvCJwaKhmGFGTIpSoZOncNwmJhrRTbaDz7yVF-1ZTk,1133
79
- janito/drivers/anthropic/driver.py,sha256=4yLaf2T0g2zr-MSwXOx32s7ETut9FOl0uXyJGYiJzZU,3937
80
- janito/drivers/azure_openai/driver.py,sha256=NiAIeaDVTcyUi01qYdt0hKDbqasuesNrk_pHTwMgvv0,2006
81
- janito/drivers/google_genai/driver.py,sha256=qg3bApr954LexMlnsL3MLaHAS8X4aacmRKsyEPj6KKo,1680
82
- janito/drivers/google_genai/schema_generator.py,sha256=p5hWxzcjeTlLAQZAt6kTXjxnHnBYyDAkKi4KkZctAJQ,2565
83
- janito/drivers/mistralai/driver.py,sha256=r7iMMAG5V7OmzrtQhVCuK3ueAEzgbgS1qcPDKHTNKoo,1208
84
- janito/drivers/openai/driver.py,sha256=FAxZMscioXRKKZWDWlZ6aEbTbwAyVGlam6sLl1y8G0I,13560
85
- janito/event_bus/__init__.py,sha256=VG6GOhKMBh0O_92D-zW8a3YitJPKDajGgPiFezTXlNE,77
86
- janito/event_bus/bus.py,sha256=LokZbAdwcWhWOyKSp7H3Ism57x4EZhxlRPjl3NE4UKU,2847
87
- janito/event_bus/event.py,sha256=TMWZ4ccv1vGIsBQpeKDsDOBGgw9Pk_ltYWd6dMUJp6Q,398
88
- janito/event_bus/handler.py,sha256=RhBtT1E48VEM2-k8u3HYsESw7VX5qAgiB8ZTJeKXhHc,1322
89
- janito/event_bus/queue_bus.py,sha256=l4phun3pxXxi8ZlIq8ChYaiYDVO1PZeXoOzyi3vyu20,1558
90
- janito/i18n/__init__.py,sha256=6zCIu6pSQpoMJvIRK9oOD3pkzbNeJik3lFDXse0X6ag,994
91
- janito/i18n/messages.py,sha256=fBuwOTFoygyHPkYphm6Y0r1iE8497Z4iryVAmPhMEkg,1851
92
- janito/i18n/pt.py,sha256=MPK8URu3BY2RPwhw2nU8j6ssMl3AyyFmVkP-1L2YkcM,4288
93
- janito/llm/__init__.py,sha256=dpyVH51qVRCw-PDyAFLAxq0zd4jl5MDcuV6Cri0D-dQ,134
94
- janito/llm/agent.py,sha256=qTUHphpzYiPC9m9DHC6rKH4-W9ZCBS6Aqnzer4V5tb4,18407
95
- janito/llm/auth.py,sha256=OxqaKS-lOf9-nX0SPxY3GxYd2pFBnpxbkYOM1DyL9O4,2259
96
- janito/llm/driver.py,sha256=u1dO4T6juuUdtBmUpx-Y3LTGCcMypOaFT7MeVHGn-Rw,9460
97
- janito/llm/driver_config.py,sha256=d_TG8VvczXmObItdMFLRoVo3pIu9ig9YWodJVF4Qgoo,1362
98
- janito/llm/driver_config_builder.py,sha256=BvWGx7vaBR5NyvPY1XNAP3lAgo1uf-T25CSsIo2kkCU,1401
99
- janito/llm/driver_input.py,sha256=Zq7IO4KdQPUraeIo6XoOaRy1IdQAyYY15RQw4JU30uA,389
100
- janito/llm/message_parts.py,sha256=QY_0kDjaxdoErDgKPRPv1dNkkYJuXIBmHWNLiOEKAH4,1365
101
- janito/llm/model.py,sha256=42hjcffZDTuzjAJoVhDcDqwIXm6rUmmi5UwTOYopf5w,1131
102
- janito/llm/provider.py,sha256=lfIJnh06F0kf8--Pg_W7ALhkbIzn7N4iItQ93pntyuM,7978
103
- janito/providers/__init__.py,sha256=j11MccCveqDTiZTicJH00eZ3qVDEL1KDbihGZhEvGYg,326
104
- janito/providers/provider_static_info.py,sha256=f0g2UbyLdHFBPb45x19t6Lx_FoIXp0mJLboH4Jqn1L0,611
105
- janito/providers/registry.py,sha256=u8nWy4JtVM4mibLTnGYNs6QrN64A4dBB-hTCYfLSnWo,704
106
- janito/providers/anthropic/model_info.py,sha256=saofXNs73WhlAhm58AcIkSem7C8FMUgHP19BvkoLV5Y,641
107
- janito/providers/anthropic/provider.py,sha256=nTMTroXCffU9JIEpMtMlY7a4FZS1J90gr9cAVRwrCJE,2371
108
- janito/providers/azure_openai/model_info.py,sha256=v4zHgPDBCZkQUE40i-BseDnYzvjPd8c8NaspIor3l10,396
109
- janito/providers/azure_openai/provider.py,sha256=a4EBTr6K417-MrFuw4JhAqjeJziXYB_q-XmfjKLsJYk,3682
110
- janito/providers/deepseek/__init__.py,sha256=4sISEpq4bJO29vxFK9cfnO-SRUmKoD7oSdeCvz0hVno,36
111
- janito/providers/deepseek/model_info.py,sha256=tAlFRtWiyNF_MKZ1gy5_-VNlvqoIwAinv6bAv9dNFsc,465
112
- janito/providers/deepseek/provider.py,sha256=h3xD3uAoE9Kr-IumcQsEK3oNZbkXH-bDfzQK1Uz3nM4,3659
113
- janito/providers/google/__init__.py,sha256=hE3OGJvLEhvNLhIK_XmCGIdrIj8MKlyGgdOLJ4mdess,38
114
- janito/providers/google/model_info.py,sha256=tw0_o8Z3Zhcl5BtcShgE-a0Sinz2gsiiiSWWOIjm5us,1220
115
- janito/providers/google/provider.py,sha256=O60BJXhjmwfmI-FqHUAAO022H7CUbhVU_Qj-FIrPnp4,2626
116
- janito/providers/mistralai/model_info.py,sha256=Kh0S_3O76fcPGYW-ywmsF4Hhd8011wLpORPLRu3zdlQ,1026
117
- janito/providers/mistralai/provider.py,sha256=hYb4VMJE9PUJjwM2hxKpJwU-TK7xf-Cx_f-0wIbGzc8,2537
118
- janito/providers/openai/__init__.py,sha256=f0m16-sIqScjL9Mp4A0CQBZx6H3PTEy0cnE08jeaB5U,38
119
- janito/providers/openai/model_info.py,sha256=cz08O26Ychm-aP3T8guJRqpR96Im9Cwtgl2iMgM7tJs,3384
120
- janito/providers/openai/provider.py,sha256=d2MsSuaR8GhE966FKhY8cX2jSFv5EPAVTf36-ZJwC7I,4481
121
- janito/providers/openai/schema_generator.py,sha256=hTqeLcPTR8jeKn5DUUpo7b-EZ-V-g1WwXiX7MbHnFzE,2234
122
- janito/termweb/app.py,sha256=lOZqNf5TEvijryLXaa2CDx722PqBR_DH32A44V1Lfz0,3305
123
- janito/tools/__init__.py,sha256=Xk6i_b2VTfrSGt_iBGAe61uSZGyrztv_WzbGlxQVNrU,566
124
- janito/tools/inspect_registry.py,sha256=Jo7PrMPRKLuR-j_mBAk9PBcTzeJf1eQrS1ChGofgQk0,538
125
- janito/tools/tool_base.py,sha256=223MKZFYE8DMcSXfPofj6fro7YAvT7HaXmAUUUAv_AU,3370
126
- janito/tools/tool_events.py,sha256=czRtC2TYakAySBZvfHS_Q6_NY_7_krxzAzAL1ggRFWA,1527
127
- janito/tools/tool_run_exception.py,sha256=43yWgTaGBGEtRteo6FvTrane6fEVGo9FU1uOdjMRWJE,525
128
- janito/tools/tool_use_tracker.py,sha256=koXi1h-si8IpRFUdMaj6h6buxeYsuEDC4geP_f2xPms,2805
129
- janito/tools/tool_utils.py,sha256=57nfiq0XKTxzSy7ZqgmR_ItMt0-Ri3sENQzCiLWDR_M,1363
130
- janito/tools/tools_adapter.py,sha256=5UXiL0F1oADFDaV2UQRviMYpylfZPl8AKrGVW0RkdAw,8410
131
- janito/tools/tools_schema.py,sha256=rGrKrmpPNR07VXHAJ_haGBRRO-YGLOF51BlYRep9AAQ,4415
132
- janito/tools/adapters/__init__.py,sha256=XKixOKtUJs1R-rGwGDXSLVLg5-Kp090gvWbsseWT4LI,92
133
- janito/tools/adapters/local/__init__.py,sha256=WPTSOMrZpRg7ioNqCp3fYmnMaF3HnzymGzVpvH0Mp5w,1941
134
- janito/tools/adapters/local/adapter.py,sha256=6W-0HgCoKBJcefmMuXhfS114mDbg7G8Oygm8PFTGsCg,3565
135
- janito/tools/adapters/local/ask_user.py,sha256=GiGnID--Wd7uvF4I9JyQn4m4PzdwSACfo5kH7O9rFuo,3431
136
- janito/tools/adapters/local/copy_file.py,sha256=wNr6mQBxYxGMGZFJmDnWXm5ogJ8iskpA6izBJH4cQvk,3507
137
- janito/tools/adapters/local/create_directory.py,sha256=4PpSKETzqdUPmSk5vX2ikatHcobRK7vZEgV1quMsTVs,2551
138
- janito/tools/adapters/local/create_file.py,sha256=a-Wrx4sN0YAxiTKow2EfFvQHLO3hyfS2kV2Zq1aG4fs,3463
139
- janito/tools/adapters/local/delete_text_in_file.py,sha256=ZPCBMDPHlxi5eUuILyAJQ1TzRPX_USvjwAfQBJ9CfNM,5417
140
- janito/tools/adapters/local/fetch_url.py,sha256=b5eRFRTG2L5rVIQAGXrPNm4j0kSUszhuG9pRVwnl_L0,3806
141
- janito/tools/adapters/local/find_files.py,sha256=P-besMFSh_3C86Vcqe1WD42kAmlewwePsIYghCv8vHA,5964
142
- janito/tools/adapters/local/move_file.py,sha256=_Pn34fYbRq7Ax2kSv0LeTHKRn0LnNScxaM7jA_QTjR8,5213
143
- janito/tools/adapters/local/open_html_in_browser.py,sha256=ankH5hFjhZ7IUym2qUgmwtOSdhvnBSj9SLwirIJNCQM,1925
144
- janito/tools/adapters/local/open_url.py,sha256=40qPXTyq2SINHQgEnqfCEfBnGAQOJB4uZlQoe-R2sNU,1339
145
- janito/tools/adapters/local/python_code_run.py,sha256=MCZqd8L3xJ4rsi4QmGytNrfRvv0FCqrhivAn5lQgm9k,6650
146
- janito/tools/adapters/local/python_command_run.py,sha256=2bP9YnBP_-w6VQtmC7ROonsgDo2dq0_iVOFB2JEdCJs,6590
147
- janito/tools/adapters/local/python_file_run.py,sha256=1xaaMsHrobJ3z0T8bIS469zIKqwdNpFlnV8UorO8LTQ,6465
148
- janito/tools/adapters/local/remove_directory.py,sha256=A0qriZkcf85t3bwX52G9O6PYQFdUxWqVqbwRpjCzp1Q,2628
149
- janito/tools/adapters/local/remove_file.py,sha256=ThC1yMv0u6DHBDjxNmOf-Txp3nPZfo-Uh2K1rgENGlI,2479
150
- janito/tools/adapters/local/replace_text_in_file.py,sha256=V4v3Z_BwxdwBb_zuIUnDQBrcNoCORFdaih4DFsx1NDU,11108
151
- janito/tools/adapters/local/run_bash_command.py,sha256=mfYeZMlvEIdPVQaeGeeMc7gBMQ2k0GbBGFHaFP_l3BA,7591
152
- janito/tools/adapters/local/run_powershell_command.py,sha256=Gaz--9vkKfST09fiMNuWhdZvD2-wd-GDqhxVudec8IM,9229
153
- janito/tools/adapters/local/view_file.py,sha256=MzGUjnOM-eMBANisAkNSvANn2UpA-GDqlE96KuCOkC4,7134
154
- janito/tools/adapters/local/get_file_outline/__init__.py,sha256=OKV_BHnoD9h-vkcVoW6AHmsuDjjauHPCKNK0nVFl4sU,37
155
- janito/tools/adapters/local/get_file_outline/core.py,sha256=Vxmwn60IQA_5Ru9WIjOObYctGDL2djKi7285s_miYDQ,4335
156
- janito/tools/adapters/local/get_file_outline/java_outline.py,sha256=5xCX7zMOpTljwNTxKmc4ewTnCykCOC9TDd62gZzP_BU,1685
157
- janito/tools/adapters/local/get_file_outline/markdown_outline.py,sha256=bXEBg0D93tEBDNy8t-wh4i7WxsxfpQ2C3dX1_rmtj08,434
158
- janito/tools/adapters/local/get_file_outline/python_outline.py,sha256=RAcf9Vxec08lA06drYaNre5HCJ2lTzrRAskZ3rlyE-U,10326
159
- janito/tools/adapters/local/get_file_outline/python_outline_v2.py,sha256=OOHKDGbOwxiCtr3i5m5ZAnELvoF12fKdzO2RCDuTsCs,5453
160
- janito/tools/adapters/local/get_file_outline/search_outline.py,sha256=YtroO9K9h9_-UbHHArJbx_AU1F0ahvm19K_PPlSuljk,1164
161
- janito/tools/adapters/local/search_text/__init__.py,sha256=FEYpF5tTtf0fiAyRGIGSn-kV-MJDkhdFIbus16mYW8Y,34
162
- janito/tools/adapters/local/search_text/core.py,sha256=nDhwXe0IhFx_1zXAp9ubIn_-eaXihaXlHVb7X50JeYA,7640
163
- janito/tools/adapters/local/search_text/match_lines.py,sha256=XENsofkHGIRgFcAiS_O4J-esKgr7G5ZkpJHsYMglyEg,2133
164
- janito/tools/adapters/local/search_text/pattern_utils.py,sha256=Cytwl7M9tNY-IsAmvoMgvlQMPswbCHTVrX8aZQ6IBJc,2374
165
- janito/tools/adapters/local/search_text/traverse_directory.py,sha256=TrsAlFXcG7WdtZS6pg3_6vlL3h-afps5u7kkBDhA65c,4064
166
- janito/tools/adapters/local/validate_file_syntax/__init__.py,sha256=P53RHmas4BbHL90cMxH9m-RpMCJI8JquoJb0rpkPVVk,29
167
- janito/tools/adapters/local/validate_file_syntax/core.py,sha256=vgPQDKMjAyWdgni3sBLJ9XfDkUBg2i1JKkeJmnItaEA,3337
168
- janito/tools/adapters/local/validate_file_syntax/css_validator.py,sha256=2yUMNxVIQy3AhuiahyZZbci0azMHkSWlGBbYIxJNJ-U,1361
169
- janito/tools/adapters/local/validate_file_syntax/html_validator.py,sha256=sCIGBx-b-xz-vbz6pQM0rYYuzrt93_9ApC5zQ9Rwadk,3064
170
- janito/tools/adapters/local/validate_file_syntax/js_validator.py,sha256=Km-wUrG0YZJ7kzxxyVPN_vXqOWIdfD12GkhQHPRVrC8,1008
171
- janito/tools/adapters/local/validate_file_syntax/json_validator.py,sha256=eXFiuR-4-pqlrQIddxDoBmP7-loV4F6S3sJNh-nmOys,160
172
- janito/tools/adapters/local/validate_file_syntax/markdown_validator.py,sha256=RKZFacTwWq56sJ6KoQzeAPLttC6sV-DsIec4_xN6CJQ,3521
173
- janito/tools/adapters/local/validate_file_syntax/ps1_validator.py,sha256=cP1jsMhtdOVfC6-sjxlsHbQWklHPq2FAGRJ5LFG7nqY,1162
174
- janito/tools/adapters/local/validate_file_syntax/python_validator.py,sha256=lHzjlA4g9nCF9hXkGx3izWF0b0vJH3yV7Pu3buLyBbI,140
175
- janito/tools/adapters/local/validate_file_syntax/xml_validator.py,sha256=3CK7BEGO7gKI3bpeTtCFe0kJ5aKDZVh3Kh67bGIhcuc,294
176
- janito/tools/adapters/local/validate_file_syntax/yaml_validator.py,sha256=XLmOp7Ef6pLd97ICVnF3PxNKL1Yo5tLZsasvxPY478Y,165
177
- janito-2.2.0.dist-info/licenses/LICENSE,sha256=GSAKapQH5ZIGWlpQTA7v5YrfECyaxaohUb1vJX-qepw,1090
178
- janito-2.2.0.dist-info/METADATA,sha256=vP59WNSn3LLGZKYm6Jxor4M-oTM-tqp4g5m7zv2GUNg,11141
179
- janito-2.2.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
180
- janito-2.2.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
181
- janito-2.2.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
182
- janito-2.2.0.dist-info/RECORD,,
File without changes