janito 3.12.1__py3-none-any.whl → 3.12.3__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/agent/setup_agent.py +378 -377
- janito/cli/chat_mode/session.py +505 -505
- janito/cli/cli_commands/list_profiles.py +104 -107
- janito/cli/cli_commands/show_system_prompt.py +166 -166
- janito/cli/core/runner.py +250 -266
- janito/cli/main_cli.py +520 -519
- janito/cli/single_shot_mode/handler.py +167 -167
- janito/llm/__init__.py +6 -5
- janito/llm/driver.py +290 -254
- janito/llm/response_cache.py +57 -0
- janito/plugins/builtin.py +64 -88
- janito/plugins/tools/local/__init__.py +82 -80
- janito/plugins/tools/local/markdown_view.py +94 -0
- janito/plugins/tools/local/read_files.py +1 -1
- janito/plugins/tools/local/replace_text_in_file.py +1 -1
- janito/plugins/tools/local/search_text/core.py +2 -2
- janito/plugins/tools/local/show_image.py +119 -74
- janito/plugins/tools/local/show_image_grid.py +134 -76
- janito/plugins/tools/local/view_file.py +3 -3
- janito/providers/alibaba/model_info.py +136 -105
- janito/providers/alibaba/provider.py +104 -104
- {janito-3.12.1.dist-info → janito-3.12.3.dist-info}/METADATA +1 -1
- {janito-3.12.1.dist-info → janito-3.12.3.dist-info}/RECORD +27 -25
- {janito-3.12.1.dist-info → janito-3.12.3.dist-info}/WHEEL +0 -0
- {janito-3.12.1.dist-info → janito-3.12.3.dist-info}/entry_points.txt +0 -0
- {janito-3.12.1.dist-info → janito-3.12.3.dist-info}/licenses/LICENSE +0 -0
- {janito-3.12.1.dist-info → janito-3.12.3.dist-info}/top_level.txt +0 -0
@@ -1,104 +1,104 @@
|
|
1
|
-
from janito.llm.provider import LLMProvider
|
2
|
-
from janito.llm.model import LLMModelInfo
|
3
|
-
from janito.llm.auth import LLMAuthManager
|
4
|
-
from janito.llm.driver_config import LLMDriverConfig
|
5
|
-
from janito.drivers.openai.driver import OpenAIModelDriver
|
6
|
-
from janito.tools import get_local_tools_adapter
|
7
|
-
from janito.providers.registry import LLMProviderRegistry
|
8
|
-
from .model_info import MODEL_SPECS
|
9
|
-
from queue import Queue
|
10
|
-
|
11
|
-
available = OpenAIModelDriver.available
|
12
|
-
unavailable_reason = OpenAIModelDriver.unavailable_reason
|
13
|
-
|
14
|
-
|
15
|
-
class AlibabaProvider(LLMProvider):
|
16
|
-
name = "alibaba"
|
17
|
-
NAME = "alibaba"
|
18
|
-
MAINTAINER = "João Pinto <janito@ikignosis.org>"
|
19
|
-
MODEL_SPECS = MODEL_SPECS
|
20
|
-
DEFAULT_MODEL = "qwen3-
|
21
|
-
|
22
|
-
def __init__(
|
23
|
-
self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None
|
24
|
-
):
|
25
|
-
# Always set a tools adapter so that even if the driver is unavailable,
|
26
|
-
# generic code paths that expect provider.execute_tool() continue to work.
|
27
|
-
self._tools_adapter = get_local_tools_adapter()
|
28
|
-
|
29
|
-
# Always initialize _driver_config to avoid AttributeError
|
30
|
-
self._driver_config = config or LLMDriverConfig(model=None)
|
31
|
-
|
32
|
-
if not self.available:
|
33
|
-
self._driver = None
|
34
|
-
else:
|
35
|
-
self.auth_manager = auth_manager or LLMAuthManager()
|
36
|
-
self._api_key = self.auth_manager.get_credentials(type(self).NAME)
|
37
|
-
if not self._api_key:
|
38
|
-
from janito.llm.auth_utils import handle_missing_api_key
|
39
|
-
|
40
|
-
handle_missing_api_key(self.name, "ALIBABA_API_KEY")
|
41
|
-
|
42
|
-
if not self._driver_config.model:
|
43
|
-
self._driver_config.model = self.DEFAULT_MODEL
|
44
|
-
if not self._driver_config.api_key:
|
45
|
-
self._driver_config.api_key = self._api_key
|
46
|
-
# Set Alibaba international endpoint as default base_url if not provided
|
47
|
-
if not getattr(self._driver_config, "base_url", None):
|
48
|
-
self._driver_config.base_url = (
|
49
|
-
"https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
|
50
|
-
)
|
51
|
-
self.fill_missing_device_info(self._driver_config)
|
52
|
-
self._driver = None # to be provided by factory/agent
|
53
|
-
|
54
|
-
@property
|
55
|
-
def driver(self) -> OpenAIModelDriver:
|
56
|
-
if not self.available:
|
57
|
-
raise ImportError(f"AlibabaProvider unavailable: {self.unavailable_reason}")
|
58
|
-
return self._driver
|
59
|
-
|
60
|
-
@property
|
61
|
-
def available(self):
|
62
|
-
return available
|
63
|
-
|
64
|
-
@property
|
65
|
-
def unavailable_reason(self):
|
66
|
-
return unavailable_reason
|
67
|
-
|
68
|
-
def create_driver(self):
|
69
|
-
"""
|
70
|
-
Creates and returns a new OpenAIModelDriver instance with input/output queues.
|
71
|
-
"""
|
72
|
-
driver = OpenAIModelDriver(
|
73
|
-
tools_adapter=self._tools_adapter, provider_name=self.name
|
74
|
-
)
|
75
|
-
driver.config = self.driver_config
|
76
|
-
# NOTE: The caller is responsible for calling driver.start() if background processing is needed.
|
77
|
-
return driver
|
78
|
-
|
79
|
-
def create_agent(self, tools_adapter=None, agent_name: str = None, **kwargs):
|
80
|
-
from janito.llm.agent import LLMAgent
|
81
|
-
|
82
|
-
# Always create a new driver with the passed-in tools_adapter
|
83
|
-
if tools_adapter is None:
|
84
|
-
tools_adapter = get_local_tools_adapter()
|
85
|
-
# Should use new-style driver construction via queues/factory (handled elsewhere)
|
86
|
-
raise NotImplementedError(
|
87
|
-
"create_agent must be constructed via new factory using input/output queues and config."
|
88
|
-
)
|
89
|
-
|
90
|
-
@property
|
91
|
-
def model_name(self):
|
92
|
-
return self._driver_config.model
|
93
|
-
|
94
|
-
@property
|
95
|
-
def driver_config(self):
|
96
|
-
"""Public, read-only access to the provider's LLMDriverConfig object."""
|
97
|
-
return self._driver_config
|
98
|
-
|
99
|
-
def execute_tool(self, tool_name: str, event_bus, *args, **kwargs):
|
100
|
-
self._tools_adapter.event_bus = event_bus
|
101
|
-
return self._tools_adapter.execute_by_name(tool_name, *args, **kwargs)
|
102
|
-
|
103
|
-
|
104
|
-
LLMProviderRegistry.register(AlibabaProvider.NAME, AlibabaProvider)
|
1
|
+
from janito.llm.provider import LLMProvider
|
2
|
+
from janito.llm.model import LLMModelInfo
|
3
|
+
from janito.llm.auth import LLMAuthManager
|
4
|
+
from janito.llm.driver_config import LLMDriverConfig
|
5
|
+
from janito.drivers.openai.driver import OpenAIModelDriver
|
6
|
+
from janito.tools import get_local_tools_adapter
|
7
|
+
from janito.providers.registry import LLMProviderRegistry
|
8
|
+
from .model_info import MODEL_SPECS
|
9
|
+
from queue import Queue
|
10
|
+
|
11
|
+
available = OpenAIModelDriver.available
|
12
|
+
unavailable_reason = OpenAIModelDriver.unavailable_reason
|
13
|
+
|
14
|
+
|
15
|
+
class AlibabaProvider(LLMProvider):
|
16
|
+
name = "alibaba"
|
17
|
+
NAME = "alibaba"
|
18
|
+
MAINTAINER = "João Pinto <janito@ikignosis.org>"
|
19
|
+
MODEL_SPECS = MODEL_SPECS
|
20
|
+
DEFAULT_MODEL = "qwen3-next-80b-a3b-instruct" # 256k context, latest Qwen3 Next model
|
21
|
+
|
22
|
+
def __init__(
|
23
|
+
self, auth_manager: LLMAuthManager = None, config: LLMDriverConfig = None
|
24
|
+
):
|
25
|
+
# Always set a tools adapter so that even if the driver is unavailable,
|
26
|
+
# generic code paths that expect provider.execute_tool() continue to work.
|
27
|
+
self._tools_adapter = get_local_tools_adapter()
|
28
|
+
|
29
|
+
# Always initialize _driver_config to avoid AttributeError
|
30
|
+
self._driver_config = config or LLMDriverConfig(model=None)
|
31
|
+
|
32
|
+
if not self.available:
|
33
|
+
self._driver = None
|
34
|
+
else:
|
35
|
+
self.auth_manager = auth_manager or LLMAuthManager()
|
36
|
+
self._api_key = self.auth_manager.get_credentials(type(self).NAME)
|
37
|
+
if not self._api_key:
|
38
|
+
from janito.llm.auth_utils import handle_missing_api_key
|
39
|
+
|
40
|
+
handle_missing_api_key(self.name, "ALIBABA_API_KEY")
|
41
|
+
|
42
|
+
if not self._driver_config.model:
|
43
|
+
self._driver_config.model = self.DEFAULT_MODEL
|
44
|
+
if not self._driver_config.api_key:
|
45
|
+
self._driver_config.api_key = self._api_key
|
46
|
+
# Set Alibaba international endpoint as default base_url if not provided
|
47
|
+
if not getattr(self._driver_config, "base_url", None):
|
48
|
+
self._driver_config.base_url = (
|
49
|
+
"https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
|
50
|
+
)
|
51
|
+
self.fill_missing_device_info(self._driver_config)
|
52
|
+
self._driver = None # to be provided by factory/agent
|
53
|
+
|
54
|
+
@property
|
55
|
+
def driver(self) -> OpenAIModelDriver:
|
56
|
+
if not self.available:
|
57
|
+
raise ImportError(f"AlibabaProvider unavailable: {self.unavailable_reason}")
|
58
|
+
return self._driver
|
59
|
+
|
60
|
+
@property
|
61
|
+
def available(self):
|
62
|
+
return available
|
63
|
+
|
64
|
+
@property
|
65
|
+
def unavailable_reason(self):
|
66
|
+
return unavailable_reason
|
67
|
+
|
68
|
+
def create_driver(self):
|
69
|
+
"""
|
70
|
+
Creates and returns a new OpenAIModelDriver instance with input/output queues.
|
71
|
+
"""
|
72
|
+
driver = OpenAIModelDriver(
|
73
|
+
tools_adapter=self._tools_adapter, provider_name=self.name
|
74
|
+
)
|
75
|
+
driver.config = self.driver_config
|
76
|
+
# NOTE: The caller is responsible for calling driver.start() if background processing is needed.
|
77
|
+
return driver
|
78
|
+
|
79
|
+
def create_agent(self, tools_adapter=None, agent_name: str = None, **kwargs):
|
80
|
+
from janito.llm.agent import LLMAgent
|
81
|
+
|
82
|
+
# Always create a new driver with the passed-in tools_adapter
|
83
|
+
if tools_adapter is None:
|
84
|
+
tools_adapter = get_local_tools_adapter()
|
85
|
+
# Should use new-style driver construction via queues/factory (handled elsewhere)
|
86
|
+
raise NotImplementedError(
|
87
|
+
"create_agent must be constructed via new factory using input/output queues and config."
|
88
|
+
)
|
89
|
+
|
90
|
+
@property
|
91
|
+
def model_name(self):
|
92
|
+
return self._driver_config.model
|
93
|
+
|
94
|
+
@property
|
95
|
+
def driver_config(self):
|
96
|
+
"""Public, read-only access to the provider's LLMDriverConfig object."""
|
97
|
+
return self._driver_config
|
98
|
+
|
99
|
+
def execute_tool(self, tool_name: str, event_bus, *args, **kwargs):
|
100
|
+
self._tools_adapter.event_bus = event_bus
|
101
|
+
return self._tools_adapter.execute_by_name(tool_name, *args, **kwargs)
|
102
|
+
|
103
|
+
|
104
|
+
LLMProviderRegistry.register(AlibabaProvider.NAME, AlibabaProvider)
|
@@ -21,7 +21,7 @@ janito/provider_registry.py,sha256=IRNB35Cjn4PSXMWOxKBjPg0DfUEOoL4vh63OSPxhMtk,6
|
|
21
21
|
janito/report_events.py,sha256=q4OR_jTZNfcqaQF_fzTjgqo6_VlUIxSGWfhpT4nJWcw,938
|
22
22
|
janito/shell.bak.zip,sha256=hznHbmgfkAkjuQDJ3w73XPQh05yrtUZQxLmtGbanbYU,22
|
23
23
|
janito/utils.py,sha256=eXSsMgM69YyzahgCNrJQLcEbB8ssLI1MQqaa20ONxbE,376
|
24
|
-
janito/agent/setup_agent.py,sha256=
|
24
|
+
janito/agent/setup_agent.py,sha256=l1Z4DsUEdanzMKCv8cd_PFzfS_ooK5AWZ22CJ0Y3ZPk,12711
|
25
25
|
janito/agent/templates/profiles/system_prompt_template_Developer_with_Python_Tools.txt.j2,sha256=gA_Br5UoM-CS8eyoYUtoPz4v2IXCjBcaRQmZ-chEEAI,4064
|
26
26
|
janito/agent/templates/profiles/system_prompt_template_developer.txt.j2,sha256=6cKS-UJ8pJX3voGsMFqMrJWCCYH0aX8ZWcToRCeEbI4,3747
|
27
27
|
janito/agent/templates/profiles/system_prompt_template_market_analyst.txt.j2,sha256=V9JAxdZcWkl53rmSRnrJCjHIsRM6GWEsNLno2hdKx7M,4256
|
@@ -30,7 +30,7 @@ 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=dWOa6mbfCQd46wVwwZfeYBxroCxdqvnAZQQ80j89qYA,70
|
32
32
|
janito/cli/main.py,sha256=s5odou0txf8pzTf1ADk2yV7T5m8B6cejJ81e7iu776U,312
|
33
|
-
janito/cli/main_cli.py,sha256=
|
33
|
+
janito/cli/main_cli.py,sha256=TKLbKG1R-BbvzxIp2MphBQg7kKxkj4QF5TZrxnjn1xk,16420
|
34
34
|
janito/cli/prompt_core.py,sha256=x1RcX1p4wCL4YzXS76T6BZ8nt5cGiXCAB3QOlC6BJQQ,14937
|
35
35
|
janito/cli/prompt_handler.py,sha256=SnPTlL64noeAMGlI08VBDD5IDD8jlVMIYA4-fS8zVLg,215
|
36
36
|
janito/cli/prompt_setup.py,sha256=s48gvNfZhKjsEhf4EzL1tKIGm4wDidPMDvlM6TAPYes,2116
|
@@ -41,7 +41,7 @@ janito/cli/chat_mode/bindings.py,sha256=odjc5_-YW1t2FRhBUNRNoBMoQIg5sMz3ktV7xG0A
|
|
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=EIM-iG7Qda3NGY6Xl8kwIvtxaD6iWgGAjHWBoXRvEhE,18050
|
45
45
|
janito/cli/chat_mode/toolbar.py,sha256=1Va-glkUGJUekOSGbKtD5ruiIfFUfPoICO0wfoEkElI,3988
|
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
|
@@ -84,7 +84,7 @@ janito/cli/cli_commands/list_config.py,sha256=oiQEGaGPjwjG-PrOcakpNMbbqISTsBEs7r
|
|
84
84
|
janito/cli/cli_commands/list_drivers.py,sha256=K4-8wDxtNAJF1sLhvrqWVAKQYcw6uB98EE-dSglbyRY,4965
|
85
85
|
janito/cli/cli_commands/list_models.py,sha256=QF3Wa7OhNcJFKeBxaw0C_rDfsvJFNb-siz5uorajBvo,1595
|
86
86
|
janito/cli/cli_commands/list_plugins.py,sha256=Lv-M6EAFiqnj0tl9Bq23s162t--81AIs2EqZxhi81lQ,7996
|
87
|
-
janito/cli/cli_commands/list_profiles.py,sha256=
|
87
|
+
janito/cli/cli_commands/list_profiles.py,sha256=apQ-RY01dItrcnJONKTE1vcuI1aKp0DGtPOTbtCoFtU,3326
|
88
88
|
janito/cli/cli_commands/list_providers.py,sha256=oilrBjNL5mot1nz45XQQY6oeiSxoNvphhQYspNcEJpw,391
|
89
89
|
janito/cli/cli_commands/list_providers_region.py,sha256=qrMj_gtgEMty8UH0P_O5SgWCVJ9ZKxGUp_GdsE4_EH4,2548
|
90
90
|
janito/cli/cli_commands/list_tools.py,sha256=lHPbwXxPysxnDqatZtFOD7S49nYinE5GGgav2UT_x0E,3592
|
@@ -93,16 +93,16 @@ janito/cli/cli_commands/model_utils.py,sha256=4t2ZN8DYA8jxluXHiiliV8gMbF_90nKGtg
|
|
93
93
|
janito/cli/cli_commands/ping_providers.py,sha256=hetZAKKZzQYRpRDT5OvRTOe4jYUVNZGjo8gFoyeRA3I,1921
|
94
94
|
janito/cli/cli_commands/set_api_key.py,sha256=IR_hUcLjK-2oJmiIVdjc8epPsQAzqEN9MS7lSTVqmKM,1060
|
95
95
|
janito/cli/cli_commands/show_config.py,sha256=ammzVEqJQCAdWFRrhI1zjjmzgTCH2l38REoT4gYJPP0,3467
|
96
|
-
janito/cli/cli_commands/show_system_prompt.py,sha256=
|
96
|
+
janito/cli/cli_commands/show_system_prompt.py,sha256=IDjgDFiXX9JLoRhhEq3b7Rtqmwvja8TnDY-_CrWsPR4,6133
|
97
97
|
janito/cli/core/__init__.py,sha256=YH95fhgY9yBX8RgqX9dSrEkl4exjV0T4rbmJ6xUpG-Y,196
|
98
98
|
janito/cli/core/event_logger.py,sha256=1X6lR0Ax7AgF8HlPWFoY5Ystuu7Bh4ooTo78vXzeGB0,2008
|
99
99
|
janito/cli/core/getters.py,sha256=opmcSz86J-I95Klsh0c4y6lsYvNakrvRqvuA0o5ARWI,2869
|
100
100
|
janito/cli/core/model_guesser.py,sha256=V7LBkIllSp_tP9-2B1gcl5b4b-La7mrOvE3AZQQm8lk,1716
|
101
|
-
janito/cli/core/runner.py,sha256=
|
101
|
+
janito/cli/core/runner.py,sha256=5TLHtt1iU4b1uFAqT94CoORr452Rzk4oHPSOnMbjBfA,9285
|
102
102
|
janito/cli/core/setters.py,sha256=zjSUxy6iUzcrmEunFk7dA90KqbMaq2O7LTGP8wn2HxA,5378
|
103
103
|
janito/cli/core/unsetters.py,sha256=FEw9gCt0vRvoCt0kRSNfVB2tzi_TqppJIx2nHPP59-k,2012
|
104
104
|
janito/cli/single_shot_mode/__init__.py,sha256=Ct99pKe9tINzVW6oedZJfzfZQKWpXz-weSSCn0hrwHY,115
|
105
|
-
janito/cli/single_shot_mode/handler.py,sha256=
|
105
|
+
janito/cli/single_shot_mode/handler.py,sha256=2sIX2hmX_FRCLI4NkPPABOpMegI0YokjelHQ20f_YG8,6129
|
106
106
|
janito/docs/GETTING_STARTED.md,sha256=IrTTa9tBTGDBw9EQJs0J05EdzjBCcwUd04jI-gswdSc,4774
|
107
107
|
janito/drivers/dashscope.bak.zip,sha256=9Pv4Xyciju8jO1lEMFVgYXexoZkxmDO3Ig6vw3ODfL8,4936
|
108
108
|
janito/drivers/openai_responses.bak.zip,sha256=E43eDCHGa2tCtdjzj_pMnWDdnsOZzj8BJTR5tJp8wcM,13352
|
@@ -122,22 +122,23 @@ janito/i18n/it.py,sha256=jpWyCrwoZXxHaLEbmYL2B1ouOa854ecdCfpXq4mqroc,4052
|
|
122
122
|
janito/i18n/messages.py,sha256=fBuwOTFoygyHPkYphm6Y0r1iE8497Z4iryVAmPhMEkg,1851
|
123
123
|
janito/i18n/pt.py,sha256=NlTgpDSftUfFG7FGbs7TK54vQlJVMyaZDHGcWjelwMc,4168
|
124
124
|
janito/llm/README.md,sha256=6GRqCu_a9va5HCB1YqNqbshyWKFyAGlnXugrjom-xj8,1213
|
125
|
-
janito/llm/__init__.py,sha256=
|
125
|
+
janito/llm/__init__.py,sha256=5ZtHZPIj0xyF-Yj5l0N-JYQlczLjt2w4O1uljA5uX5k,171
|
126
126
|
janito/llm/agent.py,sha256=Q7RT42cepDkXQqUVhyvREn9EqGtSkDprV6YRc_gbOxw,23916
|
127
127
|
janito/llm/auth.py,sha256=8Dl_orUEPhn2X6XjkO2Nr-j1HFT2YDxk1qJl9hSFI88,2286
|
128
128
|
janito/llm/auth_utils.py,sha256=7GH7bIScKhVWJW6ugcDrJLcYRamj5dl_l8N1rrvR4Ws,663
|
129
|
-
janito/llm/driver.py,sha256=
|
129
|
+
janito/llm/driver.py,sha256=jwao63VOzRHKxDFvGMgbeCClWzmQyM6GGXeTfMetnnA,11370
|
130
130
|
janito/llm/driver_config.py,sha256=OW0ae49EfgKDqaThuDjZBiaN78voNzwiZ6szERMqJos,1406
|
131
131
|
janito/llm/driver_config_builder.py,sha256=BvWGx7vaBR5NyvPY1XNAP3lAgo1uf-T25CSsIo2kkCU,1401
|
132
132
|
janito/llm/driver_input.py,sha256=Zq7IO4KdQPUraeIo6XoOaRy1IdQAyYY15RQw4JU30uA,389
|
133
133
|
janito/llm/message_parts.py,sha256=QY_0kDjaxdoErDgKPRPv1dNkkYJuXIBmHWNLiOEKAH4,1365
|
134
134
|
janito/llm/model.py,sha256=EioBkdgn8hJ0iQaKN-0KbXlsrk3YKmwR9IbvoEbdVTE,1159
|
135
135
|
janito/llm/provider.py,sha256=3FbhQPrWBSEoIdIi-5DWIh0DD_CM570EFf1NcuGyGko,7961
|
136
|
+
janito/llm/response_cache.py,sha256=mxj030hZJPXyBy7Gzfnia54HGSi5Qw6jybkyY2MLt7s,2263
|
136
137
|
janito/plugins/__init__.py,sha256=6tTpUDNJJCRqlGK6RBd40wP_xEowuZZh0FRGeQ5lQQA,400
|
137
138
|
janito/plugins/auto_loader.py,sha256=8DRpPZtAUtP-et4Lzaam93MH4s_sqQXXKI8Ly5-GQf8,2329
|
138
139
|
janito/plugins/auto_loader_fixed.py,sha256=11pL7J0bX3XOOevQa10_oUtNbH-CXkpKhxOl69Bmzro,2335
|
139
140
|
janito/plugins/base.py,sha256=4sQdTOogtDgmLWgA3q1Z8h8s-JySRkk9nSAmg0mHoNM,4285
|
140
|
-
janito/plugins/builtin.py,sha256=
|
141
|
+
janito/plugins/builtin.py,sha256=TgZfiiUE2RaRIRnkeY9dFGjHIQiS3j2X5pSzDWRak3I,1954
|
141
142
|
janito/plugins/config.py,sha256=ex5f1XsKPEgIO4DgJCohPzMKAQoUdx1OdSVU0FlSr5o,2331
|
142
143
|
janito/plugins/core_adapter.py,sha256=zOhRMLIsqPb5r-8-pJGucEiWEB1_M5btW6TmsAm-mdE,1877
|
143
144
|
janito/plugins/core_loader.py,sha256=VcIwuKUaR2bvRZIFEiUHaS8YulTOKrYtvO_VhKHRpGI,3576
|
@@ -149,7 +150,7 @@ janito/plugins/core/filemanager/tools/validate_file_syntax/__init__.py,sha256=P5
|
|
149
150
|
janito/plugins/core/filemanager/tools/validate_file_syntax/core.py,sha256=EoBMJ_A5mJJs7BMhOJ4gpxBd_p8q1e4597k_V5bJNjk,3940
|
150
151
|
janito/plugins/core/filemanager/tools/validate_file_syntax/txt_validator.py,sha256=5GbO_IhbOUjHM-klorS3dUKeEOfKXXIuK3T-1JjSIeU,909
|
151
152
|
janito/plugins/tools/__init__.py,sha256=XKixOKtUJs1R-rGwGDXSLVLg5-Kp090gvWbsseWT4LI,92
|
152
|
-
janito/plugins/tools/local/__init__.py,sha256=
|
153
|
+
janito/plugins/tools/local/__init__.py,sha256=bJONOGBzR-d4TN--IGuQcFJW7di3J5qTLoVMHIcK1jU,2634
|
153
154
|
janito/plugins/tools/local/adapter.py,sha256=LENtKWnoHrDSnPid195R_9mSgKieNQKyH6XzaQjh7uY,8706
|
154
155
|
janito/plugins/tools/local/ask_user.py,sha256=RJGPYHUL4tbpjpkfnickJxl_KotBLTqT75JntpOXjCY,4059
|
155
156
|
janito/plugins/tools/local/copy_file.py,sha256=j7isTujW0z0zUMh3QXQES8RdWO7RhE-IHhq7oh6e1q8,3681
|
@@ -158,6 +159,7 @@ janito/plugins/tools/local/create_file.py,sha256=rWFj9M7-C8Dl4br_1ooDbabb7Q6oKwb
|
|
158
159
|
janito/plugins/tools/local/delete_text_in_file.py,sha256=K0nry8fsk4ZNjWE-nDNpYYUpumZwo9m4nND8C8TFfOQ,5085
|
159
160
|
janito/plugins/tools/local/fetch_url.py,sha256=cYOSnjiaVo9pTpGDkFKb4lUsP3x_fB2nHStf-CmZuCE,18220
|
160
161
|
janito/plugins/tools/local/find_files.py,sha256=esFwkmJN_d-GkknSjkuBRr_DOsXFQQana-o08Y7YXts,6249
|
162
|
+
janito/plugins/tools/local/markdown_view.py,sha256=qM0INFe112LLbDlqM79vtAFHQoepWOU5zx0G8utPSWw,3685
|
161
163
|
janito/plugins/tools/local/move_file.py,sha256=ddl3Jj3Uq7NQ19gsT8oRX_l0qjL6c7kVcH9Qg0VCNi8,4694
|
162
164
|
janito/plugins/tools/local/open_html_in_browser.py,sha256=RUD6QOs5CjEXdFEkIhk4W4m2txI_MJw0CbO4z5t4kL0,2100
|
163
165
|
janito/plugins/tools/local/open_url.py,sha256=BBcUPBo7kyIXPsQj5xB_2dlLiSABYwEpGPLX8NNpZ6A,1551
|
@@ -165,15 +167,15 @@ janito/plugins/tools/local/python_code_run.py,sha256=oVU3XCuUD5lJE3SrMnslCr_zBE6
|
|
165
167
|
janito/plugins/tools/local/python_command_run.py,sha256=UJB5Ac0WXvzPDavYd7PC2S2U0qA_OvIkJnf2J_XPr7I,6934
|
166
168
|
janito/plugins/tools/local/python_file_run.py,sha256=wX-R4lP66LCEjFyc5hkrxI9wJgAmwI1oINP5azxxLlw,6858
|
167
169
|
janito/plugins/tools/local/read_chart.py,sha256=H4-fcgHQweAOJsvktJ7XYs39UIVJdXRZK-xhrZEX69E,10410
|
168
|
-
janito/plugins/tools/local/read_files.py,sha256=
|
170
|
+
janito/plugins/tools/local/read_files.py,sha256=XKd0vkI63wqGX01_MR02rteMM_X89KPFFdsJ8QRRLM0,2321
|
169
171
|
janito/plugins/tools/local/remove_directory.py,sha256=_P1VgC-bSttN-a2-VlEZ2inphG4me91jXe1OZi7bqR4,1912
|
170
172
|
janito/plugins/tools/local/remove_file.py,sha256=YbTByXAnnvlQ57y-2B2qcblmOgEJpeBrGhi4Te4-QlA,2092
|
171
|
-
janito/plugins/tools/local/replace_text_in_file.py,sha256=
|
173
|
+
janito/plugins/tools/local/replace_text_in_file.py,sha256=5nu2_QjSpz1q9CfiZmo7N22sPdxlnrR17YoKoriUPWI,10962
|
172
174
|
janito/plugins/tools/local/run_bash_command.py,sha256=cKE0VUJc_qefrU-VcTk_3ipViKZDLlbfGS8D0cEAHMg,7954
|
173
175
|
janito/plugins/tools/local/run_powershell_command.py,sha256=nA-8rbf2NNG6eWSUwB5YkNOpCADLa_APC9y-ouk1DMc,9312
|
174
|
-
janito/plugins/tools/local/show_image.py,sha256=
|
175
|
-
janito/plugins/tools/local/show_image_grid.py,sha256=
|
176
|
-
janito/plugins/tools/local/view_file.py,sha256=
|
176
|
+
janito/plugins/tools/local/show_image.py,sha256=KvHUuI54XVGinS3M08ORiQg7EN_xucg5qnWN5Id7YNA,4939
|
177
|
+
janito/plugins/tools/local/show_image_grid.py,sha256=L4zFVnmw4m_sDdK2GhgWzqoQmOrV6loUZM3RIc1vcdI,5294
|
178
|
+
janito/plugins/tools/local/view_file.py,sha256=sQqyuarSqbvI6-21LQwfu_vOr9Tb3XZF-7IjoteFpU8,7372
|
177
179
|
janito/plugins/tools/local/get_file_outline/__init__.py,sha256=OKV_BHnoD9h-vkcVoW6AHmsuDjjauHPCKNK0nVFl4sU,37
|
178
180
|
janito/plugins/tools/local/get_file_outline/core.py,sha256=E8nV5Qx7DuslRTwhONlBS1LxJJLWsE1TWeOSXMFKtFs,4609
|
179
181
|
janito/plugins/tools/local/get_file_outline/java_outline.py,sha256=_UeUY5JoQEUdlHcK8aqGTqYJl0T2KxIFXPTdwum9gKQ,1825
|
@@ -181,7 +183,7 @@ janito/plugins/tools/local/get_file_outline/markdown_outline.py,sha256=bXEBg0D93
|
|
181
183
|
janito/plugins/tools/local/get_file_outline/python_outline.py,sha256=RAcf9Vxec08lA06drYaNre5HCJ2lTzrRAskZ3rlyE-U,10326
|
182
184
|
janito/plugins/tools/local/get_file_outline/search_outline.py,sha256=bski24TpnJVf3L0TNzkx3HfvaXwttQl4EVkwk2POQOw,1348
|
183
185
|
janito/plugins/tools/local/search_text/__init__.py,sha256=FEYpF5tTtf0fiAyRGIGSn-kV-MJDkhdFIbus16mYW8Y,34
|
184
|
-
janito/plugins/tools/local/search_text/core.py,sha256=
|
186
|
+
janito/plugins/tools/local/search_text/core.py,sha256=lSAnOjsxfqaLn0vmh4XDSfqHVZzZ4VF_l4xNSp-jerQ,7871
|
185
187
|
janito/plugins/tools/local/search_text/match_lines.py,sha256=RLR8fZFP-Q57rY0fTENbMItmt3dJZiYX0otmGHVRjfw,2131
|
186
188
|
janito/plugins/tools/local/search_text/pattern_utils.py,sha256=D7vtAr8oT0tGV0C_UUarAXS9XQtP-MTYmmc8Yg8iVTg,2362
|
187
189
|
janito/plugins/tools/local/search_text/traverse_directory.py,sha256=EpL1qywAV0H29pm8-QsHrjKchKP4i4sRUOENVuNptCo,4000
|
@@ -202,8 +204,8 @@ janito/providers/__init__.py,sha256=EvOFeiqucAY9tgCosJ81p0QA6wQwMT1cR3EeIGrhSQQ,
|
|
202
204
|
janito/providers/dashscope.bak.zip,sha256=BwXxRmZreEivvRtmqbr5BR62IFVlNjAf4y6DrF2BVJo,5998
|
203
205
|
janito/providers/registry.py,sha256=Ygwv9eVrTXOKhv0EKxSWQXO5WMHvajWE2Q_Lc3p7dKo,730
|
204
206
|
janito/providers/alibaba/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
205
|
-
janito/providers/alibaba/model_info.py,sha256=
|
206
|
-
janito/providers/alibaba/provider.py,sha256=
|
207
|
+
janito/providers/alibaba/model_info.py,sha256=A1DL-NCFC6WhEirSfOHTXeFT14pSPvLRbV_DCbaO4jo,4893
|
208
|
+
janito/providers/alibaba/provider.py,sha256=inEho2FcYvriqGvzviWKn8klls-u22LFv71BS_Voxxk,4088
|
207
209
|
janito/providers/anthropic/model_info.py,sha256=m6pBh0Ia8_xC1KZ7ke_4HeHIFw7nWjnYVItnRpkCSWc,1206
|
208
210
|
janito/providers/anthropic/provider.py,sha256=aGynBxCFc7oTyvGNDUkbutJCKurC_9J4AkReC2LTPYo,3023
|
209
211
|
janito/providers/azure_openai/model_info.py,sha256=TMSqEpQROIIYUGAyulYJ5xGhj7CbLoaKL_JXeLbXaG0,689
|
@@ -262,9 +264,9 @@ janito/tools/tool_utils.py,sha256=alPm9DvtXSw_zPRKvP5GjbebPRf_nfvmWk2TNlL5Cws,12
|
|
262
264
|
janito/tools/tools_adapter.py,sha256=Vd7A2tJ1q-EpoenkztK4he-0WhGjLFDP0vEfmXdFiNk,21361
|
263
265
|
janito/tools/tools_schema.py,sha256=rGrKrmpPNR07VXHAJ_haGBRRO-YGLOF51BlYRep9AAQ,4415
|
264
266
|
janito/tools/url_whitelist.py,sha256=0CPLkHTp5HgnwgjxwgXnJmwPeZQ30q4j3YjW59hiUUE,4295
|
265
|
-
janito-3.12.
|
266
|
-
janito-3.12.
|
267
|
-
janito-3.12.
|
268
|
-
janito-3.12.
|
269
|
-
janito-3.12.
|
270
|
-
janito-3.12.
|
267
|
+
janito-3.12.3.dist-info/licenses/LICENSE,sha256=dXV4fOF2ZErugtN8l_Nrj5tsRTYgtjE3cgiya0UfBio,11356
|
268
|
+
janito-3.12.3.dist-info/METADATA,sha256=Pt3b7RGJB6BXxZ8INulk9B-zPA1jHTlzS-KS9yAdGj8,2330
|
269
|
+
janito-3.12.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
270
|
+
janito-3.12.3.dist-info/entry_points.txt,sha256=wIo5zZxbmu4fC-ZMrsKD0T0vq7IqkOOLYhrqRGypkx4,48
|
271
|
+
janito-3.12.3.dist-info/top_level.txt,sha256=m0NaVCq0-ivxbazE2-ND0EA9Hmuijj_OGkmCbnBcCig,7
|
272
|
+
janito-3.12.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|