janito 3.6.1__py3-none-any.whl → 3.8.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.
- janito/README.md +4 -7
- janito/cli/chat_mode/bindings.py +0 -50
- janito/cli/chat_mode/session.py +1 -12
- janito/cli/chat_mode/shell/commands/multi.py +0 -5
- janito/cli/chat_mode/shell/commands/security/allowed_sites.py +33 -47
- janito/cli/cli_commands/list_plugins.py +43 -52
- janito/cli/cli_commands/list_tools.py +1 -6
- janito/cli/core/getters.py +0 -3
- janito/cli/core/model_guesser.py +24 -40
- janito/cli/main_cli.py +13 -10
- janito/cli/prompt_core.py +9 -47
- janito/cli/rich_terminal_reporter.py +4 -4
- janito/docs/GETTING_STARTED.md +9 -8
- janito/drivers/openai/driver.py +0 -1
- janito/drivers/zai/driver.py +0 -1
- janito/i18n/it.py +46 -46
- janito/llm/agent.py +16 -32
- janito/llm/auth_utils.py +5 -14
- janito/llm/driver.py +0 -8
- janito/plugins/__init__.py +12 -31
- janito/plugins/auto_loader.py +11 -12
- janito/plugins/auto_loader_fixed.py +11 -12
- janito/{plugin_system → plugins}/base.py +2 -5
- janito/plugins/builtin.py +1 -15
- janito/plugins/core_adapter.py +11 -89
- janito/plugins/core_loader.py +120 -0
- janito/plugins/core_loader_fixed.py +125 -0
- janito/plugins/discovery.py +5 -5
- janito/plugins/discovery_core.py +9 -14
- janito/plugins/manager.py +1 -1
- janito/providers/__init__.py +0 -1
- janito/providers/alibaba/model_info.py +10 -0
- janito/providers/alibaba/provider.py +1 -3
- janito/providers/moonshot/model_info.py +7 -7
- janito/providers/moonshot/provider.py +1 -1
- janito/tools/__init__.py +7 -41
- janito/tools/adapters/__init__.py +1 -6
- janito/tools/adapters/local/__init__.py +70 -7
- janito/{plugins/tools/core → tools/adapters/local}/ask_user.py +3 -3
- janito/tools/adapters/local/copy_file.py +87 -0
- janito/tools/adapters/local/create_file.py +138 -0
- janito/{plugins/tools/core → tools/adapters/local}/fetch_url.py +23 -20
- janito/tools/adapters/local/move_file.py +131 -0
- janito/{plugins/tools/core → tools/adapters/local}/python_code_run.py +7 -23
- janito/{plugins/tools/core → tools/adapters/local}/python_command_run.py +5 -21
- janito/{plugins/tools/core → tools/adapters/local}/python_file_run.py +5 -21
- janito/tools/adapters/local/remove_file.py +58 -0
- janito/{plugins/tools/core → tools/adapters/local}/replace_text_in_file.py +4 -4
- janito/{plugins/tools/core → tools/adapters/local}/run_bash_command.py +3 -3
- janito/{plugins/tools/core → tools/adapters/local}/run_powershell_command.py +3 -3
- janito/{plugins/tools/core → tools/adapters/local}/show_image.py +6 -15
- janito/{plugins/core/imagedisplay/tools → tools/adapters/local}/show_image_grid.py +5 -13
- janito/tools/adapters/local/view_file.py +172 -0
- janito/tools/function_adapter.py +65 -0
- janito/tools/loop_protection_decorator.py +117 -114
- janito-3.8.0.dist-info/METADATA +84 -0
- janito-3.8.0.dist-info/RECORD +264 -0
- janito/cli/cli_commands/check_tools.py +0 -212
- janito/data/blocked.txt +0 -96
- janito/llm/cancellation_manager.py +0 -63
- janito/llm/enter_cancellation.py +0 -107
- janito/plugin_system/__init__.py +0 -10
- janito/plugin_system/core_loader.py +0 -217
- janito/plugin_system/core_loader_fixed.py +0 -225
- janito/plugins/core/__init__.py +0 -7
- janito/plugins/core/codeanalyzer/__init__.py +0 -43
- janito/plugins/core/filemanager/__init__.py +0 -124
- janito/plugins/core/filemanager/tools/copy_file.py +0 -87
- janito/plugins/core/filemanager/tools/create_file.py +0 -87
- janito/plugins/core/filemanager/tools/move_file.py +0 -131
- janito/plugins/core/filemanager/tools/remove_file.py +0 -58
- janito/plugins/core/filemanager/tools/replace_text_in_file.py +0 -270
- janito/plugins/core/filemanager/tools/view_file.py +0 -172
- janito/plugins/core/imagedisplay/__init__.py +0 -14
- janito/plugins/core/imagedisplay/plugin.py +0 -51
- janito/plugins/core/imagedisplay/tools/__init__.py +0 -1
- janito/plugins/core/imagedisplay/tools/show_image.py +0 -83
- janito/plugins/core/system/__init__.py +0 -23
- janito/plugins/core/system/tools/run_bash_command.py +0 -204
- janito/plugins/core/system/tools/run_powershell_command.py +0 -234
- janito/plugins/dev/__init__.py +0 -7
- janito/plugins/dev/pythondev/__init__.py +0 -37
- janito/plugins/dev/visualization/__init__.py +0 -23
- janito/plugins/example_plugin.py +0 -108
- janito/plugins/tools/__init__.py +0 -39
- janito/plugins/tools/core/__init__.py +0 -65
- janito/plugins/tools/core/copy_file.py +0 -87
- janito/plugins/tools/core/create_directory.py +0 -70
- janito/plugins/tools/core/create_file.py +0 -138
- janito/plugins/tools/core/decorators.py +0 -19
- janito/plugins/tools/core/delete_text_in_file.py +0 -134
- janito/plugins/tools/core/find_files.py +0 -143
- janito/plugins/tools/core/get_file_outline/__init__.py +0 -7
- janito/plugins/tools/core/get_file_outline/core.py +0 -122
- janito/plugins/tools/core/get_file_outline/java_outline.py +0 -47
- janito/plugins/tools/core/get_file_outline/markdown_outline.py +0 -14
- janito/plugins/tools/core/get_file_outline/python_outline.py +0 -303
- janito/plugins/tools/core/get_file_outline/search_outline.py +0 -36
- janito/plugins/tools/core/move_file.py +0 -131
- janito/plugins/tools/core/open_html_in_browser.py +0 -51
- janito/plugins/tools/core/open_url.py +0 -37
- janito/plugins/tools/core/read_chart.py +0 -259
- janito/plugins/tools/core/read_files.py +0 -58
- janito/plugins/tools/core/remove_directory.py +0 -55
- janito/plugins/tools/core/remove_file.py +0 -58
- janito/plugins/tools/core/search_text/__init__.py +0 -7
- janito/plugins/tools/core/search_text/core.py +0 -205
- janito/plugins/tools/core/search_text/match_lines.py +0 -67
- janito/plugins/tools/core/search_text/pattern_utils.py +0 -73
- janito/plugins/tools/core/search_text/traverse_directory.py +0 -145
- janito/plugins/tools/core/show_image_grid.py +0 -85
- janito/plugins/tools/core/validate_file_syntax/__init__.py +0 -7
- janito/plugins/tools/core/validate_file_syntax/core.py +0 -114
- janito/plugins/tools/core/validate_file_syntax/css_validator.py +0 -35
- janito/plugins/tools/core/validate_file_syntax/html_validator.py +0 -100
- janito/plugins/tools/core/validate_file_syntax/jinja2_validator.py +0 -50
- janito/plugins/tools/core/validate_file_syntax/js_validator.py +0 -27
- janito/plugins/tools/core/validate_file_syntax/json_validator.py +0 -6
- janito/plugins/tools/core/validate_file_syntax/markdown_validator.py +0 -109
- janito/plugins/tools/core/validate_file_syntax/ps1_validator.py +0 -32
- janito/plugins/tools/core/validate_file_syntax/python_validator.py +0 -5
- janito/plugins/tools/core/validate_file_syntax/xml_validator.py +0 -11
- janito/plugins/tools/core/validate_file_syntax/yaml_validator.py +0 -6
- janito/plugins/tools/core/view_file.py +0 -172
- janito/plugins/ui/__init__.py +0 -7
- janito/plugins/ui/userinterface/__init__.py +0 -16
- janito/plugins/ui/userinterface/tools/ask_user.py +0 -110
- janito/plugins/web/__init__.py +0 -7
- janito/plugins/web/webtools/__init__.py +0 -23
- janito/providers/together/__init__.py +0 -1
- janito/providers/together/model_info.py +0 -69
- janito/providers/together/provider.py +0 -108
- janito/tools/blocked_sites.py +0 -74
- janito/tools/cli_initializer.py +0 -88
- janito/tools/initialize.py +0 -70
- janito-3.6.1.dist-info/METADATA +0 -228
- janito-3.6.1.dist-info/RECORD +0 -339
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/create_directory.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/delete_text_in_file.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/find_files.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/__init__.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/core.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/java_outline.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/markdown_outline.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/python_outline.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/get_file_outline/search_outline.py +0 -0
- /janito/{plugins/web/webtools/tools → tools/adapters/local}/open_html_in_browser.py +0 -0
- /janito/{plugins/web/webtools/tools → tools/adapters/local}/open_url.py +0 -0
- /janito/{plugins/dev/visualization/tools → tools/adapters/local}/read_chart.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/read_files.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/remove_directory.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/__init__.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/core.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/match_lines.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/pattern_utils.py +0 -0
- /janito/{plugins/core/codeanalyzer/tools → tools/adapters/local}/search_text/traverse_directory.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/__init__.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/core.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/css_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/html_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/jinja2_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/js_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/json_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/markdown_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/ps1_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/python_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/xml_validator.py +0 -0
- /janito/{plugins/core/filemanager/tools → tools/adapters/local}/validate_file_syntax/yaml_validator.py +0 -0
- {janito-3.6.1.dist-info → janito-3.8.0.dist-info}/WHEEL +0 -0
- {janito-3.6.1.dist-info → janito-3.8.0.dist-info}/entry_points.txt +0 -0
- {janito-3.6.1.dist-info → janito-3.8.0.dist-info}/licenses/LICENSE +0 -0
- {janito-3.6.1.dist-info → janito-3.8.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,264 @@
|
|
1
|
+
janito/README.md,sha256=Kd4GcEYIt04520J2AIMCZbp1enAGRzlLswCfyi1g5AY,4737
|
2
|
+
janito/__init__.py,sha256=a0pFui3A_AfWJiUfg93yE-Vf4868bqG3y9yg2fkTIuY,244
|
3
|
+
janito/__main__.py,sha256=lPQ8kAyYfyeS1KopmJ8EVY5g1YswlIqCS615mM_B_rM,70
|
4
|
+
janito/_version.py,sha256=PtAVr2K9fOS5sv6aXzmcb7UaR5NLGMFOofL7Ndjh75o,2344
|
5
|
+
janito/config.py,sha256=DXuC74NEywKvpTkOSrrxJGvHdL_tvXEf27pkedV3XZA,313
|
6
|
+
janito/config_manager.py,sha256=0dnECwhkgk8dWYZDtHZ24lNXhYJ4PkmYEDty9Vc1s3c,6281
|
7
|
+
janito/conversation_history.py,sha256=GqqEJElTVONzOMRe-9g25WCMcDi0PF7DOnqGWLTrY_8,897
|
8
|
+
janito/dir_walk_utils.py,sha256=ON9EyVH7Aaik8WtCH5z8DQis9ycdoNVkjNvU16HH498,1193
|
9
|
+
janito/driver_events.py,sha256=51ab7KW_W6fVZVeO0ez-HJFY4NbTI327ZlEmEsEkxQc,3405
|
10
|
+
janito/exceptions.py,sha256=5YoffZeZDh2BEdPfhYG6JExvIqOoX7V7TjzrJqzoklw,1786
|
11
|
+
janito/formatting.py,sha256=SMvOmL6bst3KGcI7OLa5D4DE127fQYuHZS3oY8OPsn8,2031
|
12
|
+
janito/formatting_token.py,sha256=UefBF8Nn3BU8bJNQRrJWB3i3zXEwkRRZMPGuAOJaDYI,2440
|
13
|
+
janito/gitignore_utils.py,sha256=P3iF9fMWAomqULq2xsoqHtI9uNIFSPcagljrxZshmLw,4110
|
14
|
+
janito/hello.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
|
+
janito/mkdocs.yml,sha256=hceV1mnCuj5Eo42jJQHSAhqHC4emiMExgnISiiwqSow,925
|
16
|
+
janito/perf_singleton.py,sha256=g1h0Sdf4ydzegeEpJlMhQt4H0GQZ2hryXrdYOTL-b30,113
|
17
|
+
janito/performance_collector.py,sha256=RYu4av16Trj3RljJZ8-2Gbn1KlGdJUosrcVFYtwviNI,6285
|
18
|
+
janito/platform_discovery.py,sha256=JN3kC7hkxdvuj-AyrJTlbbDJjtNHke3fdlZDqGi_uz0,4621
|
19
|
+
janito/provider_config.py,sha256=acn2FEgWsEIyi2AxZiuCLoP2rXDd-nXcP5VB4CZHaeE,3189
|
20
|
+
janito/provider_registry.py,sha256=IRNB35Cjn4PSXMWOxKBjPg0DfUEOoL4vh63OSPxhMtk,6925
|
21
|
+
janito/report_events.py,sha256=q4OR_jTZNfcqaQF_fzTjgqo6_VlUIxSGWfhpT4nJWcw,938
|
22
|
+
janito/shell.bak.zip,sha256=hznHbmgfkAkjuQDJ3w73XPQh05yrtUZQxLmtGbanbYU,22
|
23
|
+
janito/utils.py,sha256=eXSsMgM69YyzahgCNrJQLcEbB8ssLI1MQqaa20ONxbE,376
|
24
|
+
janito/agent/setup_agent.py,sha256=DIc8gcX41CHWg6YGVSqQJuQxl1iUYk9JIR07wTvHJyk,13012
|
25
|
+
janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2,sha256=gA_Br5UoM-CS8eyoYUtoPz4v2IXCjBcaRQmZ-chEEAI,4064
|
26
|
+
janito/agent/templates/profiles/system_prompt_template_developer.txt.j2,sha256=6cKS-UJ8pJX3voGsMFqMrJWCCYH0aX8ZWcToRCeEbI4,3747
|
27
|
+
janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2,sha256=V9JAxdZcWkl53rmSRnrJCjHIsRM6GWEsNLno2hdKx7M,4256
|
28
|
+
janito/agent/templates/profiles/system_prompt_template_model_conversation_without_tools_or_context.txt.j2,sha256=Zgoa26AlR37rjYAPl-4ydA3NdHm8ylT831IaMiGTd5o,1722
|
29
|
+
janito/cli/__init__.py,sha256=xaPDOrWphBbCR63Xpcx_yfpXSJIlCaaICc4j2qpWqrM,194
|
30
|
+
janito/cli/config.py,sha256=HkZ14701HzIqrvaNyDcDhGlVHfpX_uHlLp2rHmhRm_k,872
|
31
|
+
janito/cli/console.py,sha256=gJolqzWL7jEPLxeuH-CwBDRFpXt976KdZOEAB2tdBDs,64
|
32
|
+
janito/cli/main.py,sha256=s5odou0txf8pzTf1ADk2yV7T5m8B6cejJ81e7iu776U,312
|
33
|
+
janito/cli/main_cli.py,sha256=FXpoybaEbDRlK5-oMOMlcdM7TpVfnOdr6-mOkgJHeTo,16648
|
34
|
+
janito/cli/prompt_core.py,sha256=F68J4Xl6jZMYFN4oBBYZFj15Jp-HTYoLub4bw2XpNRU,11648
|
35
|
+
janito/cli/prompt_handler.py,sha256=SnPTlL64noeAMGlI08VBDD5IDD8jlVMIYA4-fS8zVLg,215
|
36
|
+
janito/cli/prompt_setup.py,sha256=s48gvNfZhKjsEhf4EzL1tKIGm4wDidPMDvlM6TAPYes,2116
|
37
|
+
janito/cli/rich_terminal_reporter.py,sha256=Hitf5U13gncad4GPVAcDMfdSwlfzQzOn9KdeX4TjTWU,6806
|
38
|
+
janito/cli/utils.py,sha256=plCQiDKIf3V8mFhhX5H9-MF2W86i-xRdWf8Xi117Z0w,677
|
39
|
+
janito/cli/verbose_output.py,sha256=wY_B4of5e8Vv7w1fRwOZzNGU2JqbMdcFnGjtEr4hLus,7686
|
40
|
+
janito/cli/chat_mode/bindings.py,sha256=odjc5_-YW1t2FRhBUNRNoBMoQIg5sMz3ktV7xG0ADFU,975
|
41
|
+
janito/cli/chat_mode/chat_entry.py,sha256=RFdPd23jsA2DMHRacpjAdwI_1dFBaWrtnwyQEgb2fHA,475
|
42
|
+
janito/cli/chat_mode/prompt_style.py,sha256=vsqQ9xxmrYjj1pWuVe9CayQf39fo2EIXrkKPkflSVn4,805
|
43
|
+
janito/cli/chat_mode/script_runner.py,sha256=WFTFVWzg_VQrD2Ujj02XWjscfGgHwmjBeRxaEjWw9ps,6505
|
44
|
+
janito/cli/chat_mode/session.py,sha256=1mCET4V9u1FGEMnr8HJGOc6X8lhTNkhAYlZ3cvIvefw,18540
|
45
|
+
janito/cli/chat_mode/toolbar.py,sha256=SzdWAJdcY1g2rTPZCPL6G5X8jO6ZQYjwko2-nw54_nU,3397
|
46
|
+
janito/cli/chat_mode/shell/autocomplete.py,sha256=lE68MaVaodbA2VfUM0_YLqQVLBJAE_BJsd5cMtwuD-g,793
|
47
|
+
janito/cli/chat_mode/shell/commands.bak.zip,sha256=I7GFjXg2ORT5NzFpicH1vQ3kchhduQsZinzqo0xO8wU,74238
|
48
|
+
janito/cli/chat_mode/shell/input_history.py,sha256=9620dKYSpXfGhdd2msbuqnkNW3Drv0dZ0eisWBaGKbg,2586
|
49
|
+
janito/cli/chat_mode/shell/session.bak.zip,sha256=m1GyO3Wy4G4D9sVgRO6ZDyC0VjclsmnEJsiQoer4LzI,5789
|
50
|
+
janito/cli/chat_mode/shell/commands/__init__.py,sha256=27m5syilHSQlZX4AewgwIBpknQuf3hsuJhX2khVgZ6o,2464
|
51
|
+
janito/cli/chat_mode/shell/commands/_priv_check.py,sha256=OBPRMZlFlLSJSfbXrLqRCqD3ISKqR0QNzBJpa7g30Ro,206
|
52
|
+
janito/cli/chat_mode/shell/commands/_priv_status.py,sha256=WgCEK38Hllz3Bz4TgVgODdmo0BDaBey5t0uMyA3125k,478
|
53
|
+
janito/cli/chat_mode/shell/commands/bang.py,sha256=qVCUM8ZnGE1J3yG1hjYYw7upY4PR6bhNNYfJa-NfnI4,1860
|
54
|
+
janito/cli/chat_mode/shell/commands/base.py,sha256=I6-SVOcRd7q4PpoutLdrbhbqeUpJic2oyPhOSMgMihA,288
|
55
|
+
janito/cli/chat_mode/shell/commands/clear.py,sha256=wYEHGYcAohUoCJlbEhiXKfDbJvuzAVK4e9uirskIllw,422
|
56
|
+
janito/cli/chat_mode/shell/commands/conversation_restart.py,sha256=idPjWQ4Caps2vMOZ_tgTFOHr2U-cnf6Jqtt8wdyilGc,3848
|
57
|
+
janito/cli/chat_mode/shell/commands/execute.py,sha256=ms8qM3mGc-B2rMznPVj01Lx_qYbIOBXzitVuue5nUEo,2518
|
58
|
+
janito/cli/chat_mode/shell/commands/help.py,sha256=scbjpb37WT9GLrYf-Cn7MrUhL_ZUQORWVfBRTc1Y5ME,1293
|
59
|
+
janito/cli/chat_mode/shell/commands/history_view.py,sha256=9dyxYpDHjT77LEIikjBQA03Ep3P2AmKXUwUnVsG0OQc,3584
|
60
|
+
janito/cli/chat_mode/shell/commands/lang.py,sha256=uIelDs3gPYDZ9X9gw7iDMmiwefT7TiBo32420pq2tW8,837
|
61
|
+
janito/cli/chat_mode/shell/commands/model.py,sha256=DrtQuqbac5VCpzBikpdu9vVgFVm_K9FYIjUOqmUztD4,1518
|
62
|
+
janito/cli/chat_mode/shell/commands/multi.py,sha256=HAAk0fAO3n8KFta3I4hT_scOAlz4SxWDyaNBUJBQ4nc,1985
|
63
|
+
janito/cli/chat_mode/shell/commands/privileges.py,sha256=0u6x48lZl3orBPkO04KnRqfB-w7Y_OUyg-rHrNGxx-Q,1157
|
64
|
+
janito/cli/chat_mode/shell/commands/prompt.py,sha256=6mj1oUO6bodyED19-_tJVO0x-l3REzYjKhp8OKFFWy4,1790
|
65
|
+
janito/cli/chat_mode/shell/commands/provider.py,sha256=p8PM7SPs-ghAfg0Tdd3jVoVpIscaCcrMZC2k5FxkE8I,1155
|
66
|
+
janito/cli/chat_mode/shell/commands/read.py,sha256=Nf8pC4W_Sw3ts1bxhJKZmf2jLpjRtLddTirqbB_25oI,2331
|
67
|
+
janito/cli/chat_mode/shell/commands/role.py,sha256=4Mt3okuNwOjqHbNhOFawcWB9KCLkpTDuLoDJFeXr3-E,1079
|
68
|
+
janito/cli/chat_mode/shell/commands/security_command.py,sha256=w8Gg95fT0jd9CxGWx3PGNi9t2E3TNoAP18agE4sgnUo,1784
|
69
|
+
janito/cli/chat_mode/shell/commands/session.py,sha256=9wsw5U24-KJgTT70KAwnGuS8MVPyvpxCJfAt_Io76O0,1574
|
70
|
+
janito/cli/chat_mode/shell/commands/session_control.py,sha256=tmMGJ8IvWoBwSIJu7T6GPnFYFrmXWIG2Gr9tTni4y3U,1307
|
71
|
+
janito/cli/chat_mode/shell/commands/tools.py,sha256=hc-3D8TVDgEsPF4FJf5wWjsC1STYOeqfisbrMD_3MbM,3505
|
72
|
+
janito/cli/chat_mode/shell/commands/unrestricted.py,sha256=U-BvzKtG2Ut1RHKcDgDADr-M3vY7W87GuXzMrqZBut4,1701
|
73
|
+
janito/cli/chat_mode/shell/commands/utility.py,sha256=K982P-UwgPLzpEvSuSBGwiQ3zC34S_6T2ork_djweQw,847
|
74
|
+
janito/cli/chat_mode/shell/commands/verbose.py,sha256=HDTe0NhdcjBuhh-eJSW8iLPDeeBO95K5iSDAMAljxa4,953
|
75
|
+
janito/cli/chat_mode/shell/commands/write.py,sha256=NHPj2xe8icUBcpxALIoZZ1zAsX6bhBFqBhnQPqq7fHs,2341
|
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=K_izmERZlumlTVxiTMvMXbMhADlJBvhyeeM5IGva_X8,3240
|
78
|
+
janito/cli/chat_mode/shell/session/__init__.py,sha256=uTYE_QpZFEn7v9QE5o1LdulpCWa9vmk0OsefbBGWg_c,37
|
79
|
+
janito/cli/chat_mode/shell/session/history.py,sha256=tYav6GgjAZkvWhlI_rfG6OArNqW6Wn2DTv39Hb20QYc,1262
|
80
|
+
janito/cli/chat_mode/shell/session/manager.py,sha256=MwD9reHsRaly0CyRB-S1JJ0wPKz2g8Xdj2VvlU35Hgc,1001
|
81
|
+
janito/cli/cli_commands/enable_disable_plugin.py,sha256=IIEg5Gz2aAW_7BKrMQTXSGF0zWBoBdrcQQMjfQ7yay4,2985
|
82
|
+
janito/cli/cli_commands/list_config.py,sha256=oiQEGaGPjwjG-PrOcakpNMbbqISTsBEs7rkGH3ceQsI,1179
|
83
|
+
janito/cli/cli_commands/list_drivers.py,sha256=r2ENykUcvf_9XYp6LHd3RvLXGXyVUA6oe_Pr0dyv92I,5124
|
84
|
+
janito/cli/cli_commands/list_models.py,sha256=QF3Wa7OhNcJFKeBxaw0C_rDfsvJFNb-siz5uorajBvo,1595
|
85
|
+
janito/cli/cli_commands/list_plugins.py,sha256=Lv-M6EAFiqnj0tl9Bq23s162t--81AIs2EqZxhi81lQ,7996
|
86
|
+
janito/cli/cli_commands/list_profiles.py,sha256=O4k6U9iCEeNH3lM-NP_XX_E9W0h__hheLSn23241dkA,3538
|
87
|
+
janito/cli/cli_commands/list_providers.py,sha256=oilrBjNL5mot1nz45XQQY6oeiSxoNvphhQYspNcEJpw,391
|
88
|
+
janito/cli/cli_commands/list_providers_region.py,sha256=qrMj_gtgEMty8UH0P_O5SgWCVJ9ZKxGUp_GdsE4_EH4,2548
|
89
|
+
janito/cli/cli_commands/list_tools.py,sha256=JFRdlhPeA3BzhJ2PkjIt3u137IJoNc-vYSjUuPlaOXw,3593
|
90
|
+
janito/cli/cli_commands/model_selection.py,sha256=ANWtwC5glZkGMdaNtARDbEG3QmuBUcDLVxzzC5jeBNo,1643
|
91
|
+
janito/cli/cli_commands/model_utils.py,sha256=4t2ZN8DYA8jxluXHiiliV8gMbF_90nKGtgU9VO4-gMg,5088
|
92
|
+
janito/cli/cli_commands/ping_providers.py,sha256=hetZAKKZzQYRpRDT5OvRTOe4jYUVNZGjo8gFoyeRA3I,1921
|
93
|
+
janito/cli/cli_commands/set_api_key.py,sha256=IR_hUcLjK-2oJmiIVdjc8epPsQAzqEN9MS7lSTVqmKM,1060
|
94
|
+
janito/cli/cli_commands/show_config.py,sha256=ammzVEqJQCAdWFRrhI1zjjmzgTCH2l38REoT4gYJPP0,3467
|
95
|
+
janito/cli/cli_commands/show_system_prompt.py,sha256=WQclY_bmJrHbIBRU1qx1WV4VyooyXVx_XQyX_4Rb1hs,6335
|
96
|
+
janito/cli/core/__init__.py,sha256=YH95fhgY9yBX8RgqX9dSrEkl4exjV0T4rbmJ6xUpG-Y,196
|
97
|
+
janito/cli/core/event_logger.py,sha256=1X6lR0Ax7AgF8HlPWFoY5Ystuu7Bh4ooTo78vXzeGB0,2008
|
98
|
+
janito/cli/core/getters.py,sha256=opmcSz86J-I95Klsh0c4y6lsYvNakrvRqvuA0o5ARWI,2869
|
99
|
+
janito/cli/core/model_guesser.py,sha256=V7LBkIllSp_tP9-2B1gcl5b4b-La7mrOvE3AZQQm8lk,1716
|
100
|
+
janito/cli/core/runner.py,sha256=gi8xke6re9AoHHNCivV50i0eUAliw8QTUdXyqMkMplM,9044
|
101
|
+
janito/cli/core/setters.py,sha256=zjSUxy6iUzcrmEunFk7dA90KqbMaq2O7LTGP8wn2HxA,5378
|
102
|
+
janito/cli/core/unsetters.py,sha256=FEw9gCt0vRvoCt0kRSNfVB2tzi_TqppJIx2nHPP59-k,2012
|
103
|
+
janito/cli/single_shot_mode/__init__.py,sha256=Ct99pKe9tINzVW6oedZJfzfZQKWpXz-weSSCn0hrwHY,115
|
104
|
+
janito/cli/single_shot_mode/handler.py,sha256=d251ObY-5bkUyccV9NYkKDF0VCKrQTrGEnwt3mtj61w,5529
|
105
|
+
janito/docs/GETTING_STARTED.md,sha256=Yx3vi1LQWyDWlE_JYuz4V9EL-Gh4WU6cOBqCr8XidF4,4960
|
106
|
+
janito/drivers/dashscope.bak.zip,sha256=9Pv4Xyciju8jO1lEMFVgYXexoZkxmDO3Ig6vw3ODfL8,4936
|
107
|
+
janito/drivers/openai_responses.bak.zip,sha256=E43eDCHGa2tCtdjzj_pMnWDdnsOZzj8BJTR5tJp8wcM,13352
|
108
|
+
janito/drivers/azure_openai/driver.py,sha256=L2rQOl1d0BHaDChHLtZszAeuWNoyYIgwuYuahE1qJps,4152
|
109
|
+
janito/drivers/cerebras/__init__.py,sha256=wXWxPTy4KH5Esw8ml9h-TeApi6XXujNFY2Q4jKVdcAY,26
|
110
|
+
janito/drivers/openai/README.md,sha256=bgPdaYX0pyotCoJ9t3cJbYM-teQ_YM1DAFEKLCMP32Q,666
|
111
|
+
janito/drivers/openai/driver.py,sha256=NbR_1Btr7QpJjNzJ3CxJa1-Kfw17lImZFU9fyKDLSRo,19567
|
112
|
+
janito/drivers/zai/__init__.py,sha256=rleES3ZJEslJ8M02TdTPyxHKXxA4-e2fDJa6yjuzY8s,22
|
113
|
+
janito/drivers/zai/driver.py,sha256=uOR7VFEMjd7Dw_zSFO1SN5SgBCIG8b4CEzRMIUXBgUQ,18859
|
114
|
+
janito/event_bus/__init__.py,sha256=VG6GOhKMBh0O_92D-zW8a3YitJPKDajGgPiFezTXlNE,77
|
115
|
+
janito/event_bus/bus.py,sha256=LokZbAdwcWhWOyKSp7H3Ism57x4EZhxlRPjl3NE4UKU,2847
|
116
|
+
janito/event_bus/event.py,sha256=MtgcBPD7cvCuubiLIyo-BWcsNSO-941HLk6bScHTJtQ,427
|
117
|
+
janito/event_bus/handler.py,sha256=RhBtT1E48VEM2-k8u3HYsESw7VX5qAgiB8ZTJeKXhHc,1322
|
118
|
+
janito/event_bus/queue_bus.py,sha256=l4phun3pxXxi8ZlIq8ChYaiYDVO1PZeXoOzyi3vyu20,1558
|
119
|
+
janito/i18n/__init__.py,sha256=6zCIu6pSQpoMJvIRK9oOD3pkzbNeJik3lFDXse0X6ag,994
|
120
|
+
janito/i18n/it.py,sha256=jpWyCrwoZXxHaLEbmYL2B1ouOa854ecdCfpXq4mqroc,4052
|
121
|
+
janito/i18n/messages.py,sha256=fBuwOTFoygyHPkYphm6Y0r1iE8497Z4iryVAmPhMEkg,1851
|
122
|
+
janito/i18n/pt.py,sha256=NlTgpDSftUfFG7FGbs7TK54vQlJVMyaZDHGcWjelwMc,4168
|
123
|
+
janito/llm/README.md,sha256=6GRqCu_a9va5HCB1YqNqbshyWKFyAGlnXugrjom-xj8,1213
|
124
|
+
janito/llm/__init__.py,sha256=dpyVH51qVRCw-PDyAFLAxq0zd4jl5MDcuV6Cri0D-dQ,134
|
125
|
+
janito/llm/agent.py,sha256=T0JfeMoOudTWsHwWCcaocrHyq9k0TvkL4_YePlXvZfo,21269
|
126
|
+
janito/llm/auth.py,sha256=8Dl_orUEPhn2X6XjkO2Nr-j1HFT2YDxk1qJl9hSFI88,2286
|
127
|
+
janito/llm/auth_utils.py,sha256=7GH7bIScKhVWJW6ugcDrJLcYRamj5dl_l8N1rrvR4Ws,663
|
128
|
+
janito/llm/driver.py,sha256=stiicPe_MXTuWW4q6MSwK7PCj8UZcA_30pGACu6xYUQ,10039
|
129
|
+
janito/llm/driver_config.py,sha256=OW0ae49EfgKDqaThuDjZBiaN78voNzwiZ6szERMqJos,1406
|
130
|
+
janito/llm/driver_config_builder.py,sha256=BvWGx7vaBR5NyvPY1XNAP3lAgo1uf-T25CSsIo2kkCU,1401
|
131
|
+
janito/llm/driver_input.py,sha256=Zq7IO4KdQPUraeIo6XoOaRy1IdQAyYY15RQw4JU30uA,389
|
132
|
+
janito/llm/message_parts.py,sha256=QY_0kDjaxdoErDgKPRPv1dNkkYJuXIBmHWNLiOEKAH4,1365
|
133
|
+
janito/llm/model.py,sha256=EioBkdgn8hJ0iQaKN-0KbXlsrk3YKmwR9IbvoEbdVTE,1159
|
134
|
+
janito/llm/provider.py,sha256=3FbhQPrWBSEoIdIi-5DWIh0DD_CM570EFf1NcuGyGko,7961
|
135
|
+
janito/plugins/__init__.py,sha256=6tTpUDNJJCRqlGK6RBd40wP_xEowuZZh0FRGeQ5lQQA,400
|
136
|
+
janito/plugins/auto_loader.py,sha256=8DRpPZtAUtP-et4Lzaam93MH4s_sqQXXKI8Ly5-GQf8,2329
|
137
|
+
janito/plugins/auto_loader_fixed.py,sha256=11pL7J0bX3XOOevQa10_oUtNbH-CXkpKhxOl69Bmzro,2335
|
138
|
+
janito/plugins/base.py,sha256=4sQdTOogtDgmLWgA3q1Z8h8s-JySRkk9nSAmg0mHoNM,4285
|
139
|
+
janito/plugins/builtin.py,sha256=rAdOz5cekFfsTfXJd5-2AXW4Nh81JoBMONqj1skiTR8,2985
|
140
|
+
janito/plugins/config.py,sha256=ex5f1XsKPEgIO4DgJCohPzMKAQoUdx1OdSVU0FlSr5o,2331
|
141
|
+
janito/plugins/core_adapter.py,sha256=zOhRMLIsqPb5r-8-pJGucEiWEB1_M5btW6TmsAm-mdE,1877
|
142
|
+
janito/plugins/core_loader.py,sha256=VcIwuKUaR2bvRZIFEiUHaS8YulTOKrYtvO_VhKHRpGI,3576
|
143
|
+
janito/plugins/core_loader_fixed.py,sha256=ZjBOU-aQCMnRXxQfFSI5caUR_IqaI0HdqOJSt-G-Lkc,3909
|
144
|
+
janito/plugins/discovery.py,sha256=JKaoROD4Ci-k8HN1hns130mXq28ZZhQsWfTBSJoOqYc,10106
|
145
|
+
janito/plugins/discovery_core.py,sha256=O5OccNWNyrSXGeeTk5xSG0qbsjNsajclNNCiHljFRpI,1613
|
146
|
+
janito/plugins/manager.py,sha256=OyqGiZubcPgogs2u_rIV2cs_r4HNPwFZH9U25Z9g5cI,8135
|
147
|
+
janito/providers/__init__.py,sha256=EvOFeiqucAY9tgCosJ81p0QA6wQwMT1cR3EeIGrhSQQ,528
|
148
|
+
janito/providers/dashscope.bak.zip,sha256=BwXxRmZreEivvRtmqbr5BR62IFVlNjAf4y6DrF2BVJo,5998
|
149
|
+
janito/providers/registry.py,sha256=Ygwv9eVrTXOKhv0EKxSWQXO5WMHvajWE2Q_Lc3p7dKo,730
|
150
|
+
janito/providers/alibaba/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
151
|
+
janito/providers/alibaba/model_info.py,sha256=YFKRxsTavIN2_wEgjiY8izyU5NiPPqv22094AYfaGtg,3671
|
152
|
+
janito/providers/alibaba/provider.py,sha256=LBQoovAYKaUMB0O9-t3UC6bakI8lUzqHBRHwVaUZnIg,4179
|
153
|
+
janito/providers/anthropic/model_info.py,sha256=m6pBh0Ia8_xC1KZ7ke_4HeHIFw7nWjnYVItnRpkCSWc,1206
|
154
|
+
janito/providers/anthropic/provider.py,sha256=aGynBxCFc7oTyvGNDUkbutJCKurC_9J4AkReC2LTPYo,3023
|
155
|
+
janito/providers/azure_openai/model_info.py,sha256=TMSqEpQROIIYUGAyulYJ5xGhj7CbLoaKL_JXeLbXaG0,689
|
156
|
+
janito/providers/azure_openai/provider.py,sha256=q7DB2J_kaLCTDeE9reS30K9TKY6vr38ZJggT3WPPyTs,5365
|
157
|
+
janito/providers/cerebras/__init__.py,sha256=w7VvVDG-AmW7axvt80TSM_HvAM7MjtH_2yM2wzy-Wok,28
|
158
|
+
janito/providers/cerebras/model_info.py,sha256=kfIYk9ypKyrSSBCtyXZejDGexSkerBqNhaU1_sQQPKw,2176
|
159
|
+
janito/providers/cerebras/provider.py,sha256=2O-L5pNxOVX0MfB2muUoLgj6BO-lNfwlILm1sAV_bpk,5615
|
160
|
+
janito/providers/deepseek/__init__.py,sha256=4sISEpq4bJO29vxFK9cfnO-SRUmKoD7oSdeCvz0hVno,36
|
161
|
+
janito/providers/deepseek/model_info.py,sha256=CzpdcUjDSjx43REcf9TydI5MrFM7quljXfEThZYo2C4,1176
|
162
|
+
janito/providers/deepseek/provider.py,sha256=EmNT4GfkE_zevEalwxy6HmoTb6eD1f3UgroRzYIQ85Y,4154
|
163
|
+
janito/providers/google/__init__.py,sha256=hE3OGJvLEhvNLhIK_XmCGIdrIj8MKlyGgdOLJ4mdess,38
|
164
|
+
janito/providers/google/model_info.py,sha256=AakTmzvWm1GPvFzGAq6-PeE_Dpq7BmAAqmh3L8N5KKo,1126
|
165
|
+
janito/providers/google/provider.py,sha256=NQVG5kovHOc2SDgWjVIwYGMqshvMUAqRAk9iMntQ52k,3606
|
166
|
+
janito/providers/ibm/README.md,sha256=5RLzoS8n0i4yxDrg7qbubbIc5wkqycvhFMn_JRdBY00,2621
|
167
|
+
janito/providers/ibm/__init__.py,sha256=xwB2n-GP1oUsi8LuYKMgziclSSE2yJoFR9WImuUgqNw,26
|
168
|
+
janito/providers/ibm/model_info.py,sha256=ZUz_j0cEiVcT87I0xAMiIWeGgA38fFx77zJ4RO8pchM,2538
|
169
|
+
janito/providers/ibm/provider.py,sha256=PvFseMD527XuBtg9SImIzwyohjnzvE7KgK-ix3Ly8K0,5362
|
170
|
+
janito/providers/mistral/__init__.py,sha256=jFHSvtQro8BnHajv7M0Zf9vssXyTzLxyN2J-7ithZlo,28
|
171
|
+
janito/providers/mistral/model_info.py,sha256=yeCg30ZjJ-HL4QaH7YjADKReINkDMmA3Cj28g7MyMP0,2268
|
172
|
+
janito/providers/mistral/provider.py,sha256=rBFrwT40vnPi-whNCMI8o-OurIdCRxm3tkgPXBDB3Gk,4775
|
173
|
+
janito/providers/moonshot/__init__.py,sha256=QBirGjijujOZuJ1UZ8c7MflSy5EHjWnuBmAr3AupbH0,29
|
174
|
+
janito/providers/moonshot/model_info.py,sha256=CcDtx_-eb2urjCtOi0hZLfBJOeCm7oNV0u8SIiUz9Q0,1030
|
175
|
+
janito/providers/moonshot/provider.py,sha256=7ZWeMdOp0pnu76631_flD2MCPNK8NPkGGRdmqOhEAU4,3855
|
176
|
+
janito/providers/openai/__init__.py,sha256=f0m16-sIqScjL9Mp4A0CQBZx6H3PTEy0cnE08jeaB5U,38
|
177
|
+
janito/providers/openai/model_info.py,sha256=VTkq3xcx2vk0tXlFVHQxKeFzl-DL1T1J2elVOEwCdHI,4265
|
178
|
+
janito/providers/openai/provider.py,sha256=PPr_qmSe5GyysnZCxhjeUVhE2LWKjKOSRel-8aaxq_U,4761
|
179
|
+
janito/providers/openai/schema_generator.py,sha256=hTqeLcPTR8jeKn5DUUpo7b-EZ-V-g1WwXiX7MbHnFzE,2234
|
180
|
+
janito/providers/zai/__init__.py,sha256=qtIr9_QBFaXG8xB6cRDGhS7se6ir11CWseI9azLMRBo,24
|
181
|
+
janito/providers/zai/model_info.py,sha256=ldwD8enpxXv1G-YsDw4YJn31YsVueQ4vj5HgoYvnPxo,1183
|
182
|
+
janito/providers/zai/provider.py,sha256=aKqDTdcwWk-FT70wTbTrTzlWx2NwRWkLoB64upiliU8,5066
|
183
|
+
janito/providers/zai/schema_generator.py,sha256=0kuxbrWfNKGO9fzxFStqOpTT09ldyI6vYxeDxFN4ku8,4091
|
184
|
+
janito/regions/__init__.py,sha256=DVUiWPXGKX73tj3PJcLJXdQTwhiYWlcWPNpPcNNeYhk,484
|
185
|
+
janito/regions/cli.py,sha256=dFiHj1XxqhegqK1kFz-08QpYgiYniEi_ZQiDqjyUaJs,3612
|
186
|
+
janito/regions/geo_utils.py,sha256=nLJ2x0tx1xMNI0_cMEiji-X8denynsaPYmXR9gGg8uk,5908
|
187
|
+
janito/regions/provider_regions.py,sha256=QJdbsdgjg-WcTRqPLGtm3pHJAm2o0-Y9MgE_vNzENEk,4619
|
188
|
+
janito/tools/DOCSTRING_STANDARD.txt,sha256=VLPwNgjxRVD_xZSSVvUZ4H-4bBwM-VKh_RyfzYQsYSs,1735
|
189
|
+
janito/tools/README.md,sha256=5HkLpF5k4PENJER7SlDPRXj0yo9mpHvAHW4uuzhq4ak,115
|
190
|
+
janito/tools/__init__.py,sha256=W1B39PztC2UF7PS2WyLH6el32MFOETMlN1-LurOROCg,1171
|
191
|
+
janito/tools/base.py,sha256=R38A9xWYh3JRYZMDSom2d1taNDy9J7HpLbZo9X2wH_o,316
|
192
|
+
janito/tools/disabled_tools.py,sha256=Tx__16wtMWZ9z34cYLdH1gukwot5MCL-9kLjd5MPX6Y,2110
|
193
|
+
janito/tools/function_adapter.py,sha256=A_-5pA5Y3v0TAYMA-vq3A-Cawg75kH5XWcUEkNHSOoI,2267
|
194
|
+
janito/tools/inspect_registry.py,sha256=Jo7PrMPRKLuR-j_mBAk9PBcTzeJf1eQrS1ChGofgQk0,538
|
195
|
+
janito/tools/loop_protection.py,sha256=WQ2Cqt459vXvrO0T1EqkEHynHlRkPzfaC83RSmXzjkM,4718
|
196
|
+
janito/tools/loop_protection_decorator.py,sha256=R1j2ouscKbVcDm2wlxRZ6zQuKExgj633ijeDq4j0oO0,6457
|
197
|
+
janito/tools/outline_file.bak.zip,sha256=EeI2cBXCwTdWVgJDNiroxKeYlkjwo6NLKeXz3J-2iZI,15607
|
198
|
+
janito/tools/path_security.py,sha256=40b0hV0X3449Dht93A04Q3c9AYSsBQsBFy2BjzM83lA,8214
|
199
|
+
janito/tools/path_utils.py,sha256=Rg5GE4kiu7rky6I2KTtivW6wPXzc9Qmq0_lOjwkPYlI,832
|
200
|
+
janito/tools/permissions.py,sha256=_viTVXyetZC01HjI2s5c3klIJ8-RkWB1ShdOaV__loY,1508
|
201
|
+
janito/tools/permissions_parse.py,sha256=LHadt0bWglm9Q2BbbVVbKePg4oa7QLeRQ-ChQZsE_dI,384
|
202
|
+
janito/tools/tool_base.py,sha256=TSrXDknqIqOtY3xzuvtsxZ3qwbvmGzUruBiqVzzICfc,3689
|
203
|
+
janito/tools/tool_events.py,sha256=czRtC2TYakAySBZvfHS_Q6_NY_7_krxzAzAL1ggRFWA,1527
|
204
|
+
janito/tools/tool_run_exception.py,sha256=43yWgTaGBGEtRteo6FvTrane6fEVGo9FU1uOdjMRWJE,525
|
205
|
+
janito/tools/tool_use_tracker.py,sha256=IaEmA22D6RuL1xMUCScOMGv0crLPwEJVGmj49cydIaM,2662
|
206
|
+
janito/tools/tool_utils.py,sha256=alPm9DvtXSw_zPRKvP5GjbebPRf_nfvmWk2TNlL5Cws,1219
|
207
|
+
janito/tools/tools_adapter.py,sha256=F1Wkji222dY53HMaZWf3vqVas1Bimm3UXERKvxF54Ew,21687
|
208
|
+
janito/tools/tools_schema.py,sha256=rGrKrmpPNR07VXHAJ_haGBRRO-YGLOF51BlYRep9AAQ,4415
|
209
|
+
janito/tools/url_whitelist.py,sha256=0CPLkHTp5HgnwgjxwgXnJmwPeZQ30q4j3YjW59hiUUE,4295
|
210
|
+
janito/tools/adapters/__init__.py,sha256=XKixOKtUJs1R-rGwGDXSLVLg5-Kp090gvWbsseWT4LI,92
|
211
|
+
janito/tools/adapters/local/__init__.py,sha256=I6LtLnDTyApZrSlKcihSQqZv3gADVX781Mcj46LH7ac,2362
|
212
|
+
janito/tools/adapters/local/adapter.py,sha256=u4nLHTaYdwZXMi1J8lsKvlG6rOmdq9xjey_3zeyCG4k,8707
|
213
|
+
janito/tools/adapters/local/ask_user.py,sha256=-shjMRKrRe7HNHM2w_6YAl7eEgl8QXaIV6LKrUDEBxU,4060
|
214
|
+
janito/tools/adapters/local/copy_file.py,sha256=SBJm19Ipe5dqRE1Mxl6JSrn4bNmfObVnDr5b1mcEu6c,3682
|
215
|
+
janito/tools/adapters/local/create_directory.py,sha256=LxwqQEsnOrEphCIoaMRRx9P9bu0MzidP3Fc5q6letxc,2584
|
216
|
+
janito/tools/adapters/local/create_file.py,sha256=fLTVnMpDnHzzIVK3nS0DtawBT-I18Is-qa0Hg8y6TXY,6385
|
217
|
+
janito/tools/adapters/local/delete_text_in_file.py,sha256=uEeedRxXAR7_CqUc_qhbEdM0OzRi_pgnP-iDjs2Zvjk,5087
|
218
|
+
janito/tools/adapters/local/fetch_url.py,sha256=QjoOZj06PjsU8uFjJ6O8Fy-WUvS4GhSaHAJQx2rAzoE,18212
|
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.8.0.dist-info/licenses/LICENSE,sha256=dXV4fOF2ZErugtN8l_Nrj5tsRTYgtjE3cgiya0UfBio,11356
|
260
|
+
janito-3.8.0.dist-info/METADATA,sha256=KojxYonxnLshxFtvWLAInVYyzmO2WpRhmgTu6dt8jFM,2312
|
261
|
+
janito-3.8.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
262
|
+
janito-3.8.0.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
|
263
|
+
janito-3.8.0.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
|
264
|
+
janito-3.8.0.dist-info/RECORD,,
|
@@ -1,212 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
CLI Command: Check all registered tools for signature validation and availability
|
3
|
-
"""
|
4
|
-
|
5
|
-
import inspect
|
6
|
-
import sys
|
7
|
-
from typing import Dict, List, Tuple, Any
|
8
|
-
|
9
|
-
|
10
|
-
def _validate_tool_signature(tool_instance) -> Tuple[bool, List[str]]:
|
11
|
-
"""Validate the signature of a tool's run method."""
|
12
|
-
errors = []
|
13
|
-
|
14
|
-
if not hasattr(tool_instance, "run"):
|
15
|
-
errors.append("Missing 'run' method")
|
16
|
-
return False, errors
|
17
|
-
|
18
|
-
try:
|
19
|
-
sig = inspect.signature(tool_instance.run)
|
20
|
-
except ValueError as e:
|
21
|
-
errors.append(f"Invalid signature: {e}")
|
22
|
-
return False, errors
|
23
|
-
|
24
|
-
# Basic signature validation - just check if it's callable
|
25
|
-
if not callable(getattr(tool_instance, "run")):
|
26
|
-
errors.append("'run' method is not callable")
|
27
|
-
|
28
|
-
return len(errors) == 0, errors
|
29
|
-
|
30
|
-
|
31
|
-
def _check_tool_availability(tool_instance) -> Tuple[bool, List[str]]:
|
32
|
-
"""Check if a tool is available for use."""
|
33
|
-
errors = []
|
34
|
-
|
35
|
-
# Check if tool has required attributes
|
36
|
-
required_attrs = ["tool_name"]
|
37
|
-
for attr in required_attrs:
|
38
|
-
if not hasattr(tool_instance, attr):
|
39
|
-
errors.append(f"Missing required attribute: {attr}")
|
40
|
-
|
41
|
-
# Check description (optional for now)
|
42
|
-
if not hasattr(tool_instance, "description"):
|
43
|
-
pass # Allow missing description
|
44
|
-
|
45
|
-
# Check permissions
|
46
|
-
if not hasattr(tool_instance, "permissions"):
|
47
|
-
# Function-based tools use permissions from function decorators
|
48
|
-
pass # Allow missing permissions for function-based tools
|
49
|
-
else:
|
50
|
-
perms = tool_instance.permissions
|
51
|
-
if (
|
52
|
-
not hasattr(perms, "read")
|
53
|
-
or not hasattr(perms, "write")
|
54
|
-
or not hasattr(perms, "execute")
|
55
|
-
):
|
56
|
-
errors.append("Invalid permissions structure")
|
57
|
-
|
58
|
-
return len(errors) == 0, errors
|
59
|
-
|
60
|
-
|
61
|
-
def _get_tool_status_summary(
|
62
|
-
tools: List[Any], disabled_tools: List[str]
|
63
|
-
) -> Dict[str, Any]:
|
64
|
-
"""Get a comprehensive status summary for all tools."""
|
65
|
-
summary = {
|
66
|
-
"total": len(tools),
|
67
|
-
"available": 0,
|
68
|
-
"disabled": 0,
|
69
|
-
"invalid": 0,
|
70
|
-
"details": [],
|
71
|
-
}
|
72
|
-
|
73
|
-
for tool in tools:
|
74
|
-
tool_name = getattr(tool, "tool_name", str(tool))
|
75
|
-
|
76
|
-
# Check if disabled
|
77
|
-
is_disabled = tool_name in disabled_tools
|
78
|
-
|
79
|
-
# Validate signature and availability
|
80
|
-
sig_valid, sig_errors = _validate_tool_signature(tool)
|
81
|
-
avail_valid, avail_errors = _check_tool_availability(tool)
|
82
|
-
|
83
|
-
status = {
|
84
|
-
"name": tool_name,
|
85
|
-
"disabled": is_disabled,
|
86
|
-
"signature_valid": sig_valid,
|
87
|
-
"available": avail_valid,
|
88
|
-
"signature_errors": sig_errors,
|
89
|
-
"availability_errors": avail_errors,
|
90
|
-
}
|
91
|
-
|
92
|
-
summary["details"].append(status)
|
93
|
-
|
94
|
-
if is_disabled:
|
95
|
-
summary["disabled"] += 1
|
96
|
-
elif not sig_valid or not avail_valid:
|
97
|
-
summary["invalid"] += 1
|
98
|
-
else:
|
99
|
-
summary["available"] += 1
|
100
|
-
|
101
|
-
return summary
|
102
|
-
|
103
|
-
|
104
|
-
def _print_check_results(console, summary: Dict[str, Any], verbose: bool = False):
|
105
|
-
"""Print the tool check results in a formatted way."""
|
106
|
-
from rich.table import Table
|
107
|
-
from rich.panel import Panel
|
108
|
-
from rich.text import Text
|
109
|
-
|
110
|
-
# Overall summary
|
111
|
-
summary_text = Text()
|
112
|
-
summary_text.append(f"Total tools: {summary['total']}", style="cyan")
|
113
|
-
summary_text.append(" | ")
|
114
|
-
summary_text.append(f"Available: {summary['available']}", style="green")
|
115
|
-
summary_text.append(" | ")
|
116
|
-
summary_text.append(f"Disabled: {summary['disabled']}", style="yellow")
|
117
|
-
summary_text.append(" | ")
|
118
|
-
summary_text.append(f"Invalid: {summary['invalid']}", style="red")
|
119
|
-
|
120
|
-
console.print(Panel(summary_text, title="Tool Check Summary", style="bold"))
|
121
|
-
|
122
|
-
# Always show the table for check-tools
|
123
|
-
table = Table(title="Tool Details", show_header=True, header_style="bold")
|
124
|
-
table.add_column("Tool", style="cyan", no_wrap=True)
|
125
|
-
table.add_column("Status", style="green")
|
126
|
-
table.add_column("Issues", style="red")
|
127
|
-
|
128
|
-
for detail in summary["details"]:
|
129
|
-
name = detail["name"]
|
130
|
-
|
131
|
-
if detail["disabled"]:
|
132
|
-
status = "[yellow]Disabled[/yellow]"
|
133
|
-
issues = "-"
|
134
|
-
elif not detail["available"] or not detail["signature_valid"]:
|
135
|
-
status = "[red]Invalid[/red]"
|
136
|
-
all_issues = detail["signature_errors"] + detail["availability_errors"]
|
137
|
-
issues = "\n".join(all_issues)
|
138
|
-
else:
|
139
|
-
status = "[green]Available[/green]"
|
140
|
-
issues = "-"
|
141
|
-
|
142
|
-
table.add_row(name, status, issues)
|
143
|
-
|
144
|
-
console.print(table)
|
145
|
-
|
146
|
-
|
147
|
-
def handle_check_tools(args=None):
|
148
|
-
"""Handle the --check-tools CLI command."""
|
149
|
-
from janito.tools.adapters.local.adapter import LocalToolsAdapter
|
150
|
-
import janito.tools # Ensure all tools are registered
|
151
|
-
|
152
|
-
# Load disabled tools from config
|
153
|
-
from janito.tools.disabled_tools import DisabledToolsState
|
154
|
-
from janito.config import config
|
155
|
-
|
156
|
-
disabled_str = config.get("disabled_tools", "")
|
157
|
-
if disabled_str:
|
158
|
-
DisabledToolsState.set_disabled_tools(disabled_str)
|
159
|
-
disabled_tools = DisabledToolsState.get_disabled_tools()
|
160
|
-
|
161
|
-
# Initialize tools properly using the same approach as list_tools.py
|
162
|
-
from janito.tools.adapters.local.adapter import LocalToolsAdapter
|
163
|
-
from janito.tools.tool_base import ToolPermissions
|
164
|
-
import janito.tools # Ensure all tools are registered
|
165
|
-
|
166
|
-
read = getattr(args, "read", False) if args else False
|
167
|
-
write = getattr(args, "write", False) if args else False
|
168
|
-
execute = getattr(args, "exec", False) if args else False
|
169
|
-
if not (read or write or execute):
|
170
|
-
read = write = execute = True
|
171
|
-
from janito.tools.permissions import set_global_allowed_permissions
|
172
|
-
|
173
|
-
set_global_allowed_permissions(
|
174
|
-
ToolPermissions(read=read, write=write, execute=execute)
|
175
|
-
)
|
176
|
-
|
177
|
-
# Load disabled tools from config
|
178
|
-
from janito.tools.disabled_tools import DisabledToolsState
|
179
|
-
from janito.config import config
|
180
|
-
|
181
|
-
disabled_str = config.get("disabled_tools", "")
|
182
|
-
if disabled_str:
|
183
|
-
DisabledToolsState.set_disabled_tools(disabled_str)
|
184
|
-
disabled_tools = DisabledToolsState.get_disabled_tools()
|
185
|
-
|
186
|
-
# Initialize tools using the same method as list_tools.py
|
187
|
-
from janito.tools.initialize import initialize_tools
|
188
|
-
|
189
|
-
registry = initialize_tools()
|
190
|
-
|
191
|
-
# Get actual tool instances
|
192
|
-
tool_instances = []
|
193
|
-
for name, tool_info in registry._tools.items():
|
194
|
-
if "instance" in tool_info:
|
195
|
-
tool_instances.append(tool_info["instance"])
|
196
|
-
|
197
|
-
if not tool_instances:
|
198
|
-
print("No tools registered.")
|
199
|
-
return
|
200
|
-
|
201
|
-
from rich.console import Console
|
202
|
-
|
203
|
-
console = Console()
|
204
|
-
|
205
|
-
verbose = getattr(args, "verbose", False) if args else False
|
206
|
-
|
207
|
-
summary = _get_tool_status_summary(tool_instances, disabled_tools)
|
208
|
-
_print_check_results(console, summary, verbose=verbose)
|
209
|
-
|
210
|
-
# Exit with error code if there are invalid tools
|
211
|
-
if summary["invalid"] > 0:
|
212
|
-
sys.exit(1)
|
janito/data/blocked.txt
DELETED
@@ -1,96 +0,0 @@
|
|
1
|
-
# Sites known to be unexplorable due to authentication/paywall restrictions
|
2
|
-
# This list helps identify URLs that should be skipped during automated exploration
|
3
|
-
|
4
|
-
# News sites with paywalls
|
5
|
-
https://www.reuters.com
|
6
|
-
https://www.wsj.com
|
7
|
-
https://www.ft.com
|
8
|
-
https://www.thetimes.co.uk
|
9
|
-
https://www.nytimes.com
|
10
|
-
https://www.washingtonpost.com
|
11
|
-
https://www.economist.com
|
12
|
-
https://www.bloomberg.com
|
13
|
-
https://www.thestreet.com
|
14
|
-
https://www.marketwatch.com
|
15
|
-
|
16
|
-
# Academic/research databases
|
17
|
-
https://www.jstor.org
|
18
|
-
https://academic.oup.com
|
19
|
-
https://www.sciencedirect.com
|
20
|
-
https://ieeexplore.ieee.org
|
21
|
-
https://dl.acm.org
|
22
|
-
https://pubs.acs.org
|
23
|
-
https://www.nature.com
|
24
|
-
https://www.science.org
|
25
|
-
https://link.springer.com
|
26
|
-
https://onlinelibrary.wiley.com
|
27
|
-
|
28
|
-
# Social media platforms (require login)
|
29
|
-
https://www.facebook.com
|
30
|
-
https://www.twitter.com
|
31
|
-
https://www.instagram.com
|
32
|
-
https://www.linkedin.com
|
33
|
-
https://www.tiktok.com
|
34
|
-
https://www.snapchat.com
|
35
|
-
https://www.threads.net
|
36
|
-
|
37
|
-
# Streaming services
|
38
|
-
https://www.netflix.com
|
39
|
-
https://www.hulu.com
|
40
|
-
https://www.disneyplus.com
|
41
|
-
https://www.primevideo.com
|
42
|
-
https://www.hbomax.com
|
43
|
-
https://www.spotify.com
|
44
|
-
https://music.apple.com
|
45
|
-
|
46
|
-
# Cloud services requiring authentication
|
47
|
-
https://drive.google.com
|
48
|
-
https://www.dropbox.com
|
49
|
-
https://onedrive.live.com
|
50
|
-
https://www.icloud.com
|
51
|
-
https://github.com (private repos)
|
52
|
-
https://gitlab.com (private repos)
|
53
|
-
|
54
|
-
# Financial services
|
55
|
-
https://www.paypal.com
|
56
|
-
https://www.venmo.com
|
57
|
-
https://www.cash.app
|
58
|
-
https://www.zellepay.com
|
59
|
-
https://www.robinhood.com
|
60
|
-
https://www.coinbase.com
|
61
|
-
|
62
|
-
# Government services requiring login
|
63
|
-
https://www.irs.gov
|
64
|
-
https://www.ssa.gov
|
65
|
-
https://www.medicare.gov
|
66
|
-
https://www.dmv.ca.gov
|
67
|
-
https://www.gov.uk
|
68
|
-
|
69
|
-
# Shopping sites requiring accounts
|
70
|
-
https://www.amazon.com (account areas)
|
71
|
-
https://www.ebay.com (account areas)
|
72
|
-
https://www.etsy.com (account areas)
|
73
|
-
|
74
|
-
# Professional tools
|
75
|
-
https://slack.com
|
76
|
-
https://zoom.us
|
77
|
-
https://teams.microsoft.com
|
78
|
-
https://www.notion.so
|
79
|
-
https://trello.com
|
80
|
-
https://asana.com
|
81
|
-
|
82
|
-
# Dating apps
|
83
|
-
https://tinder.com
|
84
|
-
https://www.bumble.com
|
85
|
-
https://www.okcupid.com
|
86
|
-
https://match.com
|
87
|
-
https://eharmony.com
|
88
|
-
|
89
|
-
# Gaming platforms
|
90
|
-
https://www.steamcommunity.com
|
91
|
-
https://www.xbox.com
|
92
|
-
https://www.playstation.com
|
93
|
-
https://www.nintendo.com
|
94
|
-
|
95
|
-
# Note: These URLs are generally inaccessible without proper authentication
|
96
|
-
# Some may allow limited public access, but core functionality requires login
|
@@ -1,63 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Global cancellation manager for LLM requests.
|
3
|
-
Provides a centralized way to cancel ongoing requests.
|
4
|
-
"""
|
5
|
-
|
6
|
-
import threading
|
7
|
-
from typing import Optional
|
8
|
-
|
9
|
-
|
10
|
-
class CancellationManager:
|
11
|
-
"""Manages cancellation of LLM requests across the application."""
|
12
|
-
|
13
|
-
def __init__(self):
|
14
|
-
self._current_cancel_event: Optional[threading.Event] = None
|
15
|
-
self._lock = threading.Lock()
|
16
|
-
self._keyboard_cancellation = None
|
17
|
-
|
18
|
-
def start_new_request(self) -> threading.Event:
|
19
|
-
"""Start a new request and return its cancellation event."""
|
20
|
-
with self._lock:
|
21
|
-
# Create new cancellation event for this request
|
22
|
-
self._current_cancel_event = threading.Event()
|
23
|
-
|
24
|
-
# Start keyboard monitoring
|
25
|
-
from janito.llm.enter_cancellation import get_enter_cancellation
|
26
|
-
|
27
|
-
self._keyboard_cancellation = get_enter_cancellation()
|
28
|
-
self._keyboard_cancellation.start_monitoring(self._current_cancel_event)
|
29
|
-
|
30
|
-
return self._current_cancel_event
|
31
|
-
|
32
|
-
def cancel_current_request(self) -> bool:
|
33
|
-
"""Cancel the current request if one is active."""
|
34
|
-
with self._lock:
|
35
|
-
if self._current_cancel_event is not None:
|
36
|
-
self._current_cancel_event.set()
|
37
|
-
return True
|
38
|
-
return False
|
39
|
-
|
40
|
-
def get_current_cancel_event(self) -> Optional[threading.Event]:
|
41
|
-
"""Get the current cancellation event."""
|
42
|
-
with self._lock:
|
43
|
-
return self._current_cancel_event
|
44
|
-
|
45
|
-
def clear_current_request(self):
|
46
|
-
"""Clear the current request cancellation event."""
|
47
|
-
with self._lock:
|
48
|
-
if self._keyboard_cancellation:
|
49
|
-
self._keyboard_cancellation.stop_monitoring()
|
50
|
-
self._keyboard_cancellation = None
|
51
|
-
self._current_cancel_event = None
|
52
|
-
|
53
|
-
|
54
|
-
# Global cancellation manager instance
|
55
|
-
_global_manager = None
|
56
|
-
|
57
|
-
|
58
|
-
def get_cancellation_manager() -> CancellationManager:
|
59
|
-
"""Get the global cancellation manager instance."""
|
60
|
-
global _global_manager
|
61
|
-
if _global_manager is None:
|
62
|
-
_global_manager = CancellationManager()
|
63
|
-
return _global_manager
|