janito 3.4.0__py3-none-any.whl → 3.5.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.
- janito/README.md +3 -0
- janito/cli/chat_mode/bindings.py +50 -0
- janito/cli/chat_mode/session.py +12 -1
- janito/cli/chat_mode/shell/commands/multi.py +5 -0
- janito/cli/chat_mode/shell/commands/security/allowed_sites.py +47 -33
- janito/cli/cli_commands/check_tools.py +212 -0
- janito/cli/cli_commands/list_plugins.py +52 -43
- janito/cli/core/getters.py +3 -0
- janito/cli/core/model_guesser.py +40 -24
- janito/cli/main_cli.py +9 -12
- janito/cli/prompt_core.py +47 -9
- janito/cli/rich_terminal_reporter.py +2 -2
- janito/drivers/openai/driver.py +1 -0
- janito/drivers/zai/driver.py +1 -0
- janito/i18n/it.py +46 -46
- janito/llm/agent.py +32 -16
- janito/llm/auth_utils.py +14 -5
- janito/llm/cancellation_manager.py +63 -0
- janito/llm/driver.py +8 -0
- janito/llm/enter_cancellation.py +107 -0
- janito/plugin_system/__init__.py +10 -0
- janito/{plugins → plugin_system}/base.py +5 -2
- janito/plugin_system/core_loader.py +217 -0
- janito/plugin_system/core_loader_fixed.py +225 -0
- janito/plugins/__init__.py +31 -12
- janito/plugins/auto_loader.py +12 -11
- janito/plugins/auto_loader_fixed.py +12 -11
- janito/plugins/builtin.py +15 -1
- janito/plugins/core/__init__.py +7 -0
- janito/plugins/core/codeanalyzer/__init__.py +43 -0
- janito/plugins/core/filemanager/__init__.py +124 -0
- janito/plugins/core/filemanager/tools/create_file.py +87 -0
- janito/plugins/core/filemanager/tools/replace_text_in_file.py +270 -0
- janito/plugins/core/imagedisplay/__init__.py +14 -0
- janito/plugins/core/imagedisplay/plugin.py +51 -0
- janito/plugins/core/imagedisplay/tools/__init__.py +1 -0
- janito/plugins/core/imagedisplay/tools/show_image.py +83 -0
- janito/{tools/adapters/local → plugins/core/imagedisplay/tools}/show_image_grid.py +13 -5
- janito/plugins/core/system/__init__.py +23 -0
- janito/plugins/core/system/tools/run_bash_command.py +204 -0
- janito/plugins/core/system/tools/run_powershell_command.py +234 -0
- janito/plugins/core_adapter.py +89 -11
- janito/plugins/dev/__init__.py +7 -0
- janito/plugins/dev/pythondev/__init__.py +37 -0
- janito/plugins/dev/visualization/__init__.py +23 -0
- janito/plugins/discovery.py +5 -5
- janito/plugins/discovery_core.py +14 -9
- janito/plugins/example_plugin.py +108 -0
- janito/plugins/manager.py +1 -1
- janito/plugins/tools/__init__.py +10 -0
- janito/{tools/adapters/local → plugins/tools}/ask_user.py +3 -3
- janito/plugins/tools/copy_file.py +87 -0
- janito/plugins/tools/core_tools_plugin.py +87 -0
- janito/plugins/tools/create_directory.py +70 -0
- janito/{tools/adapters/local → plugins/tools}/create_file.py +6 -6
- janito/plugins/tools/decorators.py +19 -0
- janito/plugins/tools/delete_text_in_file.py +134 -0
- janito/{tools/adapters/local → plugins/tools}/fetch_url.py +3 -3
- janito/plugins/tools/find_files.py +143 -0
- janito/plugins/tools/get_file_outline/__init__.py +7 -0
- janito/plugins/tools/get_file_outline/core.py +122 -0
- janito/plugins/tools/get_file_outline/java_outline.py +47 -0
- janito/plugins/tools/get_file_outline/markdown_outline.py +14 -0
- janito/plugins/tools/get_file_outline/python_outline.py +303 -0
- janito/plugins/tools/get_file_outline/search_outline.py +36 -0
- janito/plugins/tools/move_file.py +131 -0
- janito/plugins/tools/open_html_in_browser.py +51 -0
- janito/plugins/tools/open_url.py +37 -0
- janito/{tools/adapters/local → plugins/tools}/python_code_run.py +23 -7
- janito/{tools/adapters/local → plugins/tools}/python_command_run.py +21 -5
- janito/{tools/adapters/local → plugins/tools}/python_file_run.py +21 -5
- janito/plugins/tools/read_chart.py +259 -0
- janito/plugins/tools/read_files.py +58 -0
- janito/plugins/tools/remove_directory.py +55 -0
- janito/plugins/tools/remove_file.py +58 -0
- janito/{tools/adapters/local → plugins/tools}/replace_text_in_file.py +4 -4
- janito/{tools/adapters/local → plugins/tools}/run_bash_command.py +3 -3
- janito/{tools/adapters/local → plugins/tools}/run_powershell_command.py +3 -3
- janito/plugins/tools/search_text/__init__.py +7 -0
- janito/plugins/tools/search_text/core.py +205 -0
- janito/plugins/tools/search_text/match_lines.py +67 -0
- janito/plugins/tools/search_text/pattern_utils.py +73 -0
- janito/plugins/tools/search_text/traverse_directory.py +145 -0
- janito/{tools/adapters/local → plugins/tools}/show_image.py +15 -6
- janito/plugins/tools/show_image_grid.py +85 -0
- janito/plugins/tools/validate_file_syntax/__init__.py +7 -0
- janito/plugins/tools/validate_file_syntax/core.py +114 -0
- janito/plugins/tools/validate_file_syntax/css_validator.py +35 -0
- janito/plugins/tools/validate_file_syntax/html_validator.py +100 -0
- janito/plugins/tools/validate_file_syntax/jinja2_validator.py +50 -0
- janito/plugins/tools/validate_file_syntax/js_validator.py +27 -0
- janito/plugins/tools/validate_file_syntax/json_validator.py +6 -0
- janito/plugins/tools/validate_file_syntax/markdown_validator.py +109 -0
- janito/plugins/tools/validate_file_syntax/ps1_validator.py +32 -0
- janito/plugins/tools/validate_file_syntax/python_validator.py +5 -0
- janito/plugins/tools/validate_file_syntax/xml_validator.py +11 -0
- janito/plugins/tools/validate_file_syntax/yaml_validator.py +6 -0
- janito/plugins/tools/view_file.py +172 -0
- janito/plugins/ui/__init__.py +7 -0
- janito/plugins/ui/userinterface/__init__.py +16 -0
- janito/plugins/ui/userinterface/tools/ask_user.py +110 -0
- janito/plugins/web/__init__.py +7 -0
- janito/plugins/web/webtools/__init__.py +33 -0
- janito/plugins/web/webtools/tools/fetch_url.py +458 -0
- janito/providers/__init__.py +1 -0
- janito/providers/together/__init__.py +1 -0
- janito/providers/together/model_info.py +69 -0
- janito/providers/together/provider.py +108 -0
- janito/tools/__init__.py +31 -7
- janito/tools/adapters/__init__.py +6 -1
- janito/tools/adapters/local/__init__.py +7 -70
- janito/tools/cli_initializer.py +88 -0
- janito/tools/initialize.py +70 -0
- janito/tools/loop_protection_decorator.py +114 -117
- janito-3.5.1.dist-info/METADATA +229 -0
- {janito-3.4.0.dist-info → janito-3.5.1.dist-info}/RECORD +155 -86
- janito/plugins/core_loader.py +0 -120
- janito/plugins/core_loader_fixed.py +0 -125
- janito/tools/function_adapter.py +0 -65
- janito-3.4.0.dist-info/METADATA +0 -84
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/get_file_outline/__init__.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/get_file_outline/core.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/get_file_outline/java_outline.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/get_file_outline/markdown_outline.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/get_file_outline/python_outline.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/get_file_outline/search_outline.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/search_text/__init__.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/search_text/core.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/search_text/match_lines.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/search_text/pattern_utils.py +0 -0
- /janito/{tools/adapters/local → plugins/core/codeanalyzer/tools}/search_text/traverse_directory.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/copy_file.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/create_directory.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/delete_text_in_file.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/find_files.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/move_file.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/read_files.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/remove_directory.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/remove_file.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/__init__.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/core.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/css_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/html_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/jinja2_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/js_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/json_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/markdown_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/ps1_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/python_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/xml_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/validate_file_syntax/yaml_validator.py +0 -0
- /janito/{tools/adapters/local → plugins/core/filemanager/tools}/view_file.py +0 -0
- /janito/{tools/adapters/local → plugins/dev/visualization/tools}/read_chart.py +0 -0
- /janito/{tools/adapters/local → plugins/web/webtools/tools}/open_html_in_browser.py +0 -0
- /janito/{tools/adapters/local → plugins/web/webtools/tools}/open_url.py +0 -0
- {janito-3.4.0.dist-info → janito-3.5.1.dist-info}/WHEEL +0 -0
- {janito-3.4.0.dist-info → janito-3.5.1.dist-info}/entry_points.txt +0 -0
- {janito-3.4.0.dist-info → janito-3.5.1.dist-info}/licenses/LICENSE +0 -0
- {janito-3.4.0.dist-info → janito-3.5.1.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
janito/README.md,sha256=
|
1
|
+
janito/README.md,sha256=Wrt6pMVT9UaXsFpoE3m9hgn28OAHWhkZ_vwWTNcSH8Q,4947
|
2
2
|
janito/__init__.py,sha256=a0pFui3A_AfWJiUfg93yE-Vf4868bqG3y9yg2fkTIuY,244
|
3
3
|
janito/__main__.py,sha256=lPQ8kAyYfyeS1KopmJ8EVY5g1YswlIqCS615mM_B_rM,70
|
4
4
|
janito/_version.py,sha256=PtAVr2K9fOS5sv6aXzmcb7UaR5NLGMFOofL7Ndjh75o,2344
|
@@ -30,18 +30,18 @@ janito/cli/__init__.py,sha256=xaPDOrWphBbCR63Xpcx_yfpXSJIlCaaICc4j2qpWqrM,194
|
|
30
30
|
janito/cli/config.py,sha256=HkZ14701HzIqrvaNyDcDhGlVHfpX_uHlLp2rHmhRm_k,872
|
31
31
|
janito/cli/console.py,sha256=gJolqzWL7jEPLxeuH-CwBDRFpXt976KdZOEAB2tdBDs,64
|
32
32
|
janito/cli/main.py,sha256=s5odou0txf8pzTf1ADk2yV7T5m8B6cejJ81e7iu776U,312
|
33
|
-
janito/cli/main_cli.py,sha256=
|
34
|
-
janito/cli/prompt_core.py,sha256=
|
33
|
+
janito/cli/main_cli.py,sha256=_OOQqeLiqvmYeB_928Av920Gk43rbXecMIOTL6JeT0Y,16674
|
34
|
+
janito/cli/prompt_core.py,sha256=AiSoZGcyuf1sl8hKQ1kExcg-kMvO4XPN2PFHmcPGPBI,13299
|
35
35
|
janito/cli/prompt_handler.py,sha256=SnPTlL64noeAMGlI08VBDD5IDD8jlVMIYA4-fS8zVLg,215
|
36
36
|
janito/cli/prompt_setup.py,sha256=s48gvNfZhKjsEhf4EzL1tKIGm4wDidPMDvlM6TAPYes,2116
|
37
|
-
janito/cli/rich_terminal_reporter.py,sha256=
|
37
|
+
janito/cli/rich_terminal_reporter.py,sha256=9woxYd6FTEnd-yhLYRTtTAu3V5CGAIWj4vjyEoEbYvI,6808
|
38
38
|
janito/cli/utils.py,sha256=plCQiDKIf3V8mFhhX5H9-MF2W86i-xRdWf8Xi117Z0w,677
|
39
39
|
janito/cli/verbose_output.py,sha256=wY_B4of5e8Vv7w1fRwOZzNGU2JqbMdcFnGjtEr4hLus,7686
|
40
|
-
janito/cli/chat_mode/bindings.py,sha256=
|
40
|
+
janito/cli/chat_mode/bindings.py,sha256=lQYk1dJrHt4ec_RphuPlPYMG2QRoLp8Bl0mcGZqhMZE,2906
|
41
41
|
janito/cli/chat_mode/chat_entry.py,sha256=RFdPd23jsA2DMHRacpjAdwI_1dFBaWrtnwyQEgb2fHA,475
|
42
42
|
janito/cli/chat_mode/prompt_style.py,sha256=vsqQ9xxmrYjj1pWuVe9CayQf39fo2EIXrkKPkflSVn4,805
|
43
43
|
janito/cli/chat_mode/script_runner.py,sha256=WFTFVWzg_VQrD2Ujj02XWjscfGgHwmjBeRxaEjWw9ps,6505
|
44
|
-
janito/cli/chat_mode/session.py,sha256=
|
44
|
+
janito/cli/chat_mode/session.py,sha256=QYJ2wpA3IlB756ooFXTSkUVa5mOWgllAkONG3Dgqm8I,19002
|
45
45
|
janito/cli/chat_mode/toolbar.py,sha256=SzdWAJdcY1g2rTPZCPL6G5X8jO6ZQYjwko2-nw54_nU,3397
|
46
46
|
janito/cli/chat_mode/shell/autocomplete.py,sha256=lE68MaVaodbA2VfUM0_YLqQVLBJAE_BJsd5cMtwuD-g,793
|
47
47
|
janito/cli/chat_mode/shell/commands.bak.zip,sha256=I7GFjXg2ORT5NzFpicH1vQ3kchhduQsZinzqo0xO8wU,74238
|
@@ -59,7 +59,7 @@ janito/cli/chat_mode/shell/commands/help.py,sha256=scbjpb37WT9GLrYf-Cn7MrUhL_ZUQ
|
|
59
59
|
janito/cli/chat_mode/shell/commands/history_view.py,sha256=9dyxYpDHjT77LEIikjBQA03Ep3P2AmKXUwUnVsG0OQc,3584
|
60
60
|
janito/cli/chat_mode/shell/commands/lang.py,sha256=uIelDs3gPYDZ9X9gw7iDMmiwefT7TiBo32420pq2tW8,837
|
61
61
|
janito/cli/chat_mode/shell/commands/model.py,sha256=DrtQuqbac5VCpzBikpdu9vVgFVm_K9FYIjUOqmUztD4,1518
|
62
|
-
janito/cli/chat_mode/shell/commands/multi.py,sha256=
|
62
|
+
janito/cli/chat_mode/shell/commands/multi.py,sha256=S6S3dlEqEFmlAOWZL5KrxUwrDoJ6JioY7Pf5rmk5-VE,2144
|
63
63
|
janito/cli/chat_mode/shell/commands/privileges.py,sha256=0u6x48lZl3orBPkO04KnRqfB-w7Y_OUyg-rHrNGxx-Q,1157
|
64
64
|
janito/cli/chat_mode/shell/commands/prompt.py,sha256=6mj1oUO6bodyED19-_tJVO0x-l3REzYjKhp8OKFFWy4,1790
|
65
65
|
janito/cli/chat_mode/shell/commands/provider.py,sha256=p8PM7SPs-ghAfg0Tdd3jVoVpIscaCcrMZC2k5FxkE8I,1155
|
@@ -74,15 +74,16 @@ janito/cli/chat_mode/shell/commands/utility.py,sha256=K982P-UwgPLzpEvSuSBGwiQ3zC
|
|
74
74
|
janito/cli/chat_mode/shell/commands/verbose.py,sha256=HDTe0NhdcjBuhh-eJSW8iLPDeeBO95K5iSDAMAljxa4,953
|
75
75
|
janito/cli/chat_mode/shell/commands/write.py,sha256=NHPj2xe8icUBcpxALIoZZ1zAsX6bhBFqBhnQPqq7fHs,2341
|
76
76
|
janito/cli/chat_mode/shell/commands/security/__init__.py,sha256=od-vkuI7LqmUqz2Q42YToWauRM6IPHGeNj14867yIgM,50
|
77
|
-
janito/cli/chat_mode/shell/commands/security/allowed_sites.py,sha256=
|
77
|
+
janito/cli/chat_mode/shell/commands/security/allowed_sites.py,sha256=pmyQnLD7Do_CaIITDlZ9Md7PqSpQAhRdnnVMMdQVFGk,3679
|
78
78
|
janito/cli/chat_mode/shell/session/__init__.py,sha256=uTYE_QpZFEn7v9QE5o1LdulpCWa9vmk0OsefbBGWg_c,37
|
79
79
|
janito/cli/chat_mode/shell/session/history.py,sha256=tYav6GgjAZkvWhlI_rfG6OArNqW6Wn2DTv39Hb20QYc,1262
|
80
80
|
janito/cli/chat_mode/shell/session/manager.py,sha256=MwD9reHsRaly0CyRB-S1JJ0wPKz2g8Xdj2VvlU35Hgc,1001
|
81
|
+
janito/cli/cli_commands/check_tools.py,sha256=cSXcF0szeWzeEK7kpg7P2cZW3sv5R1nxgCb3P7bWpyE,7182
|
81
82
|
janito/cli/cli_commands/enable_disable_plugin.py,sha256=IIEg5Gz2aAW_7BKrMQTXSGF0zWBoBdrcQQMjfQ7yay4,2985
|
82
83
|
janito/cli/cli_commands/list_config.py,sha256=oiQEGaGPjwjG-PrOcakpNMbbqISTsBEs7rkGH3ceQsI,1179
|
83
84
|
janito/cli/cli_commands/list_drivers.py,sha256=r2ENykUcvf_9XYp6LHd3RvLXGXyVUA6oe_Pr0dyv92I,5124
|
84
85
|
janito/cli/cli_commands/list_models.py,sha256=QF3Wa7OhNcJFKeBxaw0C_rDfsvJFNb-siz5uorajBvo,1595
|
85
|
-
janito/cli/cli_commands/list_plugins.py,sha256=
|
86
|
+
janito/cli/cli_commands/list_plugins.py,sha256=s9lZYhy8UANMj7j6c-l-nP4kJIfM_VYsGEyc3hptJ6c,8075
|
86
87
|
janito/cli/cli_commands/list_profiles.py,sha256=O4k6U9iCEeNH3lM-NP_XX_E9W0h__hheLSn23241dkA,3538
|
87
88
|
janito/cli/cli_commands/list_providers.py,sha256=oilrBjNL5mot1nz45XQQY6oeiSxoNvphhQYspNcEJpw,391
|
88
89
|
janito/cli/cli_commands/list_providers_region.py,sha256=qrMj_gtgEMty8UH0P_O5SgWCVJ9ZKxGUp_GdsE4_EH4,2548
|
@@ -95,8 +96,8 @@ janito/cli/cli_commands/show_config.py,sha256=ammzVEqJQCAdWFRrhI1zjjmzgTCH2l38RE
|
|
95
96
|
janito/cli/cli_commands/show_system_prompt.py,sha256=WQclY_bmJrHbIBRU1qx1WV4VyooyXVx_XQyX_4Rb1hs,6335
|
96
97
|
janito/cli/core/__init__.py,sha256=YH95fhgY9yBX8RgqX9dSrEkl4exjV0T4rbmJ6xUpG-Y,196
|
97
98
|
janito/cli/core/event_logger.py,sha256=1X6lR0Ax7AgF8HlPWFoY5Ystuu7Bh4ooTo78vXzeGB0,2008
|
98
|
-
janito/cli/core/getters.py,sha256=
|
99
|
-
janito/cli/core/model_guesser.py,sha256=
|
99
|
+
janito/cli/core/getters.py,sha256=53umV7aab6WrmcCle8WqU2aYnww7a7IiqtM1YZN0YvE,3016
|
100
|
+
janito/cli/core/model_guesser.py,sha256=557c0FckGIVmPYCgp2hBNsjsmHAiORtoxvLTKnOk8kg,2082
|
100
101
|
janito/cli/core/runner.py,sha256=gi8xke6re9AoHHNCivV50i0eUAliw8QTUdXyqMkMplM,9044
|
101
102
|
janito/cli/core/setters.py,sha256=zjSUxy6iUzcrmEunFk7dA90KqbMaq2O7LTGP8wn2HxA,5378
|
102
103
|
janito/cli/core/unsetters.py,sha256=FEw9gCt0vRvoCt0kRSNfVB2tzi_TqppJIx2nHPP59-k,2012
|
@@ -108,43 +109,153 @@ janito/drivers/openai_responses.bak.zip,sha256=E43eDCHGa2tCtdjzj_pMnWDdnsOZzj8BJ
|
|
108
109
|
janito/drivers/azure_openai/driver.py,sha256=L2rQOl1d0BHaDChHLtZszAeuWNoyYIgwuYuahE1qJps,4152
|
109
110
|
janito/drivers/cerebras/__init__.py,sha256=wXWxPTy4KH5Esw8ml9h-TeApi6XXujNFY2Q4jKVdcAY,26
|
110
111
|
janito/drivers/openai/README.md,sha256=bgPdaYX0pyotCoJ9t3cJbYM-teQ_YM1DAFEKLCMP32Q,666
|
111
|
-
janito/drivers/openai/driver.py,sha256=
|
112
|
+
janito/drivers/openai/driver.py,sha256=06vkhNXE0CWcmFx5qBO1sGOVapAq0wiG0v5xL6YO8Kk,19627
|
112
113
|
janito/drivers/zai/__init__.py,sha256=rleES3ZJEslJ8M02TdTPyxHKXxA4-e2fDJa6yjuzY8s,22
|
113
|
-
janito/drivers/zai/driver.py,sha256=
|
114
|
+
janito/drivers/zai/driver.py,sha256=NK36IxMJ_rSR04bh96mqDX3dcGPySqd1KL0d194xtfw,18919
|
114
115
|
janito/event_bus/__init__.py,sha256=VG6GOhKMBh0O_92D-zW8a3YitJPKDajGgPiFezTXlNE,77
|
115
116
|
janito/event_bus/bus.py,sha256=LokZbAdwcWhWOyKSp7H3Ism57x4EZhxlRPjl3NE4UKU,2847
|
116
117
|
janito/event_bus/event.py,sha256=MtgcBPD7cvCuubiLIyo-BWcsNSO-941HLk6bScHTJtQ,427
|
117
118
|
janito/event_bus/handler.py,sha256=RhBtT1E48VEM2-k8u3HYsESw7VX5qAgiB8ZTJeKXhHc,1322
|
118
119
|
janito/event_bus/queue_bus.py,sha256=l4phun3pxXxi8ZlIq8ChYaiYDVO1PZeXoOzyi3vyu20,1558
|
119
120
|
janito/i18n/__init__.py,sha256=6zCIu6pSQpoMJvIRK9oOD3pkzbNeJik3lFDXse0X6ag,994
|
120
|
-
janito/i18n/it.py,sha256=
|
121
|
+
janito/i18n/it.py,sha256=57xW4YE1kkMz8oNO5fBqK_YllWkHT97asaThDsGsBdM,4097
|
121
122
|
janito/i18n/messages.py,sha256=fBuwOTFoygyHPkYphm6Y0r1iE8497Z4iryVAmPhMEkg,1851
|
122
123
|
janito/i18n/pt.py,sha256=NlTgpDSftUfFG7FGbs7TK54vQlJVMyaZDHGcWjelwMc,4168
|
123
124
|
janito/llm/README.md,sha256=6GRqCu_a9va5HCB1YqNqbshyWKFyAGlnXugrjom-xj8,1213
|
124
125
|
janito/llm/__init__.py,sha256=dpyVH51qVRCw-PDyAFLAxq0zd4jl5MDcuV6Cri0D-dQ,134
|
125
|
-
janito/llm/agent.py,sha256=
|
126
|
+
janito/llm/agent.py,sha256=R3jzva-Er5W1TmHXHf9APxYB51H0z1vxOF6jVda7m7U,21940
|
126
127
|
janito/llm/auth.py,sha256=8Dl_orUEPhn2X6XjkO2Nr-j1HFT2YDxk1qJl9hSFI88,2286
|
127
|
-
janito/llm/auth_utils.py,sha256=
|
128
|
-
janito/llm/
|
128
|
+
janito/llm/auth_utils.py,sha256=mcPWT2p2kGMhvR9QsHqk84utDejPJh3uyjrDOJ0dKYA,1068
|
129
|
+
janito/llm/cancellation_manager.py,sha256=u-hzuuVjQmLV15YPp3cZdF8KmyQLoLv8P5ZTvgYWr7o,2194
|
130
|
+
janito/llm/driver.py,sha256=iVCYGUE5bqa_MTF6p_l2VUl_2y_-IOStNeC0IWfkA3I,10394
|
129
131
|
janito/llm/driver_config.py,sha256=OW0ae49EfgKDqaThuDjZBiaN78voNzwiZ6szERMqJos,1406
|
130
132
|
janito/llm/driver_config_builder.py,sha256=BvWGx7vaBR5NyvPY1XNAP3lAgo1uf-T25CSsIo2kkCU,1401
|
131
133
|
janito/llm/driver_input.py,sha256=Zq7IO4KdQPUraeIo6XoOaRy1IdQAyYY15RQw4JU30uA,389
|
134
|
+
janito/llm/enter_cancellation.py,sha256=sE6yadsFGnKDQVBKenv1sF96wIcAP2LqymiUFJBlijU,3312
|
132
135
|
janito/llm/message_parts.py,sha256=QY_0kDjaxdoErDgKPRPv1dNkkYJuXIBmHWNLiOEKAH4,1365
|
133
136
|
janito/llm/model.py,sha256=EioBkdgn8hJ0iQaKN-0KbXlsrk3YKmwR9IbvoEbdVTE,1159
|
134
137
|
janito/llm/provider.py,sha256=3FbhQPrWBSEoIdIi-5DWIh0DD_CM570EFf1NcuGyGko,7961
|
135
|
-
janito/
|
136
|
-
janito/
|
137
|
-
janito/
|
138
|
-
janito/
|
139
|
-
janito/plugins/
|
138
|
+
janito/plugin_system/__init__.py,sha256=HoTBUooSTEsp_1FaBn-5BmzZX_p_982e4T_fCOeUlD0,290
|
139
|
+
janito/plugin_system/base.py,sha256=Z0PSIj7R-hAKOeCSXC2JyBqm4rlsJoZSqkqxLe-juks,4346
|
140
|
+
janito/plugin_system/core_loader.py,sha256=3zhKPWWSFlThzaRTLjGDPI_DVNRafMP5LZ5r7ei6Jo0,6843
|
141
|
+
janito/plugin_system/core_loader_fixed.py,sha256=3JZnEkM4i0x4k3SJhomtVevmNl4uWhozhVyh6rcMtvE,7159
|
142
|
+
janito/plugins/__init__.py,sha256=q-z28oV-0BaagZ43f__qeg13R9oA7kK7XnVEUHNRZbs,910
|
143
|
+
janito/plugins/auto_loader.py,sha256=-uVDTKQToGCw1nqwAxrt4IDvgP3z3pvZoC5EXFWNm_k,2288
|
144
|
+
janito/plugins/auto_loader_fixed.py,sha256=3JnGDp1enombEHsR8spRDpVrD6tSPdudysWvhyuk5Ec,2304
|
145
|
+
janito/plugins/builtin.py,sha256=kbIOVmqucJKyISC5kWcgda_6IhHGA6yWoxUghc1Qtk0,3409
|
140
146
|
janito/plugins/config.py,sha256=ex5f1XsKPEgIO4DgJCohPzMKAQoUdx1OdSVU0FlSr5o,2331
|
141
|
-
janito/plugins/core_adapter.py,sha256=
|
142
|
-
janito/plugins/
|
143
|
-
janito/plugins/
|
144
|
-
janito/plugins/
|
145
|
-
janito/plugins/
|
146
|
-
janito/plugins/
|
147
|
-
janito/
|
147
|
+
janito/plugins/core_adapter.py,sha256=tFi9VYvb15n3yUGDF7ihALbjL7pz_PDeeEgu_3JFqTQ,4430
|
148
|
+
janito/plugins/discovery.py,sha256=IGQAFPzzzZjlpMzPNdChD7ZJrCYN8QmvXPsvLBOSSjY,10120
|
149
|
+
janito/plugins/discovery_core.py,sha256=3pL8kinyFuz1owqIpZDYYIvj3RrJVJHulUa36Aqsc6g,1617
|
150
|
+
janito/plugins/example_plugin.py,sha256=1B0PYOSFsb2ya2VCwHr1pMJC9ivUJ7t9TtQkc8lkaGU,3136
|
151
|
+
janito/plugins/manager.py,sha256=R1B-2sUD5YFLOTnp4Pfx1wZ-3Hzff--PqaOJHfllc5g,8155
|
152
|
+
janito/plugins/core/__init__.py,sha256=74-nOHG97Jo7cSm_sOLwYYhS0maB1kgKdB69-bmi03k,144
|
153
|
+
janito/plugins/core/codeanalyzer/__init__.py,sha256=meDla5uyJATX7zYSrmRyjjBFjSK53R_lU3Z6iiy_lxM,1056
|
154
|
+
janito/plugins/core/codeanalyzer/tools/get_file_outline/__init__.py,sha256=OKV_BHnoD9h-vkcVoW6AHmsuDjjauHPCKNK0nVFl4sU,37
|
155
|
+
janito/plugins/core/codeanalyzer/tools/get_file_outline/core.py,sha256=25k6a8PaDYxAfxnEAvZvOWg2BgUcgKU_BkzJmZKUMEA,4611
|
156
|
+
janito/plugins/core/codeanalyzer/tools/get_file_outline/java_outline.py,sha256=_UeUY5JoQEUdlHcK8aqGTqYJl0T2KxIFXPTdwum9gKQ,1825
|
157
|
+
janito/plugins/core/codeanalyzer/tools/get_file_outline/markdown_outline.py,sha256=bXEBg0D93tEBDNy8t-wh4i7WxsxfpQ2C3dX1_rmtj08,434
|
158
|
+
janito/plugins/core/codeanalyzer/tools/get_file_outline/python_outline.py,sha256=RAcf9Vxec08lA06drYaNre5HCJ2lTzrRAskZ3rlyE-U,10326
|
159
|
+
janito/plugins/core/codeanalyzer/tools/get_file_outline/search_outline.py,sha256=bski24TpnJVf3L0TNzkx3HfvaXwttQl4EVkwk2POQOw,1348
|
160
|
+
janito/plugins/core/codeanalyzer/tools/search_text/__init__.py,sha256=FEYpF5tTtf0fiAyRGIGSn-kV-MJDkhdFIbus16mYW8Y,34
|
161
|
+
janito/plugins/core/codeanalyzer/tools/search_text/core.py,sha256=Qoid7FESJGVIsFm5oasgv9vZDy0aSzqeJPBWAF2_Edo,7877
|
162
|
+
janito/plugins/core/codeanalyzer/tools/search_text/match_lines.py,sha256=RLR8fZFP-Q57rY0fTENbMItmt3dJZiYX0otmGHVRjfw,2131
|
163
|
+
janito/plugins/core/codeanalyzer/tools/search_text/pattern_utils.py,sha256=D7vtAr8oT0tGV0C_UUarAXS9XQtP-MTYmmc8Yg8iVTg,2362
|
164
|
+
janito/plugins/core/codeanalyzer/tools/search_text/traverse_directory.py,sha256=EpL1qywAV0H29pm8-QsHrjKchKP4i4sRUOENVuNptCo,4000
|
165
|
+
janito/plugins/core/filemanager/__init__.py,sha256=waUhGQ2OL59Ooes4cQOOlQdBsFQSIffevJkcZq_kaCQ,3241
|
166
|
+
janito/plugins/core/filemanager/tools/copy_file.py,sha256=SBJm19Ipe5dqRE1Mxl6JSrn4bNmfObVnDr5b1mcEu6c,3682
|
167
|
+
janito/plugins/core/filemanager/tools/create_directory.py,sha256=LxwqQEsnOrEphCIoaMRRx9P9bu0MzidP3Fc5q6letxc,2584
|
168
|
+
janito/plugins/core/filemanager/tools/create_file.py,sha256=MDMTt3ocp1Ejo3vo7K5Ht2cMPObXiQTr5OTtLv9qOuw,3821
|
169
|
+
janito/plugins/core/filemanager/tools/delete_text_in_file.py,sha256=uEeedRxXAR7_CqUc_qhbEdM0OzRi_pgnP-iDjs2Zvjk,5087
|
170
|
+
janito/plugins/core/filemanager/tools/find_files.py,sha256=Zbag3aP34vc7ffJh8bOqAwXj3KiZhV--uzTVHtNb-fI,6250
|
171
|
+
janito/plugins/core/filemanager/tools/move_file.py,sha256=LMGm8bn3NNyIPJG4vrlO09smXQcgzA09EwoooZxkIA8,4695
|
172
|
+
janito/plugins/core/filemanager/tools/read_files.py,sha256=LzlNrQEadYF8dF97Wm8AHde2nuqbMkN5vVskQLhvFdA,2329
|
173
|
+
janito/plugins/core/filemanager/tools/remove_directory.py,sha256=DEhHdmwJRl5Yp9eEukIIooMrpATCtXcv5HmaDRn8vH8,1913
|
174
|
+
janito/plugins/core/filemanager/tools/remove_file.py,sha256=Imra4jGkBfAd6pnUAmbUsjN0exj2vzZWuNRXq_GOMsI,2093
|
175
|
+
janito/plugins/core/filemanager/tools/replace_text_in_file.py,sha256=Y6mbPuoTpsFXKrSp51s0rz7Hhz1WHkG1sY4pZ3RoZsU,10790
|
176
|
+
janito/plugins/core/filemanager/tools/view_file.py,sha256=cBKcbwbfH-UMyvQ7PmYTgsshcFmorjWtyH1kaYi7oNY,7379
|
177
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/__init__.py,sha256=P53RHmas4BbHL90cMxH9m-RpMCJI8JquoJb0rpkPVVk,29
|
178
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/core.py,sha256=oYCpk_kyCbseKG_xX5xQjW91bPSpzzl18TPm7mMpwPI,3714
|
179
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/css_validator.py,sha256=jE5d26C_fU9k9azujbGVISn2WIRL-Ys6de4dsCq30bo,1351
|
180
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/html_validator.py,sha256=VV93BRcAeUraXHc9dUyH1cs9gRwRwO84K1-L5zbJnYU,3207
|
181
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/jinja2_validator.py,sha256=lfM0SsKsFygiEp1IuLNr5jdS7XJyjCLOPw2yo9vl-pY,1763
|
182
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/js_validator.py,sha256=42LvgyMVhG9c2EAaSz3J9pu-yuh1oyIvRp0wN2rHiDQ,998
|
183
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/json_validator.py,sha256=muCB0-bdxk9zNulzH1It3hWpYzJC3hD8LbxCnE0P5is,150
|
184
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/markdown_validator.py,sha256=k4UT88fXvtclygz-nFhCMHJL5sk5WlGD-fP_cWqWMyU,3511
|
185
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/ps1_validator.py,sha256=TeIkPt08t_-w2JiKksXHHK9lJNT348ZDkWoSTzMtRrI,1152
|
186
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/python_validator.py,sha256=BfCO_K18qy92m-2ZVvHsbEU5e11OPo1pO9Vz4G4616E,130
|
187
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/xml_validator.py,sha256=AijlsP_PgNuC8ZbGsC5vOTt3Jur76otQzkd_7qR0QFY,284
|
188
|
+
janito/plugins/core/filemanager/tools/validate_file_syntax/yaml_validator.py,sha256=TgyI0HRL6ug_gBcWEm5TGJJuA4E34ZXcIzMpAbv3oJs,155
|
189
|
+
janito/plugins/core/imagedisplay/__init__.py,sha256=9RxTfPaWGIk3Z2Md4Fh1tHmbn_QRXUUtKUBDUzip8xk,458
|
190
|
+
janito/plugins/core/imagedisplay/plugin.py,sha256=kq32hgqAKRodyu7Dd-4fO3Lj5NLFW5LFug6kGDa2n2k,1748
|
191
|
+
janito/plugins/core/imagedisplay/tools/__init__.py,sha256=z4xyfhiLUYaHBzus1AxaAWDYncPaPBqVtNipy7y9m88,38
|
192
|
+
janito/plugins/core/imagedisplay/tools/show_image.py,sha256=NpQTCMfBZ4NM6DpMe0lTJYH4NHkBCruUR11E4SdLCUw,3095
|
193
|
+
janito/plugins/core/imagedisplay/tools/show_image_grid.py,sha256=ZsTbDCBr38xYXbbAJBgRKTLuAOw-_C8799LwHA-1yYQ,3078
|
194
|
+
janito/plugins/core/system/__init__.py,sha256=tuaUFus8jTljReloESjdYFWXIEfSEYDct59I-4gZAyc,584
|
195
|
+
janito/plugins/core/system/tools/run_bash_command.py,sha256=oxDbsLHkznN7WhW4WzIblABk27onJ5EgpAlzyrJ3AfU,9020
|
196
|
+
janito/plugins/core/system/tools/run_powershell_command.py,sha256=gWviIUtZvRUgde9TN_kUqYeseyVpsFmOJPMWLOb9_Nw,10152
|
197
|
+
janito/plugins/dev/__init__.py,sha256=V7wIaP_LMGBtg6ldz5fmiWf0eL-lSz4vcFgZjKcHAZo,136
|
198
|
+
janito/plugins/dev/pythondev/__init__.py,sha256=qAO8Ub1lwBAMcfIt6oX0clTTB2msjIIJNHBRZczhHy8,991
|
199
|
+
janito/plugins/dev/visualization/__init__.py,sha256=2zJuePRWKBzuC1_XHg3cguh-JGh4GcvkdENUV3xplz4,547
|
200
|
+
janito/plugins/dev/visualization/tools/read_chart.py,sha256=qQebp_MEE_x2AL_pl85uA58A4lbhLQsyGl7wiG_Cjhc,10411
|
201
|
+
janito/plugins/tools/__init__.py,sha256=vNqUVWA0guwAYuPgdmiDsjmgibj9siP0e61pfTHZ8-8,271
|
202
|
+
janito/plugins/tools/ask_user.py,sha256=7Wgl_9XEPWty3qTG_xcQdwJWypXRorMv3WYM_AZDrBY,4050
|
203
|
+
janito/plugins/tools/copy_file.py,sha256=A0LxkN9b4eDBD7Ww_4LO412kldbx-DlrUELUB-27jOk,3672
|
204
|
+
janito/plugins/tools/core_tools_plugin.py,sha256=QgRE3KcbF-KgRR5y-ADYeuTTLDlenxuKM-68wliVfbs,2683
|
205
|
+
janito/plugins/tools/create_directory.py,sha256=f8fccqwRR3xj_IJ7KZacsxBo2k754bLgVyAefC4jsnI,2574
|
206
|
+
janito/plugins/tools/create_file.py,sha256=C8w_CLMOvoxzwlsGuRKchFfbMCEgqQ-qLIxRf1j_dtc,6419
|
207
|
+
janito/plugins/tools/decorators.py,sha256=BRAjjo4NF4_JxwPPVrrF2wtzsJXuZJkwv_QhZgPFMS4,382
|
208
|
+
janito/plugins/tools/delete_text_in_file.py,sha256=nZb-QuJopA3NDfOW3BEsG6Aj9EaMlfpuEYiG9aGp4z4,5070
|
209
|
+
janito/plugins/tools/fetch_url.py,sha256=hqtllaqx5rgZ-5wAih6-R1tvX5sIFUHy3DTP68JImQM,18202
|
210
|
+
janito/plugins/tools/find_files.py,sha256=S4CLC-WmifyEIO7B1Mk52TAEpy4fIFr9GW9QVQeEE4E,6240
|
211
|
+
janito/plugins/tools/move_file.py,sha256=IgBTH2V3z83K3HT0cHWxAag-E5FoUTKS5nJa-_akvvs,4685
|
212
|
+
janito/plugins/tools/open_html_in_browser.py,sha256=82ONg0OSo_8puznWbrgaiZSyBK_G-TejYgsDQM8a2KU,2091
|
213
|
+
janito/plugins/tools/open_url.py,sha256=X-fdPCTkJ5WBkNDAjV_XVUh3MDEuDGcv-5PbvfC8y68,1542
|
214
|
+
janito/plugins/tools/python_code_run.py,sha256=BIc7hPTsEqsCo3BTZviVZjoj8baQE9wNz7pQLUT8HFI,7715
|
215
|
+
janito/plugins/tools/python_command_run.py,sha256=nbXxuoDADPw5wR5ysNm5tIwFN9RrrshoQISBscXd_Ow,7645
|
216
|
+
janito/plugins/tools/python_file_run.py,sha256=jIbzBwjAHLY2xy2crQpdFj9KH3VjaD4qc7TxbkeNW88,7569
|
217
|
+
janito/plugins/tools/read_chart.py,sha256=8KT-Zzfpdp68QN6Pl8enDLPrKRBY2lhcKsJ8scS6i3o,10401
|
218
|
+
janito/plugins/tools/read_files.py,sha256=7RVj4qescT__VHe1k_VdnpHKHY5YeG0fqPiNIopd3Is,2319
|
219
|
+
janito/plugins/tools/remove_directory.py,sha256=jmY0pSrOJVQqR-_P7OuZijovAKkNB5cDk8BAAKVvvLI,1903
|
220
|
+
janito/plugins/tools/remove_file.py,sha256=tWjCx96O2cFW3XIpx8U5W2JUzbfsoXY5zn8k3jr4AIA,2083
|
221
|
+
janito/plugins/tools/replace_text_in_file.py,sha256=F7RvMdA0EM9xDtM7lB_0DrMjDeYa8exn73_15SQ0iug,10949
|
222
|
+
janito/plugins/tools/run_bash_command.py,sha256=r-zjfDmw7z2H08cNqKHxXov1_KvfmjPeL5IEg4ZDTxQ,7945
|
223
|
+
janito/plugins/tools/run_powershell_command.py,sha256=3CWvSr9IkCX6yJ3P_cP80QYUZg30m5TREAPOpzzqYrM,9303
|
224
|
+
janito/plugins/tools/show_image.py,sha256=v-vEP5LG2-YjrcoWTfgXQ8jSlXfslXjWVV6Uaq7N4IA,3052
|
225
|
+
janito/plugins/tools/show_image_grid.py,sha256=eS9PGcGrIqazX1fBSu39N3RaQlFoeIdVc75z2ruhWeI,3118
|
226
|
+
janito/plugins/tools/view_file.py,sha256=SlTfdKyEnaqhDnPc7gpBC51JWIkdc3WvYsTq3amEN4g,7369
|
227
|
+
janito/plugins/tools/get_file_outline/__init__.py,sha256=po2B4UWf4qvw3yisWkiW1VeeFl1SGvm4xhs1kNbNyCc,110
|
228
|
+
janito/plugins/tools/get_file_outline/core.py,sha256=KHZwnRdgRzyEJe0IjKzjxs8TQBJdU7xYTDWnqQgZVhM,4590
|
229
|
+
janito/plugins/tools/get_file_outline/java_outline.py,sha256=_UeUY5JoQEUdlHcK8aqGTqYJl0T2KxIFXPTdwum9gKQ,1825
|
230
|
+
janito/plugins/tools/get_file_outline/markdown_outline.py,sha256=bXEBg0D93tEBDNy8t-wh4i7WxsxfpQ2C3dX1_rmtj08,434
|
231
|
+
janito/plugins/tools/get_file_outline/python_outline.py,sha256=RAcf9Vxec08lA06drYaNre5HCJ2lTzrRAskZ3rlyE-U,10326
|
232
|
+
janito/plugins/tools/get_file_outline/search_outline.py,sha256=bski24TpnJVf3L0TNzkx3HfvaXwttQl4EVkwk2POQOw,1348
|
233
|
+
janito/plugins/tools/search_text/__init__.py,sha256=pZo-65KTw9y0oFBCBXEyxACbS10QvAXa21icXuRyh34,101
|
234
|
+
janito/plugins/tools/search_text/core.py,sha256=bjXWCkGEkCnX-q60N3prU_EYiN5i8Sw_7ArTvq18pco,7856
|
235
|
+
janito/plugins/tools/search_text/match_lines.py,sha256=RLR8fZFP-Q57rY0fTENbMItmt3dJZiYX0otmGHVRjfw,2131
|
236
|
+
janito/plugins/tools/search_text/pattern_utils.py,sha256=D7vtAr8oT0tGV0C_UUarAXS9XQtP-MTYmmc8Yg8iVTg,2362
|
237
|
+
janito/plugins/tools/search_text/traverse_directory.py,sha256=EpL1qywAV0H29pm8-QsHrjKchKP4i4sRUOENVuNptCo,4000
|
238
|
+
janito/plugins/tools/validate_file_syntax/__init__.py,sha256=1Fp7sHG_ndTJi9xbUzpFSp9TSW-DpwN2n_psZM8mXmw,128
|
239
|
+
janito/plugins/tools/validate_file_syntax/core.py,sha256=E8g67nRv5x_PomKm8IlUdQlYyjC3l3IdSTBlODKPn6Y,3705
|
240
|
+
janito/plugins/tools/validate_file_syntax/css_validator.py,sha256=jE5d26C_fU9k9azujbGVISn2WIRL-Ys6de4dsCq30bo,1351
|
241
|
+
janito/plugins/tools/validate_file_syntax/html_validator.py,sha256=VV93BRcAeUraXHc9dUyH1cs9gRwRwO84K1-L5zbJnYU,3207
|
242
|
+
janito/plugins/tools/validate_file_syntax/jinja2_validator.py,sha256=lfM0SsKsFygiEp1IuLNr5jdS7XJyjCLOPw2yo9vl-pY,1763
|
243
|
+
janito/plugins/tools/validate_file_syntax/js_validator.py,sha256=42LvgyMVhG9c2EAaSz3J9pu-yuh1oyIvRp0wN2rHiDQ,998
|
244
|
+
janito/plugins/tools/validate_file_syntax/json_validator.py,sha256=muCB0-bdxk9zNulzH1It3hWpYzJC3hD8LbxCnE0P5is,150
|
245
|
+
janito/plugins/tools/validate_file_syntax/markdown_validator.py,sha256=k4UT88fXvtclygz-nFhCMHJL5sk5WlGD-fP_cWqWMyU,3511
|
246
|
+
janito/plugins/tools/validate_file_syntax/ps1_validator.py,sha256=TeIkPt08t_-w2JiKksXHHK9lJNT348ZDkWoSTzMtRrI,1152
|
247
|
+
janito/plugins/tools/validate_file_syntax/python_validator.py,sha256=BfCO_K18qy92m-2ZVvHsbEU5e11OPo1pO9Vz4G4616E,130
|
248
|
+
janito/plugins/tools/validate_file_syntax/xml_validator.py,sha256=AijlsP_PgNuC8ZbGsC5vOTt3Jur76otQzkd_7qR0QFY,284
|
249
|
+
janito/plugins/tools/validate_file_syntax/yaml_validator.py,sha256=TgyI0HRL6ug_gBcWEm5TGJJuA4E34ZXcIzMpAbv3oJs,155
|
250
|
+
janito/plugins/ui/__init__.py,sha256=V3bXCQO9YyWc6oiPKyXRP6YqJT_LT9330b3uukSzJ_8,122
|
251
|
+
janito/plugins/ui/userinterface/__init__.py,sha256=kmno20y5PuZvv_eqDWPKEcN6Zo_vlyt-WZv-4A5e8UI,352
|
252
|
+
janito/plugins/ui/userinterface/tools/ask_user.py,sha256=4xY8SUndw_OYAPzeIRxugmihxxn7Y-b2v9xYT_LGdkY,3941
|
253
|
+
janito/plugins/web/__init__.py,sha256=gVPBgz06iQgBUlqHJt3TpWQErkbH_Cx_6BX6XVSYtcY,118
|
254
|
+
janito/plugins/web/webtools/__init__.py,sha256=vGFtbZvV2DnooPmw4B8hHd0UgpVfNugLs8uK0sI9N2w,847
|
255
|
+
janito/plugins/web/webtools/tools/fetch_url.py,sha256=VjB89FjLNrqLmOVL6wm1RHyixB3n-RViC0DJjW33iRM,17804
|
256
|
+
janito/plugins/web/webtools/tools/open_html_in_browser.py,sha256=XqICIwVx5vEE77gHkaNAC-bAeEEy0DBmDksATiL-sRY,2101
|
257
|
+
janito/plugins/web/webtools/tools/open_url.py,sha256=V3Sv7iLynUreLjVl5-bl-XFH_LzpTeBrS8-cvzp_7rM,1552
|
258
|
+
janito/providers/__init__.py,sha256=LZcyllhmGyOXQ8duQA2Qbg0fSrahog5ATNZppNOxFK0,571
|
148
259
|
janito/providers/dashscope.bak.zip,sha256=BwXxRmZreEivvRtmqbr5BR62IFVlNjAf4y6DrF2BVJo,5998
|
149
260
|
janito/providers/registry.py,sha256=Ygwv9eVrTXOKhv0EKxSWQXO5WMHvajWE2Q_Lc3p7dKo,730
|
150
261
|
janito/providers/alibaba/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -177,6 +288,9 @@ janito/providers/openai/__init__.py,sha256=f0m16-sIqScjL9Mp4A0CQBZx6H3PTEy0cnE08
|
|
177
288
|
janito/providers/openai/model_info.py,sha256=VTkq3xcx2vk0tXlFVHQxKeFzl-DL1T1J2elVOEwCdHI,4265
|
178
289
|
janito/providers/openai/provider.py,sha256=PPr_qmSe5GyysnZCxhjeUVhE2LWKjKOSRel-8aaxq_U,4761
|
179
290
|
janito/providers/openai/schema_generator.py,sha256=hTqeLcPTR8jeKn5DUUpo7b-EZ-V-g1WwXiX7MbHnFzE,2234
|
291
|
+
janito/providers/together/__init__.py,sha256=8JguGMgLW_QUJ-G6VIypp_Uq6avi3LGwKWpEiyGRWOU,33
|
292
|
+
janito/providers/together/model_info.py,sha256=4EsluZgPfZW68Uc9o5vDnUmo-hQAGIs5eTDWuR24kPg,2407
|
293
|
+
janito/providers/together/provider.py,sha256=BiM8p8rlqPem_PHdOyXq08J3LZFrAKtP7PDqDSToLdI,3847
|
180
294
|
janito/providers/zai/__init__.py,sha256=qtIr9_QBFaXG8xB6cRDGhS7se6ir11CWseI9azLMRBo,24
|
181
295
|
janito/providers/zai/model_info.py,sha256=ldwD8enpxXv1G-YsDw4YJn31YsVueQ4vj5HgoYvnPxo,1183
|
182
296
|
janito/providers/zai/provider.py,sha256=aKqDTdcwWk-FT70wTbTrTzlWx2NwRWkLoB64upiliU8,5066
|
@@ -187,13 +301,14 @@ janito/regions/geo_utils.py,sha256=nLJ2x0tx1xMNI0_cMEiji-X8denynsaPYmXR9gGg8uk,5
|
|
187
301
|
janito/regions/provider_regions.py,sha256=QJdbsdgjg-WcTRqPLGtm3pHJAm2o0-Y9MgE_vNzENEk,4619
|
188
302
|
janito/tools/DOCSTRING_STANDARD.txt,sha256=VLPwNgjxRVD_xZSSVvUZ4H-4bBwM-VKh_RyfzYQsYSs,1735
|
189
303
|
janito/tools/README.md,sha256=5HkLpF5k4PENJER7SlDPRXj0yo9mpHvAHW4uuzhq4ak,115
|
190
|
-
janito/tools/__init__.py,sha256=
|
304
|
+
janito/tools/__init__.py,sha256=PoMIw_JgsEGP5SO77mqsZFl0Z-p2W2WnyHaaAKSnirk,1961
|
191
305
|
janito/tools/base.py,sha256=R38A9xWYh3JRYZMDSom2d1taNDy9J7HpLbZo9X2wH_o,316
|
306
|
+
janito/tools/cli_initializer.py,sha256=KJbUL6_iAsaeBZl_AVrdtczSZRQBJ9RPZufHJVKwAtU,2632
|
192
307
|
janito/tools/disabled_tools.py,sha256=Tx__16wtMWZ9z34cYLdH1gukwot5MCL-9kLjd5MPX6Y,2110
|
193
|
-
janito/tools/
|
308
|
+
janito/tools/initialize.py,sha256=BSwzCPCmis2n4q5W3tWBEr4MgVS4tAwBjfKoNM4CefI,2002
|
194
309
|
janito/tools/inspect_registry.py,sha256=Jo7PrMPRKLuR-j_mBAk9PBcTzeJf1eQrS1ChGofgQk0,538
|
195
310
|
janito/tools/loop_protection.py,sha256=WQ2Cqt459vXvrO0T1EqkEHynHlRkPzfaC83RSmXzjkM,4718
|
196
|
-
janito/tools/loop_protection_decorator.py,sha256=
|
311
|
+
janito/tools/loop_protection_decorator.py,sha256=ZCccrg24B_titDeOhaEORPq8wnRyLf1bdb8YEHK25lo,4957
|
197
312
|
janito/tools/outline_file.bak.zip,sha256=EeI2cBXCwTdWVgJDNiroxKeYlkjwo6NLKeXz3J-2iZI,15607
|
198
313
|
janito/tools/path_security.py,sha256=40b0hV0X3449Dht93A04Q3c9AYSsBQsBFy2BjzM83lA,8214
|
199
314
|
janito/tools/path_utils.py,sha256=Rg5GE4kiu7rky6I2KTtivW6wPXzc9Qmq0_lOjwkPYlI,832
|
@@ -207,58 +322,12 @@ janito/tools/tool_utils.py,sha256=alPm9DvtXSw_zPRKvP5GjbebPRf_nfvmWk2TNlL5Cws,12
|
|
207
322
|
janito/tools/tools_adapter.py,sha256=F1Wkji222dY53HMaZWf3vqVas1Bimm3UXERKvxF54Ew,21687
|
208
323
|
janito/tools/tools_schema.py,sha256=rGrKrmpPNR07VXHAJ_haGBRRO-YGLOF51BlYRep9AAQ,4415
|
209
324
|
janito/tools/url_whitelist.py,sha256=0CPLkHTp5HgnwgjxwgXnJmwPeZQ30q4j3YjW59hiUUE,4295
|
210
|
-
janito/tools/adapters/__init__.py,sha256=
|
211
|
-
janito/tools/adapters/local/__init__.py,sha256=
|
325
|
+
janito/tools/adapters/__init__.py,sha256=H25uYM2ETMLKpKPPEPAu9-AFjxkKfSyfx3pnoXSQlVA,255
|
326
|
+
janito/tools/adapters/local/__init__.py,sha256=1DVnka4iEQp8Xrs7rJVVx45fPpuVahjTFmuJhv-gN8s,249
|
212
327
|
janito/tools/adapters/local/adapter.py,sha256=u4nLHTaYdwZXMi1J8lsKvlG6rOmdq9xjey_3zeyCG4k,8707
|
213
|
-
janito/
|
214
|
-
janito/
|
215
|
-
janito/
|
216
|
-
janito/
|
217
|
-
janito/
|
218
|
-
janito
|
219
|
-
janito/tools/adapters/local/find_files.py,sha256=Zbag3aP34vc7ffJh8bOqAwXj3KiZhV--uzTVHtNb-fI,6250
|
220
|
-
janito/tools/adapters/local/move_file.py,sha256=LMGm8bn3NNyIPJG4vrlO09smXQcgzA09EwoooZxkIA8,4695
|
221
|
-
janito/tools/adapters/local/open_html_in_browser.py,sha256=XqICIwVx5vEE77gHkaNAC-bAeEEy0DBmDksATiL-sRY,2101
|
222
|
-
janito/tools/adapters/local/open_url.py,sha256=V3Sv7iLynUreLjVl5-bl-XFH_LzpTeBrS8-cvzp_7rM,1552
|
223
|
-
janito/tools/adapters/local/python_code_run.py,sha256=HdDuiRb7Fd7WC6bFS292XnSI1EYhn9XKlh8Hs_4Cz8E,6981
|
224
|
-
janito/tools/adapters/local/python_command_run.py,sha256=BT9emL3PsNGupkENNfUymPECiQEAm9tBhniCaOuatj0,6935
|
225
|
-
janito/tools/adapters/local/python_file_run.py,sha256=p0iOoxByCoKqW7QqfxTdHbPbRzEd_KWyZqnzrSb1qLQ,6859
|
226
|
-
janito/tools/adapters/local/read_chart.py,sha256=qQebp_MEE_x2AL_pl85uA58A4lbhLQsyGl7wiG_Cjhc,10411
|
227
|
-
janito/tools/adapters/local/read_files.py,sha256=LzlNrQEadYF8dF97Wm8AHde2nuqbMkN5vVskQLhvFdA,2329
|
228
|
-
janito/tools/adapters/local/remove_directory.py,sha256=DEhHdmwJRl5Yp9eEukIIooMrpATCtXcv5HmaDRn8vH8,1913
|
229
|
-
janito/tools/adapters/local/remove_file.py,sha256=Imra4jGkBfAd6pnUAmbUsjN0exj2vzZWuNRXq_GOMsI,2093
|
230
|
-
janito/tools/adapters/local/replace_text_in_file.py,sha256=zJIDecviF2YRpWxbvhtka4Iaje-QYhcaqQX1PxWolzE,10966
|
231
|
-
janito/tools/adapters/local/run_bash_command.py,sha256=7fABqAeAu7WJwzzwHmT54_m5OSwPMcgpQ74lQhPG7TA,7955
|
232
|
-
janito/tools/adapters/local/run_powershell_command.py,sha256=uQSJVQe40wSGbesyvZxDmIKJthAbDJFaxXm1dEN3gBs,9313
|
233
|
-
janito/tools/adapters/local/show_image.py,sha256=OkdiIkaRhjqPMSF5QFcqjLK-fN1oljo_YQM9TH2ZK_A,2932
|
234
|
-
janito/tools/adapters/local/show_image_grid.py,sha256=w_U04_K0qmCcX8ac6KUcs-UsnfCb-qsXT3-kasr17dM,3000
|
235
|
-
janito/tools/adapters/local/view_file.py,sha256=cBKcbwbfH-UMyvQ7PmYTgsshcFmorjWtyH1kaYi7oNY,7379
|
236
|
-
janito/tools/adapters/local/get_file_outline/__init__.py,sha256=OKV_BHnoD9h-vkcVoW6AHmsuDjjauHPCKNK0nVFl4sU,37
|
237
|
-
janito/tools/adapters/local/get_file_outline/core.py,sha256=25k6a8PaDYxAfxnEAvZvOWg2BgUcgKU_BkzJmZKUMEA,4611
|
238
|
-
janito/tools/adapters/local/get_file_outline/java_outline.py,sha256=_UeUY5JoQEUdlHcK8aqGTqYJl0T2KxIFXPTdwum9gKQ,1825
|
239
|
-
janito/tools/adapters/local/get_file_outline/markdown_outline.py,sha256=bXEBg0D93tEBDNy8t-wh4i7WxsxfpQ2C3dX1_rmtj08,434
|
240
|
-
janito/tools/adapters/local/get_file_outline/python_outline.py,sha256=RAcf9Vxec08lA06drYaNre5HCJ2lTzrRAskZ3rlyE-U,10326
|
241
|
-
janito/tools/adapters/local/get_file_outline/search_outline.py,sha256=bski24TpnJVf3L0TNzkx3HfvaXwttQl4EVkwk2POQOw,1348
|
242
|
-
janito/tools/adapters/local/search_text/__init__.py,sha256=FEYpF5tTtf0fiAyRGIGSn-kV-MJDkhdFIbus16mYW8Y,34
|
243
|
-
janito/tools/adapters/local/search_text/core.py,sha256=Qoid7FESJGVIsFm5oasgv9vZDy0aSzqeJPBWAF2_Edo,7877
|
244
|
-
janito/tools/adapters/local/search_text/match_lines.py,sha256=RLR8fZFP-Q57rY0fTENbMItmt3dJZiYX0otmGHVRjfw,2131
|
245
|
-
janito/tools/adapters/local/search_text/pattern_utils.py,sha256=D7vtAr8oT0tGV0C_UUarAXS9XQtP-MTYmmc8Yg8iVTg,2362
|
246
|
-
janito/tools/adapters/local/search_text/traverse_directory.py,sha256=EpL1qywAV0H29pm8-QsHrjKchKP4i4sRUOENVuNptCo,4000
|
247
|
-
janito/tools/adapters/local/validate_file_syntax/__init__.py,sha256=P53RHmas4BbHL90cMxH9m-RpMCJI8JquoJb0rpkPVVk,29
|
248
|
-
janito/tools/adapters/local/validate_file_syntax/core.py,sha256=oYCpk_kyCbseKG_xX5xQjW91bPSpzzl18TPm7mMpwPI,3714
|
249
|
-
janito/tools/adapters/local/validate_file_syntax/css_validator.py,sha256=jE5d26C_fU9k9azujbGVISn2WIRL-Ys6de4dsCq30bo,1351
|
250
|
-
janito/tools/adapters/local/validate_file_syntax/html_validator.py,sha256=VV93BRcAeUraXHc9dUyH1cs9gRwRwO84K1-L5zbJnYU,3207
|
251
|
-
janito/tools/adapters/local/validate_file_syntax/jinja2_validator.py,sha256=lfM0SsKsFygiEp1IuLNr5jdS7XJyjCLOPw2yo9vl-pY,1763
|
252
|
-
janito/tools/adapters/local/validate_file_syntax/js_validator.py,sha256=42LvgyMVhG9c2EAaSz3J9pu-yuh1oyIvRp0wN2rHiDQ,998
|
253
|
-
janito/tools/adapters/local/validate_file_syntax/json_validator.py,sha256=muCB0-bdxk9zNulzH1It3hWpYzJC3hD8LbxCnE0P5is,150
|
254
|
-
janito/tools/adapters/local/validate_file_syntax/markdown_validator.py,sha256=k4UT88fXvtclygz-nFhCMHJL5sk5WlGD-fP_cWqWMyU,3511
|
255
|
-
janito/tools/adapters/local/validate_file_syntax/ps1_validator.py,sha256=TeIkPt08t_-w2JiKksXHHK9lJNT348ZDkWoSTzMtRrI,1152
|
256
|
-
janito/tools/adapters/local/validate_file_syntax/python_validator.py,sha256=BfCO_K18qy92m-2ZVvHsbEU5e11OPo1pO9Vz4G4616E,130
|
257
|
-
janito/tools/adapters/local/validate_file_syntax/xml_validator.py,sha256=AijlsP_PgNuC8ZbGsC5vOTt3Jur76otQzkd_7qR0QFY,284
|
258
|
-
janito/tools/adapters/local/validate_file_syntax/yaml_validator.py,sha256=TgyI0HRL6ug_gBcWEm5TGJJuA4E34ZXcIzMpAbv3oJs,155
|
259
|
-
janito-3.4.0.dist-info/licenses/LICENSE,sha256=dXV4fOF2ZErugtN8l_Nrj5tsRTYgtjE3cgiya0UfBio,11356
|
260
|
-
janito-3.4.0.dist-info/METADATA,sha256=OhAg58LlZWZXOProIjAs9ZcYVSRL8MTOVzv24lZKVpg,2312
|
261
|
-
janito-3.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
262
|
-
janito-3.4.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
|
263
|
-
janito-3.4.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
|
264
|
-
janito-3.4.0.dist-info/RECORD,,
|
328
|
+
janito-3.5.1.dist-info/licenses/LICENSE,sha256=dXV4fOF2ZErugtN8l_Nrj5tsRTYgtjE3cgiya0UfBio,11356
|
329
|
+
janito-3.5.1.dist-info/METADATA,sha256=1r4YjdQ2OvewXvPBmWjeog5ssJCkjZR_xFgEO_gkJzI,6093
|
330
|
+
janito-3.5.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
331
|
+
janito-3.5.1.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
|
332
|
+
janito-3.5.1.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
|
333
|
+
janito-3.5.1.dist-info/RECORD,,
|
janito/plugins/core_loader.py
DELETED
@@ -1,120 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Core plugin loader that properly handles function-based plugins.
|
3
|
-
|
4
|
-
This module provides a simplified approach to load core plugins
|
5
|
-
without the complex discovery mechanism.
|
6
|
-
"""
|
7
|
-
|
8
|
-
import importlib.util
|
9
|
-
import sys
|
10
|
-
from pathlib import Path
|
11
|
-
from typing import Optional
|
12
|
-
|
13
|
-
from janito.plugins.base import Plugin, PluginMetadata
|
14
|
-
from janito.tools.function_adapter import create_function_tool
|
15
|
-
from janito.tools.tool_base import ToolBase
|
16
|
-
|
17
|
-
|
18
|
-
class CorePlugin(Plugin):
|
19
|
-
"""Simple core plugin implementation."""
|
20
|
-
|
21
|
-
def __init__(self, name: str, description: str, tools: list):
|
22
|
-
super().__init__()
|
23
|
-
self._plugin_name = name
|
24
|
-
self._description = description
|
25
|
-
self._tools = tools
|
26
|
-
self._tool_classes = []
|
27
|
-
|
28
|
-
def get_metadata(self) -> PluginMetadata:
|
29
|
-
return PluginMetadata(
|
30
|
-
name=self._plugin_name,
|
31
|
-
version="1.0.0",
|
32
|
-
description=self._description,
|
33
|
-
author="Janito",
|
34
|
-
license="MIT",
|
35
|
-
)
|
36
|
-
|
37
|
-
def get_tools(self) -> list:
|
38
|
-
return self._tool_classes
|
39
|
-
|
40
|
-
def initialize(self):
|
41
|
-
"""Initialize by creating tool classes."""
|
42
|
-
self._tool_classes = []
|
43
|
-
for tool_func in self._tools:
|
44
|
-
if callable(tool_func):
|
45
|
-
tool_class = create_function_tool(tool_func)
|
46
|
-
self._tool_classes.append(tool_class)
|
47
|
-
|
48
|
-
|
49
|
-
def load_core_plugin(plugin_name: str) -> Optional[Plugin]:
|
50
|
-
"""
|
51
|
-
Load a core plugin by name.
|
52
|
-
|
53
|
-
Args:
|
54
|
-
plugin_name: Name of the plugin (e.g., 'core.filemanager')
|
55
|
-
|
56
|
-
Returns:
|
57
|
-
Plugin instance if loaded successfully
|
58
|
-
"""
|
59
|
-
try:
|
60
|
-
# Parse plugin name
|
61
|
-
if "." not in plugin_name:
|
62
|
-
return None
|
63
|
-
|
64
|
-
parts = plugin_name.split(".")
|
65
|
-
if len(parts) != 2:
|
66
|
-
return None
|
67
|
-
|
68
|
-
package_name, submodule_name = parts
|
69
|
-
|
70
|
-
# Build path to plugin
|
71
|
-
plugin_path = Path("plugins") / package_name / submodule_name / "__init__.py"
|
72
|
-
if not plugin_path.exists():
|
73
|
-
return None
|
74
|
-
|
75
|
-
# Load the module
|
76
|
-
spec = importlib.util.spec_from_file_location(plugin_name, plugin_path)
|
77
|
-
if spec is None or spec.loader is None:
|
78
|
-
return None
|
79
|
-
|
80
|
-
module = importlib.util.module_from_spec(spec)
|
81
|
-
spec.loader.exec_module(module)
|
82
|
-
|
83
|
-
# Get plugin info
|
84
|
-
name = getattr(module, "__plugin_name__", plugin_name)
|
85
|
-
description = getattr(module, "__plugin_description__", f"Core plugin: {plugin_name}")
|
86
|
-
tools = getattr(module, "__plugin_tools__", [])
|
87
|
-
|
88
|
-
if not tools:
|
89
|
-
return None
|
90
|
-
|
91
|
-
# Create plugin
|
92
|
-
plugin = CorePlugin(name, description, tools)
|
93
|
-
plugin.initialize()
|
94
|
-
return plugin
|
95
|
-
|
96
|
-
except Exception as e:
|
97
|
-
print(f"Error loading core plugin {plugin_name}: {e}")
|
98
|
-
return None
|
99
|
-
|
100
|
-
|
101
|
-
def get_core_plugins() -> list:
|
102
|
-
"""Get list of all available core plugins."""
|
103
|
-
core_plugins = [
|
104
|
-
"core.filemanager",
|
105
|
-
"core.codeanalyzer",
|
106
|
-
"core.system",
|
107
|
-
"core.imagedisplay",
|
108
|
-
"dev.pythondev",
|
109
|
-
"dev.visualization",
|
110
|
-
"ui.userinterface",
|
111
|
-
"web.webtools",
|
112
|
-
]
|
113
|
-
|
114
|
-
available = []
|
115
|
-
for plugin_name in core_plugins:
|
116
|
-
plugin = load_core_plugin(plugin_name)
|
117
|
-
if plugin:
|
118
|
-
available.append(plugin_name)
|
119
|
-
|
120
|
-
return available
|
@@ -1,125 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Fixed core plugin loader.
|
3
|
-
|
4
|
-
This module provides a working implementation to load core plugins
|
5
|
-
by directly using the Plugin base class properly.
|
6
|
-
"""
|
7
|
-
|
8
|
-
import importlib.util
|
9
|
-
import sys
|
10
|
-
from pathlib import Path
|
11
|
-
from typing import Optional, List, Type
|
12
|
-
|
13
|
-
from janito.plugins.base import Plugin, PluginMetadata
|
14
|
-
from janito.tools.function_adapter import create_function_tool
|
15
|
-
from janito.tools.tool_base import ToolBase
|
16
|
-
|
17
|
-
|
18
|
-
class CorePlugin(Plugin):
|
19
|
-
"""Working core plugin implementation."""
|
20
|
-
|
21
|
-
def __init__(self, name: str, description: str, tools: list):
|
22
|
-
self._plugin_name = name
|
23
|
-
self._description = description
|
24
|
-
self._tools = tools
|
25
|
-
self._tool_classes = []
|
26
|
-
super().__init__() # Call super after setting attributes
|
27
|
-
|
28
|
-
def get_metadata(self) -> PluginMetadata:
|
29
|
-
return PluginMetadata(
|
30
|
-
name=self._plugin_name,
|
31
|
-
version="1.0.0",
|
32
|
-
description=self._description,
|
33
|
-
author="Janito",
|
34
|
-
license="MIT",
|
35
|
-
)
|
36
|
-
|
37
|
-
def get_tools(self) -> List[Type[ToolBase]]:
|
38
|
-
return self._tool_classes
|
39
|
-
|
40
|
-
def initialize(self):
|
41
|
-
"""Initialize by creating tool classes."""
|
42
|
-
self._tool_classes = []
|
43
|
-
for tool_func in self._tools:
|
44
|
-
if callable(tool_func):
|
45
|
-
tool_class = create_function_tool(tool_func)
|
46
|
-
self._tool_classes.append(tool_class)
|
47
|
-
|
48
|
-
|
49
|
-
def load_core_plugin(plugin_name: str) -> Optional[Plugin]:
|
50
|
-
"""
|
51
|
-
Load a core plugin by name.
|
52
|
-
|
53
|
-
Args:
|
54
|
-
plugin_name: Name of the plugin (e.g., 'core.filemanager')
|
55
|
-
|
56
|
-
Returns:
|
57
|
-
Plugin instance if loaded successfully
|
58
|
-
"""
|
59
|
-
try:
|
60
|
-
# Parse plugin name
|
61
|
-
if "." not in plugin_name:
|
62
|
-
return None
|
63
|
-
|
64
|
-
parts = plugin_name.split(".")
|
65
|
-
if len(parts) != 2:
|
66
|
-
return None
|
67
|
-
|
68
|
-
package_name, submodule_name = parts
|
69
|
-
|
70
|
-
# Handle imagedisplay specially
|
71
|
-
if plugin_name == "core.imagedisplay":
|
72
|
-
# Import the actual plugin class
|
73
|
-
try:
|
74
|
-
from plugins.core.imagedisplay.plugin import ImageDisplayPlugin
|
75
|
-
return ImageDisplayPlugin()
|
76
|
-
except ImportError:
|
77
|
-
# If import fails, return None - don't return True
|
78
|
-
return None
|
79
|
-
|
80
|
-
# Build path to plugin
|
81
|
-
plugin_path = Path("plugins") / package_name / submodule_name / "__init__.py"
|
82
|
-
if not plugin_path.exists():
|
83
|
-
return None
|
84
|
-
|
85
|
-
# Load the module
|
86
|
-
spec = importlib.util.spec_from_file_location(plugin_name, plugin_path)
|
87
|
-
if spec is None or spec.loader is None:
|
88
|
-
return None
|
89
|
-
|
90
|
-
module = importlib.util.module_from_spec(spec)
|
91
|
-
spec.loader.exec_module(module)
|
92
|
-
|
93
|
-
# Get plugin info
|
94
|
-
name = getattr(module, "__plugin_name__", plugin_name)
|
95
|
-
description = getattr(module, "__plugin_description__", f"Core plugin: {plugin_name}")
|
96
|
-
tools = getattr(module, "__plugin_tools__", [])
|
97
|
-
|
98
|
-
if not tools:
|
99
|
-
return None
|
100
|
-
|
101
|
-
# Create plugin
|
102
|
-
plugin = CorePlugin(name, description, tools)
|
103
|
-
plugin.initialize()
|
104
|
-
return plugin
|
105
|
-
|
106
|
-
except Exception as e:
|
107
|
-
print(f"Error loading core plugin {plugin_name}: {e}")
|
108
|
-
return None
|
109
|
-
|
110
|
-
|
111
|
-
def get_core_plugins() -> list:
|
112
|
-
"""Get list of all available core plugins."""
|
113
|
-
core_plugins = [
|
114
|
-
"core.filemanager",
|
115
|
-
"core.codeanalyzer",
|
116
|
-
"core.system",
|
117
|
-
"core.imagedisplay",
|
118
|
-
"dev.pythondev",
|
119
|
-
"dev.visualization",
|
120
|
-
"ui.userinterface",
|
121
|
-
"web.webtools",
|
122
|
-
]
|
123
|
-
|
124
|
-
# All core plugins are always available
|
125
|
-
return core_plugins
|