alita-sdk 0.3.233__py3-none-any.whl → 0.3.235__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.
- alita_sdk/configurations/embedding.py +19 -0
- alita_sdk/configurations/testrail.py +3 -2
- alita_sdk/runtime/clients/client.py +93 -68
- alita_sdk/tools/__init__.py +6 -0
- alita_sdk/tools/ado/repos/__init__.py +3 -5
- alita_sdk/tools/ado/test_plan/__init__.py +4 -5
- alita_sdk/tools/ado/wiki/__init__.py +4 -5
- alita_sdk/tools/ado/work_item/__init__.py +4 -5
- alita_sdk/tools/bitbucket/__init__.py +4 -2
- alita_sdk/tools/confluence/__init__.py +5 -2
- alita_sdk/tools/elitea_base.py +1 -1
- alita_sdk/tools/figma/__init__.py +4 -2
- alita_sdk/tools/github/__init__.py +5 -3
- alita_sdk/tools/gitlab/__init__.py +4 -2
- alita_sdk/tools/jira/__init__.py +4 -2
- alita_sdk/tools/testrail/__init__.py +5 -13
- alita_sdk/tools/utils/content_parser.py +3 -3
- alita_sdk/tools/xray/__init__.py +8 -7
- alita_sdk/tools/zephyr_enterprise/__init__.py +8 -7
- alita_sdk/tools/zephyr_essential/__init__.py +8 -7
- alita_sdk/tools/zephyr_scale/__init__.py +9 -0
- {alita_sdk-0.3.233.dist-info → alita_sdk-0.3.235.dist-info}/METADATA +1 -1
- {alita_sdk-0.3.233.dist-info → alita_sdk-0.3.235.dist-info}/RECORD +26 -25
- {alita_sdk-0.3.233.dist-info → alita_sdk-0.3.235.dist-info}/WHEEL +0 -0
- {alita_sdk-0.3.233.dist-info → alita_sdk-0.3.235.dist-info}/licenses/LICENSE +0 -0
- {alita_sdk-0.3.233.dist-info → alita_sdk-0.3.235.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
from pydantic import BaseModel, ConfigDict, Field, SecretStr
|
2
|
+
|
3
|
+
|
4
|
+
class EmbeddingConfiguration(BaseModel):
|
5
|
+
model_config = ConfigDict(
|
6
|
+
json_schema_extra={
|
7
|
+
"metadata": {
|
8
|
+
"label": "Embedding Vector Storage",
|
9
|
+
"icon_url": None,
|
10
|
+
"section": "vectorstorage",
|
11
|
+
"type": "embedding"
|
12
|
+
}
|
13
|
+
}
|
14
|
+
)
|
15
|
+
embedding_model: str = Field(description="Embedding model: i.e. 'HuggingFaceEmbeddings', etc.",
|
16
|
+
default="HuggingFaceEmbeddings")
|
17
|
+
embedding_model_params: dict = Field(
|
18
|
+
description="Embedding model parameters: i.e. `{'model_name': 'sentence-transformers/all-MiniLM-L6-v2'}",
|
19
|
+
default={"model_name": "sentence-transformers/all-MiniLM-L6-v2"})
|
@@ -16,5 +16,6 @@ class TestRailConfiguration(BaseModel):
|
|
16
16
|
}
|
17
17
|
}
|
18
18
|
)
|
19
|
-
|
20
|
-
|
19
|
+
url: str = Field(description="Testrail URL")
|
20
|
+
email: str = Field(description="TestRail Email")
|
21
|
+
password: SecretStr = Field(description="TestRail Password")
|
@@ -1,4 +1,6 @@
|
|
1
1
|
import logging
|
2
|
+
from copy import deepcopy
|
3
|
+
|
2
4
|
import requests
|
3
5
|
from urllib.parse import quote
|
4
6
|
|
@@ -18,7 +20,7 @@ from .prompt import AlitaPrompt
|
|
18
20
|
from .datasource import AlitaDataSource
|
19
21
|
from .artifact import Artifact
|
20
22
|
from ..langchain.chat_message_template import Jinja2TemplatedChatMessagesTemplate
|
21
|
-
|
23
|
+
from ...tools import get_available_toolkit_models
|
22
24
|
|
23
25
|
logger = logging.getLogger(__name__)
|
24
26
|
|
@@ -141,7 +143,7 @@ class AlitaClient:
|
|
141
143
|
break
|
142
144
|
|
143
145
|
return apps
|
144
|
-
|
146
|
+
|
145
147
|
def fetch_available_configurations(self) -> list:
|
146
148
|
resp = requests.get(self.configurations_url, headers=self.headers, verify=False)
|
147
149
|
if resp.ok:
|
@@ -157,19 +159,19 @@ class AlitaClient:
|
|
157
159
|
def get_llm(self, model_name: str, model_config: dict) -> ChatOpenAI:
|
158
160
|
"""
|
159
161
|
Get a ChatOpenAI model instance based on the model name and configuration.
|
160
|
-
|
162
|
+
|
161
163
|
Args:
|
162
164
|
model_name: Name of the model to retrieve
|
163
165
|
model_config: Configuration parameters for the model
|
164
|
-
|
166
|
+
|
165
167
|
Returns:
|
166
168
|
An instance of ChatOpenAI configured with the provided parameters.
|
167
169
|
"""
|
168
170
|
if not model_name:
|
169
171
|
raise ValueError("Model name must be provided")
|
170
|
-
|
172
|
+
|
171
173
|
logger.info(f"Creating ChatOpenAI model: {model_name} with config: {model_config}")
|
172
|
-
|
174
|
+
|
173
175
|
return ChatOpenAI(
|
174
176
|
base_url=f"{self.base_url}{self.llm_path}",
|
175
177
|
model=model_name,
|
@@ -182,8 +184,8 @@ class AlitaClient:
|
|
182
184
|
seed=model_config.get("seed", None),
|
183
185
|
openai_organization=str(self.project_id),
|
184
186
|
)
|
185
|
-
|
186
|
-
|
187
|
+
|
188
|
+
|
187
189
|
def get_app_version_details(self, application_id: int, application_version_id: int) -> dict:
|
188
190
|
url = f"{self.application_versions}/{application_id}/{application_version_id}"
|
189
191
|
if self.configurations:
|
@@ -401,7 +403,7 @@ class AlitaClient:
|
|
401
403
|
def predict(self, messages: list[BaseMessage], model_settings: dict, variables: list[dict] = None):
|
402
404
|
prompt_data = self._prepare_payload(messages, model_settings, variables)
|
403
405
|
response = requests.post(self.predict_url, headers=self.headers, json=prompt_data, verify=False)
|
404
|
-
|
406
|
+
|
405
407
|
if response.status_code != 200:
|
406
408
|
logger.error(f"Error in response of predict: {response.content}")
|
407
409
|
raise requests.exceptions.HTTPError(response.content)
|
@@ -465,7 +467,7 @@ class AlitaClient:
|
|
465
467
|
content = resp_data["findings"]
|
466
468
|
references = resp_data['references']
|
467
469
|
return AIMessage(content=content, additional_kwargs={"references": references})
|
468
|
-
|
470
|
+
|
469
471
|
def _get_real_user_id(self):
|
470
472
|
try:
|
471
473
|
import tasknode_task # pylint: disable=E0401
|
@@ -512,16 +514,16 @@ class AlitaClient:
|
|
512
514
|
return LangChainAssistant(self, agent_data, llm,
|
513
515
|
chat_history, "predict", memory=memory, store=store).runnable()
|
514
516
|
|
515
|
-
def test_toolkit_tool(self, toolkit_config: dict, tool_name: str, tool_params: dict = None,
|
516
|
-
runtime_config: dict = None, llm_model: str = None,
|
517
|
+
def test_toolkit_tool(self, toolkit_config: dict, tool_name: str, tool_params: dict = None,
|
518
|
+
runtime_config: dict = None, llm_model: str = None,
|
517
519
|
llm_config: dict = None) -> dict:
|
518
520
|
"""
|
519
521
|
Test a single tool from a toolkit with given parameters and runtime callbacks.
|
520
|
-
|
522
|
+
|
521
523
|
This method initializes a toolkit, calls a specific tool, and supports runtime
|
522
524
|
callbacks for event dispatching, enabling tools to send custom events back to
|
523
525
|
the platform during execution.
|
524
|
-
|
526
|
+
|
525
527
|
Args:
|
526
528
|
toolkit_config: Configuration dictionary for the toolkit containing:
|
527
529
|
- toolkit_name: Name of the toolkit (e.g., 'github', 'jira')
|
@@ -537,7 +539,7 @@ class AlitaClient:
|
|
537
539
|
- max_tokens: Maximum tokens for response (default: 1000)
|
538
540
|
- temperature: Temperature for response generation (default: 0.1)
|
539
541
|
- top_p: Top-p value for response generation (default: 1.0)
|
540
|
-
|
542
|
+
|
541
543
|
Returns:
|
542
544
|
Dictionary containing:
|
543
545
|
- success: Boolean indicating if the operation was successful
|
@@ -548,25 +550,25 @@ class AlitaClient:
|
|
548
550
|
- events_dispatched: List of custom events dispatched during execution
|
549
551
|
- llm_model: LLM model used for the test
|
550
552
|
- execution_time_seconds: Time taken to execute the tool in seconds
|
551
|
-
|
553
|
+
|
552
554
|
Example:
|
553
555
|
>>> from langchain_core.callbacks import BaseCallbackHandler
|
554
|
-
>>>
|
556
|
+
>>>
|
555
557
|
>>> class TestCallback(BaseCallbackHandler):
|
556
558
|
... def __init__(self):
|
557
559
|
... self.events = []
|
558
560
|
... def on_custom_event(self, name, data, **kwargs):
|
559
561
|
... self.events.append({'name': name, 'data': data})
|
560
|
-
>>>
|
562
|
+
>>>
|
561
563
|
>>> callback = TestCallback()
|
562
564
|
>>> runtime_config = {'callbacks': [callback]}
|
563
|
-
>>>
|
565
|
+
>>>
|
564
566
|
>>> config = {
|
565
567
|
... 'toolkit_name': 'github',
|
566
568
|
... 'settings': {'github_token': 'your_token'}
|
567
569
|
... }
|
568
570
|
>>> result = client.test_toolkit_tool(
|
569
|
-
... config, 'get_repository_info',
|
571
|
+
... config, 'get_repository_info',
|
570
572
|
... {'repo_name': 'alita'}, runtime_config,
|
571
573
|
... llm_model='gpt-4o-mini',
|
572
574
|
... llm_config={'temperature': 0.1}
|
@@ -582,21 +584,44 @@ class AlitaClient:
|
|
582
584
|
'temperature': 0.1,
|
583
585
|
'top_p': 1.0
|
584
586
|
}
|
585
|
-
|
587
|
+
import logging
|
588
|
+
logger = logging.getLogger(__name__)
|
589
|
+
toolkit_config_parsed_json = None
|
590
|
+
try:
|
591
|
+
toolkit_config_type = toolkit_config.get('type')
|
592
|
+
toolkit_class = get_available_toolkit_models().get(toolkit_config_type)['toolkit_class']
|
593
|
+
toolkit_config_model_class = toolkit_class.toolkit_config_schema()
|
594
|
+
toolkit_config_validated_settings = toolkit_config_model_class(
|
595
|
+
**toolkit_config.get('settings', {})
|
596
|
+
).model_dump(mode='json')
|
597
|
+
|
598
|
+
toolkit_config_parsed_json = deepcopy(toolkit_config)
|
599
|
+
toolkit_config_parsed_json['settings'] = toolkit_config_validated_settings
|
600
|
+
except Exception as toolkit_config_error:
|
601
|
+
logger.error(f"Failed to validate toolkit configuration: {str(toolkit_config_error)}")
|
602
|
+
return {
|
603
|
+
"success": False,
|
604
|
+
"error": f"Failed to validate toolkit configuration: {str(toolkit_config_error)}",
|
605
|
+
"tool_name": tool_name,
|
606
|
+
"toolkit_config": None,
|
607
|
+
"llm_model": llm_model,
|
608
|
+
"events_dispatched": events_dispatched,
|
609
|
+
"execution_time_seconds": 0.0
|
610
|
+
}
|
611
|
+
|
586
612
|
try:
|
587
613
|
from ..utils.toolkit_utils import instantiate_toolkit_with_client
|
588
614
|
from langchain_core.runnables import RunnableConfig
|
589
615
|
import logging
|
590
616
|
import time
|
591
|
-
|
592
|
-
logger = logging.getLogger(__name__)
|
617
|
+
|
593
618
|
logger.info(f"Testing tool '{tool_name}' from toolkit '{toolkit_config.get('toolkit_name')}' with LLM '{llm_model}'")
|
594
|
-
|
619
|
+
|
595
620
|
# Create RunnableConfig for callback support
|
596
621
|
config = None
|
597
622
|
callbacks = []
|
598
623
|
events_dispatched = []
|
599
|
-
|
624
|
+
|
600
625
|
if runtime_config:
|
601
626
|
callbacks = runtime_config.get('callbacks', [])
|
602
627
|
if callbacks:
|
@@ -605,7 +630,7 @@ class AlitaClient:
|
|
605
630
|
configurable=runtime_config.get('configurable', {}),
|
606
631
|
tags=runtime_config.get('tags', [])
|
607
632
|
)
|
608
|
-
|
633
|
+
|
609
634
|
# Create LLM instance using the client's get_llm method
|
610
635
|
try:
|
611
636
|
llm = self.get_llm(llm_model, llm_config)
|
@@ -616,42 +641,42 @@ class AlitaClient:
|
|
616
641
|
"success": False,
|
617
642
|
"error": f"Failed to create LLM instance '{llm_model}': {str(llm_error)}",
|
618
643
|
"tool_name": tool_name,
|
619
|
-
"toolkit_config":
|
644
|
+
"toolkit_config": toolkit_config_parsed_json,
|
620
645
|
"llm_model": llm_model,
|
621
646
|
"events_dispatched": events_dispatched,
|
622
647
|
"execution_time_seconds": 0.0
|
623
648
|
}
|
624
|
-
|
649
|
+
|
625
650
|
# Instantiate the toolkit with client and LLM support
|
626
651
|
tools = instantiate_toolkit_with_client(toolkit_config, llm, self)
|
627
|
-
|
652
|
+
|
628
653
|
if not tools:
|
629
654
|
return {
|
630
655
|
"success": False,
|
631
656
|
"error": f"Failed to instantiate toolkit '{toolkit_config.get('toolkit_name')}' or no tools found",
|
632
657
|
"tool_name": tool_name,
|
633
|
-
"toolkit_config":
|
658
|
+
"toolkit_config": toolkit_config_parsed_json,
|
634
659
|
"llm_model": llm_model,
|
635
660
|
"events_dispatched": events_dispatched,
|
636
661
|
"execution_time_seconds": 0.0
|
637
662
|
}
|
638
|
-
|
663
|
+
|
639
664
|
# Find the specific tool with smart name matching
|
640
665
|
target_tool = None
|
641
666
|
toolkit_name = toolkit_config.get('toolkit_name', '').lower()
|
642
|
-
|
667
|
+
|
643
668
|
# Helper function to extract base tool name from full name
|
644
669
|
def extract_base_tool_name(full_name: str) -> str:
|
645
670
|
"""Extract base tool name from toolkit___toolname format."""
|
646
671
|
if '___' in full_name:
|
647
672
|
return full_name.split('___', 1)[1]
|
648
673
|
return full_name
|
649
|
-
|
674
|
+
|
650
675
|
# Helper function to create full tool name
|
651
676
|
def create_full_tool_name(base_name: str, toolkit_name: str) -> str:
|
652
677
|
"""Create full tool name in toolkit___toolname format."""
|
653
678
|
return f"{toolkit_name}___{base_name}"
|
654
|
-
|
679
|
+
|
655
680
|
# Normalize tool_name to handle both formats
|
656
681
|
# If user provides toolkit___toolname, extract just the tool name
|
657
682
|
# If user provides just toolname, keep as is
|
@@ -660,7 +685,7 @@ class AlitaClient:
|
|
660
685
|
logger.info(f"Extracted base tool name '{normalized_tool_name}' from full name '{tool_name}'")
|
661
686
|
else:
|
662
687
|
normalized_tool_name = tool_name
|
663
|
-
|
688
|
+
|
664
689
|
# Try multiple matching strategies
|
665
690
|
for tool in tools:
|
666
691
|
tool_name_attr = None
|
@@ -668,61 +693,61 @@ class AlitaClient:
|
|
668
693
|
tool_name_attr = tool.name
|
669
694
|
elif hasattr(tool, 'func') and hasattr(tool.func, '__name__'):
|
670
695
|
tool_name_attr = tool.func.__name__
|
671
|
-
|
696
|
+
|
672
697
|
if tool_name_attr:
|
673
698
|
# Strategy 1: Exact match with provided name (handles both formats)
|
674
699
|
if tool_name_attr == tool_name:
|
675
700
|
target_tool = tool
|
676
701
|
logger.info(f"Found tool using exact match: '{tool_name_attr}'")
|
677
702
|
break
|
678
|
-
|
703
|
+
|
679
704
|
# Strategy 2: Match normalized name with toolkit prefix
|
680
705
|
expected_full_name = create_full_tool_name(normalized_tool_name, toolkit_name)
|
681
706
|
if tool_name_attr == expected_full_name:
|
682
707
|
target_tool = tool
|
683
708
|
logger.info(f"Found tool using toolkit prefix mapping: '{tool_name_attr}' for normalized name '{normalized_tool_name}'")
|
684
709
|
break
|
685
|
-
|
710
|
+
|
686
711
|
# Strategy 3: Match base names (extract from both sides)
|
687
712
|
base_tool_name = extract_base_tool_name(tool_name_attr)
|
688
713
|
if base_tool_name == normalized_tool_name:
|
689
714
|
target_tool = tool
|
690
715
|
logger.info(f"Found tool using base name mapping: '{tool_name_attr}' -> '{base_tool_name}' matches '{normalized_tool_name}'")
|
691
716
|
break
|
692
|
-
|
717
|
+
|
693
718
|
# Strategy 4: Match provided name with base tool name (reverse lookup)
|
694
719
|
if tool_name_attr == normalized_tool_name:
|
695
720
|
target_tool = tool
|
696
721
|
logger.info(f"Found tool using direct name match: '{tool_name_attr}' matches normalized '{normalized_tool_name}'")
|
697
722
|
break
|
698
|
-
|
723
|
+
|
699
724
|
if target_tool is None:
|
700
725
|
available_tools = []
|
701
726
|
base_available_tools = []
|
702
727
|
full_available_tools = []
|
703
|
-
|
728
|
+
|
704
729
|
for tool in tools:
|
705
730
|
tool_name_attr = None
|
706
731
|
if hasattr(tool, 'name'):
|
707
732
|
tool_name_attr = tool.name
|
708
733
|
elif hasattr(tool, 'func') and hasattr(tool.func, '__name__'):
|
709
734
|
tool_name_attr = tool.func.__name__
|
710
|
-
|
735
|
+
|
711
736
|
if tool_name_attr:
|
712
737
|
available_tools.append(tool_name_attr)
|
713
|
-
|
738
|
+
|
714
739
|
# Extract base name for user-friendly error
|
715
740
|
base_name = extract_base_tool_name(tool_name_attr)
|
716
741
|
if base_name not in base_available_tools:
|
717
742
|
base_available_tools.append(base_name)
|
718
|
-
|
743
|
+
|
719
744
|
# Track full names separately
|
720
745
|
if '___' in tool_name_attr:
|
721
746
|
full_available_tools.append(tool_name_attr)
|
722
|
-
|
747
|
+
|
723
748
|
# Create comprehensive error message
|
724
749
|
error_msg = f"Tool '{tool_name}' not found in toolkit '{toolkit_config.get('toolkit_name')}'."
|
725
|
-
|
750
|
+
|
726
751
|
if base_available_tools and full_available_tools:
|
727
752
|
error_msg += f" Available tools: {base_available_tools} (base names) or {full_available_tools} (full names)"
|
728
753
|
elif base_available_tools:
|
@@ -731,29 +756,29 @@ class AlitaClient:
|
|
731
756
|
error_msg += f" Available tools: {available_tools}"
|
732
757
|
else:
|
733
758
|
error_msg += " No tools found in the toolkit."
|
734
|
-
|
759
|
+
|
735
760
|
# Add helpful hint about naming conventions
|
736
761
|
if '___' in tool_name:
|
737
762
|
error_msg += f" Note: You provided a full name '{tool_name}'. Try using just the base name '{extract_base_tool_name(tool_name)}'."
|
738
763
|
elif full_available_tools:
|
739
764
|
possible_full_name = create_full_tool_name(tool_name, toolkit_name)
|
740
765
|
error_msg += f" Note: You provided a base name '{tool_name}'. The full name might be '{possible_full_name}'."
|
741
|
-
|
766
|
+
|
742
767
|
return {
|
743
768
|
"success": False,
|
744
769
|
"error": error_msg,
|
745
770
|
"tool_name": tool_name,
|
746
|
-
"toolkit_config":
|
771
|
+
"toolkit_config": toolkit_config_parsed_json,
|
747
772
|
"llm_model": llm_model,
|
748
773
|
"events_dispatched": events_dispatched,
|
749
774
|
"execution_time_seconds": 0.0
|
750
775
|
}
|
751
|
-
|
776
|
+
|
752
777
|
# Execute the tool with callback support
|
753
778
|
try:
|
754
779
|
# Log which tool was found and how
|
755
780
|
actual_tool_name = getattr(target_tool, 'name', None) or getattr(target_tool.func, '__name__', 'unknown')
|
756
|
-
|
781
|
+
|
757
782
|
# Determine which matching strategy was used
|
758
783
|
if actual_tool_name == tool_name:
|
759
784
|
logger.info(f"Found tool '{tool_name}' using exact match")
|
@@ -765,12 +790,12 @@ class AlitaClient:
|
|
765
790
|
logger.info(f"Found tool '{tool_name}' using direct normalized name match ('{actual_tool_name}')")
|
766
791
|
else:
|
767
792
|
logger.info(f"Found tool '{tool_name}' using fallback matching ('{actual_tool_name}')")
|
768
|
-
|
793
|
+
|
769
794
|
logger.info(f"Executing tool '{tool_name}' (internal name: '{actual_tool_name}') with parameters: {tool_params}")
|
770
|
-
|
795
|
+
|
771
796
|
# Start timing the tool execution
|
772
797
|
start_time = time.time()
|
773
|
-
|
798
|
+
|
774
799
|
# Different tools might have different invocation patterns
|
775
800
|
if hasattr(target_tool, 'invoke'):
|
776
801
|
# Use config for tools that support RunnableConfig
|
@@ -788,15 +813,15 @@ class AlitaClient:
|
|
788
813
|
"success": False,
|
789
814
|
"error": f"Tool '{tool_name}' is not callable",
|
790
815
|
"tool_name": tool_name,
|
791
|
-
"toolkit_config":
|
816
|
+
"toolkit_config": toolkit_config_parsed_json,
|
792
817
|
"llm_model": llm_model,
|
793
818
|
"events_dispatched": events_dispatched,
|
794
819
|
"execution_time_seconds": execution_time
|
795
820
|
}
|
796
|
-
|
821
|
+
|
797
822
|
# Calculate execution time
|
798
823
|
execution_time = time.time() - start_time
|
799
|
-
|
824
|
+
|
800
825
|
# Extract events from callbacks if they support it
|
801
826
|
for callback in callbacks:
|
802
827
|
if hasattr(callback, 'events'):
|
@@ -805,24 +830,24 @@ class AlitaClient:
|
|
805
830
|
events_dispatched.extend(callback.get_events())
|
806
831
|
elif hasattr(callback, 'dispatched_events'):
|
807
832
|
events_dispatched.extend(callback.dispatched_events)
|
808
|
-
|
833
|
+
|
809
834
|
logger.info(f"Tool '{tool_name}' executed successfully in {execution_time:.3f} seconds")
|
810
|
-
|
835
|
+
|
811
836
|
return {
|
812
837
|
"success": True,
|
813
838
|
"result": result,
|
814
839
|
"tool_name": tool_name,
|
815
|
-
"toolkit_config":
|
840
|
+
"toolkit_config": toolkit_config_parsed_json,
|
816
841
|
"llm_model": llm_model,
|
817
842
|
"events_dispatched": events_dispatched,
|
818
843
|
"execution_time_seconds": execution_time
|
819
844
|
}
|
820
|
-
|
845
|
+
|
821
846
|
except Exception as tool_error:
|
822
847
|
# Calculate execution time even for failed executions
|
823
848
|
execution_time = time.time() - start_time
|
824
849
|
logger.error(f"Error executing tool '{tool_name}' after {execution_time:.3f} seconds: {str(tool_error)}")
|
825
|
-
|
850
|
+
|
826
851
|
# Still collect events even if tool execution failed
|
827
852
|
for callback in callbacks:
|
828
853
|
if hasattr(callback, 'events'):
|
@@ -831,17 +856,17 @@ class AlitaClient:
|
|
831
856
|
events_dispatched.extend(callback.get_events())
|
832
857
|
elif hasattr(callback, 'dispatched_events'):
|
833
858
|
events_dispatched.extend(callback.dispatched_events)
|
834
|
-
|
859
|
+
|
835
860
|
return {
|
836
861
|
"success": False,
|
837
862
|
"error": f"Tool execution failed: {str(tool_error)}",
|
838
863
|
"tool_name": tool_name,
|
839
|
-
"toolkit_config":
|
864
|
+
"toolkit_config": toolkit_config_parsed_json,
|
840
865
|
"llm_model": llm_model,
|
841
866
|
"events_dispatched": events_dispatched,
|
842
867
|
"execution_time_seconds": execution_time
|
843
868
|
}
|
844
|
-
|
869
|
+
|
845
870
|
except Exception as e:
|
846
871
|
logger = logging.getLogger(__name__)
|
847
872
|
logger.error(f"Error in test_toolkit_tool: {str(e)}")
|
@@ -849,12 +874,12 @@ class AlitaClient:
|
|
849
874
|
"success": False,
|
850
875
|
"error": f"Method execution failed: {str(e)}",
|
851
876
|
"tool_name": tool_name,
|
852
|
-
"toolkit_config":
|
877
|
+
"toolkit_config": toolkit_config_parsed_json,
|
853
878
|
"llm_model": llm_model if 'llm_model' in locals() else None,
|
854
879
|
"events_dispatched": [],
|
855
880
|
"execution_time_seconds": 0.0
|
856
881
|
}
|
857
|
-
|
882
|
+
|
858
883
|
def _get_real_user_id(self) -> str:
|
859
884
|
"""Extract the real user ID from the auth token for MCP tool calls."""
|
860
885
|
try:
|
@@ -874,4 +899,4 @@ class AlitaClient:
|
|
874
899
|
except Exception as e:
|
875
900
|
logger.error(f"Error extracting user ID from token: {e}")
|
876
901
|
return None
|
877
|
-
|
902
|
+
|
alita_sdk/tools/__init__.py
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import logging
|
2
|
+
from copy import deepcopy
|
2
3
|
from importlib import import_module
|
3
4
|
from typing import Optional
|
4
5
|
|
@@ -177,6 +178,10 @@ def get_available_toolkits():
|
|
177
178
|
"""Return list of available toolkit class names."""
|
178
179
|
return list(AVAILABLE_TOOLKITS.keys())
|
179
180
|
|
181
|
+
def get_available_toolkit_models():
|
182
|
+
"""Return dict with available toolkit classes."""
|
183
|
+
return deepcopy(AVAILABLE_TOOLS)
|
184
|
+
|
180
185
|
def diagnose_imports():
|
181
186
|
"""Print diagnostic information about tool imports."""
|
182
187
|
available_count = len(AVAILABLE_TOOLS)
|
@@ -216,5 +221,6 @@ __all__ = [
|
|
216
221
|
'get_available_tools',
|
217
222
|
'get_failed_imports',
|
218
223
|
'get_available_toolkits',
|
224
|
+
'get_available_toolkit_models',
|
219
225
|
'diagnose_imports'
|
220
226
|
]
|
@@ -6,6 +6,7 @@ from pydantic import BaseModel, Field, create_model
|
|
6
6
|
import requests
|
7
7
|
|
8
8
|
from ....configurations.ado import AdoReposConfiguration
|
9
|
+
from ....configurations.embedding import EmbeddingConfiguration
|
9
10
|
from ....configurations.pgvector import PgVectorConfiguration
|
10
11
|
from ...base.tool import BaseAction
|
11
12
|
from .repos_wrapper import ReposApiWrapper
|
@@ -54,11 +55,8 @@ class AzureDevOpsReposToolkit(BaseToolkit):
|
|
54
55
|
# indexer settings
|
55
56
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
56
57
|
# embedder settings
|
57
|
-
|
58
|
-
|
59
|
-
embedding_model_params=(dict, Field(
|
60
|
-
description="Embedding model parameters: i.e. `{'model_name': 'sentence-transformers/all-MiniLM-L6-v2'}",
|
61
|
-
default={"model_name": "sentence-transformers/all-MiniLM-L6-v2"})),
|
58
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
59
|
+
json_schema_extra={'configuration_types': ['embedding']})),
|
62
60
|
|
63
61
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
64
62
|
__config__={'json_schema_extra': {'metadata':
|
@@ -5,6 +5,7 @@ from pydantic import create_model, BaseModel, Field
|
|
5
5
|
|
6
6
|
import requests
|
7
7
|
from ....configurations.ado import AdoConfiguration
|
8
|
+
from ....configurations.embedding import EmbeddingConfiguration
|
8
9
|
from ....configurations.pgvector import PgVectorConfiguration
|
9
10
|
from .test_plan_wrapper import TestPlanApiWrapper
|
10
11
|
from ...base.tool import BaseAction
|
@@ -31,11 +32,9 @@ class AzureDevOpsPlansToolkit(BaseToolkit):
|
|
31
32
|
# indexer settings
|
32
33
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
33
34
|
# embedder settings
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
description="Embedding model parameters: i.e. `{'model_name': 'sentence-transformers/all-MiniLM-L6-v2'}",
|
38
|
-
default={"model_name": "sentence-transformers/all-MiniLM-L6-v2"})),
|
35
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
36
|
+
json_schema_extra={'configuration_types': [
|
37
|
+
'embedding']})),
|
39
38
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
40
39
|
__config__={'json_schema_extra': {'metadata':
|
41
40
|
{
|
@@ -5,6 +5,7 @@ from pydantic import create_model, BaseModel, Field
|
|
5
5
|
|
6
6
|
import requests
|
7
7
|
from ....configurations.ado import AdoConfiguration
|
8
|
+
from ....configurations.embedding import EmbeddingConfiguration
|
8
9
|
from ....configurations.pgvector import PgVectorConfiguration
|
9
10
|
from ...base.tool import BaseAction
|
10
11
|
from ...utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, check_connection_response
|
@@ -31,11 +32,9 @@ class AzureDevOpsWikiToolkit(BaseToolkit):
|
|
31
32
|
# indexer settings
|
32
33
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
33
34
|
# embedder settings
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
description="Embedding model parameters: i.e. `{'model_name': 'sentence-transformers/all-MiniLM-L6-v2'}",
|
38
|
-
default={"model_name": "sentence-transformers/all-MiniLM-L6-v2"})),
|
35
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
36
|
+
json_schema_extra={'configuration_types': [
|
37
|
+
'embedding']})),
|
39
38
|
selected_tools=(List[Literal[tuple(selected_tools)]],
|
40
39
|
Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
41
40
|
__config__={
|
@@ -5,6 +5,7 @@ from pydantic import create_model, BaseModel, Field
|
|
5
5
|
|
6
6
|
import requests
|
7
7
|
from ....configurations.ado import AdoConfiguration
|
8
|
+
from ....configurations.embedding import EmbeddingConfiguration
|
8
9
|
from ....configurations.pgvector import PgVectorConfiguration
|
9
10
|
from ...base.tool import BaseAction
|
10
11
|
from ...utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, check_connection_response
|
@@ -32,11 +33,9 @@ class AzureDevOpsWorkItemsToolkit(BaseToolkit):
|
|
32
33
|
# indexer settings
|
33
34
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
34
35
|
# embedder settings
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
description="Embedding model parameters: i.e. `{'model_name': 'sentence-transformers/all-MiniLM-L6-v2'}",
|
39
|
-
default={"model_name": "sentence-transformers/all-MiniLM-L6-v2"})),
|
36
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
37
|
+
json_schema_extra={'configuration_types': [
|
38
|
+
'embedding']})),
|
40
39
|
__config__={
|
41
40
|
'json_schema_extra': {
|
42
41
|
'metadata': {
|
@@ -9,6 +9,7 @@ from langchain_core.tools import BaseTool
|
|
9
9
|
from pydantic import BaseModel, Field, ConfigDict, create_model
|
10
10
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, check_connection_response
|
11
11
|
from ...configurations.bitbucket import BitbucketConfiguration
|
12
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
12
13
|
from ...configurations.pgvector import PgVectorConfiguration
|
13
14
|
import requests
|
14
15
|
|
@@ -58,8 +59,9 @@ class AlitaBitbucketToolkit(BaseToolkit):
|
|
58
59
|
bitbucket_configuration=(Optional[BitbucketConfiguration], Field(description="Bitbucket Configuration", json_schema_extra={'configuration_types': ['bitbucket']})),
|
59
60
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", default={'configuration_types': ['pgvector']})),
|
60
61
|
# embedder settings
|
61
|
-
|
62
|
-
|
62
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
63
|
+
json_schema_extra={'configuration_types': [
|
64
|
+
'embedding']})),
|
63
65
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
64
66
|
__config__=ConfigDict(json_schema_extra=
|
65
67
|
{
|
@@ -6,6 +6,7 @@ from ..base.tool import BaseAction
|
|
6
6
|
from pydantic import create_model, BaseModel, ConfigDict, Field
|
7
7
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, parse_list, check_connection_response
|
8
8
|
from ...configurations.confluence import ConfluenceConfiguration
|
9
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
9
10
|
from ...configurations.pgvector import PgVectorConfiguration
|
10
11
|
import requests
|
11
12
|
|
@@ -81,8 +82,10 @@ class ConfluenceToolkit(BaseToolkit):
|
|
81
82
|
max_retry_seconds=(int, Field(description="Max retry, sec", default=60)),
|
82
83
|
confluence_configuration=(Optional[ConfluenceConfiguration], Field(description="Confluence Configuration", json_schema_extra={'configuration_types': ['confluence']})),
|
83
84
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
84
|
-
|
85
|
-
|
85
|
+
# embedder settings
|
86
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
87
|
+
json_schema_extra={'configuration_types': [
|
88
|
+
'embedding']})),
|
86
89
|
|
87
90
|
selected_tools=(List[Literal[tuple(selected_tools)]],
|
88
91
|
Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
alita_sdk/tools/elitea_base.py
CHANGED
@@ -118,7 +118,7 @@ BaseIndexDataParams = create_model(
|
|
118
118
|
description="Optional step size for progress reporting during indexing")),
|
119
119
|
clean_index=(Optional[bool], Field(default=False,
|
120
120
|
description="Optional flag to enforce clean existing index before indexing new data")),
|
121
|
-
chunking_tool=(Literal[
|
121
|
+
chunking_tool=(Literal[None,'markdown', 'statistical', 'proposal'], Field(description="Name of chunking tool", default=None)),
|
122
122
|
chunking_config=(Optional[dict], Field(description="Chunking tool configuration", default_factory=dict)),
|
123
123
|
)
|
124
124
|
|
@@ -6,6 +6,7 @@ from pydantic import BaseModel, ConfigDict, Field, create_model, SecretStr
|
|
6
6
|
from ..base.tool import BaseAction
|
7
7
|
from .api_wrapper import FigmaApiWrapper, GLOBAL_LIMIT
|
8
8
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length
|
9
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
9
10
|
from ...configurations.pgvector import PgVectorConfiguration
|
10
11
|
|
11
12
|
name = "figma"
|
@@ -58,8 +59,9 @@ class FigmaToolkit(BaseToolkit):
|
|
58
59
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
59
60
|
|
60
61
|
# embedder settings
|
61
|
-
|
62
|
-
|
62
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
63
|
+
json_schema_extra={'configuration_types': [
|
64
|
+
'embedding']})),
|
63
65
|
__config__=ConfigDict(
|
64
66
|
json_schema_extra={
|
65
67
|
"metadata": {
|
@@ -7,6 +7,7 @@ from .api_wrapper import AlitaGitHubAPIWrapper
|
|
7
7
|
from .tool import GitHubAction
|
8
8
|
|
9
9
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length
|
10
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
10
11
|
from ...configurations.github import GithubConfiguration
|
11
12
|
from ...configurations.pgvector import PgVectorConfiguration
|
12
13
|
|
@@ -66,9 +67,10 @@ class AlitaGitHubToolkit(BaseToolkit):
|
|
66
67
|
'max_toolkit_length': AlitaGitHubToolkit.toolkit_max_length})),
|
67
68
|
active_branch=(Optional[str], Field(description="Active branch", default="main")),
|
68
69
|
base_branch=(Optional[str], Field(description="Github Base branch", default="main")),
|
69
|
-
#
|
70
|
-
|
71
|
-
|
70
|
+
# embedder settings
|
71
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
72
|
+
json_schema_extra={'configuration_types': [
|
73
|
+
'embedding']})),
|
72
74
|
selected_tools=(List[Literal[tuple(selected_tools)]],
|
73
75
|
Field(default=[], json_schema_extra={'args_schemas': selected_tools}))
|
74
76
|
)
|
@@ -8,6 +8,7 @@ from pydantic.fields import Field
|
|
8
8
|
|
9
9
|
from .api_wrapper import GitLabAPIWrapper
|
10
10
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length
|
11
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
11
12
|
from ...configurations.gitlab import GitlabConfiguration
|
12
13
|
from ...configurations.pgvector import PgVectorConfiguration
|
13
14
|
|
@@ -51,8 +52,9 @@ class AlitaGitlabToolkit(BaseToolkit):
|
|
51
52
|
# indexer settings
|
52
53
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
53
54
|
# embedder settings
|
54
|
-
|
55
|
-
|
55
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
56
|
+
json_schema_extra={'configuration_types': [
|
57
|
+
'embedding']})),
|
56
58
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
57
59
|
__config__=ConfigDict(json_schema_extra={
|
58
60
|
'metadata': {
|
alita_sdk/tools/jira/__init__.py
CHANGED
@@ -6,6 +6,7 @@ from pydantic import create_model, BaseModel, ConfigDict, Field
|
|
6
6
|
import requests
|
7
7
|
|
8
8
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, parse_list, check_connection_response
|
9
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
9
10
|
from ...configurations.jira import JiraConfiguration
|
10
11
|
from ...configurations.pgvector import PgVectorConfiguration
|
11
12
|
|
@@ -86,8 +87,9 @@ class JiraToolkit(BaseToolkit):
|
|
86
87
|
jira_configuration=(Optional[JiraConfiguration], Field(description="Jira Configuration", json_schema_extra={'configuration_types': ['jira']})),
|
87
88
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
88
89
|
# embedder settings
|
89
|
-
|
90
|
-
|
90
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
91
|
+
json_schema_extra={'configuration_types': [
|
92
|
+
'embedding']})),
|
91
93
|
|
92
94
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
93
95
|
__config__=ConfigDict(json_schema_extra={
|
@@ -7,6 +7,7 @@ import requests
|
|
7
7
|
from .api_wrapper import TestrailAPIWrapper
|
8
8
|
from ..base.tool import BaseAction
|
9
9
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, check_connection_response
|
10
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
10
11
|
from ...configurations.testrail import TestRailConfiguration
|
11
12
|
from ...configurations.pgvector import PgVectorConfiguration
|
12
13
|
|
@@ -39,22 +40,13 @@ class TestrailToolkit(BaseToolkit):
|
|
39
40
|
TestrailToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
|
40
41
|
m = create_model(
|
41
42
|
name,
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
description="Testrail URL",
|
46
|
-
json_schema_extra={
|
47
|
-
"max_length": TestrailToolkit.toolkit_max_length,
|
48
|
-
"configuration": True,
|
49
|
-
"configuration_title": True
|
50
|
-
}
|
51
|
-
)
|
52
|
-
),
|
43
|
+
name=(str, Field(description="Toolkit name", json_schema_extra={
|
44
|
+
'toolkit_name': True,
|
45
|
+
"max_length": TestrailToolkit.toolkit_max_length})),
|
53
46
|
testrail_configuration=(Optional[TestRailConfiguration], Field(description="TestRail Configuration", json_schema_extra={'configuration_types': ['testrail']})),
|
54
47
|
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration", json_schema_extra={'configuration_types': ['pgvector']})),
|
55
48
|
# embedder settings
|
56
|
-
|
57
|
-
embedding_model_params=(dict, Field(description="Embedding model parameters: i.e. `{'model_name': 'sentence-transformers/all-MiniLM-L6-v2'}", default={"model_name": "sentence-transformers/all-MiniLM-L6-v2"})),
|
49
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.", json_schema_extra={'configuration_types': ['embedding']})),
|
58
50
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
59
51
|
__config__=ConfigDict(json_schema_extra={'metadata':
|
60
52
|
{"label": "Testrail", "icon_url": "testrail-icon.svg",
|
@@ -78,9 +78,9 @@ def parse_file_content(file_name=None, file_content=None, is_capture_image: bool
|
|
78
78
|
|
79
79
|
loader_object = loaders_map.get(extension)
|
80
80
|
if not loader_object:
|
81
|
-
|
82
|
-
|
83
|
-
|
81
|
+
logger.warning(f"No loader found for file extension: {extension}. File: {file_path if file_path else file_name}")
|
82
|
+
return ToolException(
|
83
|
+
"Not supported type of files entered. Supported types are TXT, DOCX, PDF, PPTX, XLSX and XLS only.")
|
84
84
|
loader_kwargs = loader_object['kwargs']
|
85
85
|
loader_kwargs.update({
|
86
86
|
"file_path": file_path,
|
alita_sdk/tools/xray/__init__.py
CHANGED
@@ -8,6 +8,8 @@ from pydantic import create_model, BaseModel, Field, SecretStr
|
|
8
8
|
from .api_wrapper import XrayApiWrapper
|
9
9
|
from ..base.tool import BaseAction
|
10
10
|
from ..utils import clean_string, get_max_toolkit_length, TOOLKIT_SPLITTER
|
11
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
12
|
+
from ...configurations.pgvector import PgVectorConfiguration
|
11
13
|
|
12
14
|
name = "xray_cloud"
|
13
15
|
|
@@ -46,14 +48,13 @@ class XrayToolkit(BaseToolkit):
|
|
46
48
|
client_secret=(SecretStr, Field(description="Client secret", json_schema_extra={'secret': True})),
|
47
49
|
limit=(Optional[int], Field(description="Limit", default=100)),
|
48
50
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
json_schema_extra={'secret': True})),
|
53
|
-
|
51
|
+
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration",
|
52
|
+
json_schema_extra={
|
53
|
+
'configuration_types': ['pgvector']})),
|
54
54
|
# embedder settings
|
55
|
-
|
56
|
-
|
55
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
56
|
+
json_schema_extra={'configuration_types': [
|
57
|
+
'embedding']})),
|
57
58
|
|
58
59
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
59
60
|
__config__={'json_schema_extra':
|
@@ -5,6 +5,8 @@ from typing import List, Literal, Optional
|
|
5
5
|
from .api_wrapper import ZephyrApiWrapper
|
6
6
|
from ..base.tool import BaseAction
|
7
7
|
from ..utils import clean_string, get_max_toolkit_length, TOOLKIT_SPLITTER
|
8
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
9
|
+
from ...configurations.pgvector import PgVectorConfiguration
|
8
10
|
|
9
11
|
name = "zephyr_enterprise"
|
10
12
|
|
@@ -37,14 +39,13 @@ class ZephyrEnterpriseToolkit(BaseToolkit):
|
|
37
39
|
name,
|
38
40
|
base_url=(str, Field(description="Zephyr Enterprise base URL", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': ZephyrEnterpriseToolkit.toolkit_max_length })),
|
39
41
|
token=(SecretStr, Field(description="API token", json_schema_extra={'secret': True})),
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
json_schema_extra={'secret': True})),
|
44
|
-
|
42
|
+
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration",
|
43
|
+
json_schema_extra={
|
44
|
+
'configuration_types': ['pgvector']})),
|
45
45
|
# embedder settings
|
46
|
-
|
47
|
-
|
46
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
47
|
+
json_schema_extra={'configuration_types': [
|
48
|
+
'embedding']})),
|
48
49
|
selected_tools=(List[Literal[tuple(selected_tools)]], []),
|
49
50
|
__config__=ConfigDict(json_schema_extra={
|
50
51
|
'metadata': {
|
@@ -6,6 +6,8 @@ from pydantic import create_model, BaseModel, Field, SecretStr
|
|
6
6
|
from .api_wrapper import ZephyrEssentialApiWrapper
|
7
7
|
from ..base.tool import BaseAction
|
8
8
|
from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length
|
9
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
10
|
+
from ...configurations.pgvector import PgVectorConfiguration
|
9
11
|
|
10
12
|
name = "zephyr_essential"
|
11
13
|
|
@@ -37,14 +39,13 @@ class ZephyrEssentialToolkit(BaseToolkit):
|
|
37
39
|
token=(str, Field(description="Bearer api token")),
|
38
40
|
base_url=(Optional[str], Field(description="Zephyr Essential base url", default=None)),
|
39
41
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
json_schema_extra={'secret': True})),
|
44
|
-
|
42
|
+
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration",
|
43
|
+
json_schema_extra={
|
44
|
+
'configuration_types': ['pgvector']})),
|
45
45
|
# embedder settings
|
46
|
-
|
47
|
-
|
46
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
47
|
+
json_schema_extra={'configuration_types': [
|
48
|
+
'embedding']})),
|
48
49
|
__config__={'json_schema_extra': {'metadata': {"label": "Zephyr Essential", "icon_url": "zephyr.svg",
|
49
50
|
"categories": ["test management"],
|
50
51
|
"extra_categories": ["test automation", "test case management", "test planning"]
|
@@ -7,6 +7,8 @@ from pydantic import create_model, BaseModel, Field, SecretStr
|
|
7
7
|
from .api_wrapper import ZephyrScaleApiWrapper
|
8
8
|
from ..base.tool import BaseAction
|
9
9
|
from ..utils import clean_string, get_max_toolkit_length, TOOLKIT_SPLITTER
|
10
|
+
from ...configurations.embedding import EmbeddingConfiguration
|
11
|
+
from ...configurations.pgvector import PgVectorConfiguration
|
10
12
|
|
11
13
|
name = "zephyr_scale"
|
12
14
|
|
@@ -41,6 +43,13 @@ class ZephyrScaleToolkit(BaseToolkit):
|
|
41
43
|
password=(Optional[SecretStr], Field(default=None, description="Password", json_schema_extra={'secret': True})),
|
42
44
|
cookies=(Optional[str], Field(default=None, description="Cookies", json_schema_extra={'secret': True})),
|
43
45
|
max_results=(int, Field(default=100, description="Results count to show")),
|
46
|
+
pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector Configuration",
|
47
|
+
json_schema_extra={
|
48
|
+
'configuration_types': ['pgvector']})),
|
49
|
+
# embedder settings
|
50
|
+
embedding_configuration=(Optional[EmbeddingConfiguration], Field(description="Embedding configuration.",
|
51
|
+
json_schema_extra={'configuration_types': [
|
52
|
+
'embedding']})),
|
44
53
|
selected_tools=(List[Literal[tuple(selected_tools)]],
|
45
54
|
Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
46
55
|
__config__={
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: alita_sdk
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.235
|
4
4
|
Summary: SDK for building langchain agents using resources from Alita
|
5
5
|
Author-email: Artem Rozumenko <artyom.rozumenko@gmail.com>, Mikalai Biazruchka <mikalai_biazruchka@epam.com>, Roman Mitusov <roman_mitusov@epam.com>, Ivan Krakhmaliuk <lifedjik@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
|
6
6
|
License-Expression: Apache-2.0
|
@@ -8,6 +8,7 @@ alita_sdk/configurations/bigquery.py,sha256=NlyfUm7jMmiDcPSbpHhrpYy7wgbSTdP_cdti
|
|
8
8
|
alita_sdk/configurations/bitbucket.py,sha256=wSmvFwGuiSTaRg4DTSVJNrj1J_6VlY2Tci3s28mXfPk,1156
|
9
9
|
alita_sdk/configurations/confluence.py,sha256=LFFjhp0whiWcAN-2DnOVSUnQmjURBmV4C4iDyKs7vys,1423
|
10
10
|
alita_sdk/configurations/delta_lake.py,sha256=MTVsX6stX6D1uEfFMgbb3fYBJRqCrB6cktfUKc9S9ho,1101
|
11
|
+
alita_sdk/configurations/embedding.py,sha256=mKQRFqYFKfo1MUYUC7Arqv65q4ppCVbDN0Lf4A7ib4Q,781
|
11
12
|
alita_sdk/configurations/github.py,sha256=GSj6sA4f6SfW0ZpoHXKi5FzbPDC6wE1AlscwWqIPj14,1832
|
12
13
|
alita_sdk/configurations/gitlab.py,sha256=zCI4RDZ3UZFLMWPcAYwuGosUbb-piTwtQjuY4QCJWBk,1031
|
13
14
|
alita_sdk/configurations/jira.py,sha256=B44oNZtt2ECL0QUcFpO2NpDEACn0jl46j7aWhpd2P1s,1331
|
@@ -16,11 +17,11 @@ alita_sdk/configurations/postman.py,sha256=srup-SaimnSHO8UW1jr05sfUBqd_zKdVc5hs4
|
|
16
17
|
alita_sdk/configurations/qtest.py,sha256=u1kkhOJJ-oT5YsjAO8pS5F6pLdQV0yiZzcPf9qazMaE,639
|
17
18
|
alita_sdk/configurations/service_now.py,sha256=na3gBBBLFNBbsk-AW08h8dd60HC5UvNSlxWwc_6w1U4,1141
|
18
19
|
alita_sdk/configurations/slack.py,sha256=l4D_rYgRsKak6Kx7l0WoxCzWaWf1---FlKY6y2ZWGYk,1252
|
19
|
-
alita_sdk/configurations/testrail.py,sha256=
|
20
|
+
alita_sdk/configurations/testrail.py,sha256=k0fPmHBIrWAfEKhrDdB9Rdirw-UFHFoXkRePyrsqcWI,725
|
20
21
|
alita_sdk/runtime/__init__.py,sha256=4W0UF-nl3QF2bvET5lnah4o24CoTwSoKXhuN0YnwvEE,828
|
21
22
|
alita_sdk/runtime/clients/__init__.py,sha256=BdehU5GBztN1Qi1Wul0cqlU46FxUfMnI6Vq2Zd_oq1M,296
|
22
23
|
alita_sdk/runtime/clients/artifact.py,sha256=H3pJAh5G-zWVyJ6YbqHGk4jA8U6HfacQduiTivpJZ3Y,3210
|
23
|
-
alita_sdk/runtime/clients/client.py,sha256=
|
24
|
+
alita_sdk/runtime/clients/client.py,sha256=X9-xCPhp5NimIkpRwdaueQ6Iwh9U_JrAHHe8Ja73UCI,42625
|
24
25
|
alita_sdk/runtime/clients/datasource.py,sha256=HAZovoQN9jBg0_-lIlGBQzb4FJdczPhkHehAiVG3Wx0,1020
|
25
26
|
alita_sdk/runtime/clients/prompt.py,sha256=li1RG9eBwgNK_Qf0qUaZ8QNTmsncFrAL2pv3kbxZRZg,1447
|
26
27
|
alita_sdk/runtime/langchain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -111,17 +112,17 @@ alita_sdk/runtime/utils/streamlit.py,sha256=ZgHpibL2ARHt6qrWj5JhK6HNZv2UjxQ04qTk
|
|
111
112
|
alita_sdk/runtime/utils/toolkit_runtime.py,sha256=MU63Fpxj0b5_r1IUUc0Q3-PN9VwL7rUxp2MRR4tmYR8,5136
|
112
113
|
alita_sdk/runtime/utils/toolkit_utils.py,sha256=I9QFqnaqfVgN26LUr6s3XlBlG6y0CoHURnCzG7XcwVs,5311
|
113
114
|
alita_sdk/runtime/utils/utils.py,sha256=CpEl3LCeLbhzQySz08lkKPm7Auac6IiLF7WB8wmArMI,589
|
114
|
-
alita_sdk/tools/__init__.py,sha256=
|
115
|
-
alita_sdk/tools/elitea_base.py,sha256=
|
115
|
+
alita_sdk/tools/__init__.py,sha256=ko5TToGYZFmBrho26DRAVvrkHWxQ2sfs8gVAASinYp8,10611
|
116
|
+
alita_sdk/tools/elitea_base.py,sha256=PW4so3vZsVlSzGTuCR-_LkWR9P-zuw7UsTGETtdTUxc,30304
|
116
117
|
alita_sdk/tools/ado/__init__.py,sha256=j4lt6MLWlpkIIVkHmAyVG3i_qQeQ3ZmL_g8BfMhVhVI,1289
|
117
118
|
alita_sdk/tools/ado/utils.py,sha256=PTCludvaQmPLakF2EbCGy66Mro4-rjDtavVP-xcB2Wc,1252
|
118
|
-
alita_sdk/tools/ado/repos/__init__.py,sha256=
|
119
|
+
alita_sdk/tools/ado/repos/__init__.py,sha256=mZqU0-9Yyw7HOt61980ndl3yPJ00Ihw2UlvWawheONU,5987
|
119
120
|
alita_sdk/tools/ado/repos/repos_wrapper.py,sha256=nPVsS10Se52yHmZ_YXVGywCSaYLlBEYBTBlhBcDJr80,50143
|
120
|
-
alita_sdk/tools/ado/test_plan/__init__.py,sha256=
|
121
|
+
alita_sdk/tools/ado/test_plan/__init__.py,sha256=1_Q8-utQ-Ii85BpS1vkwHOcb4Ts1WXLyb8zaz48eoOs,5392
|
121
122
|
alita_sdk/tools/ado/test_plan/test_plan_wrapper.py,sha256=jQt8kFmdAzsopjByLTMiSnWtoqz_IUOmYkhPTVGeMnU,20265
|
122
|
-
alita_sdk/tools/ado/wiki/__init__.py,sha256=
|
123
|
+
alita_sdk/tools/ado/wiki/__init__.py,sha256=K6Au92gFl2_NuxhFF_VaplzdEI3_oIZ3XwHcXod_giE,5321
|
123
124
|
alita_sdk/tools/ado/wiki/ado_wrapper.py,sha256=zg6wMRar1DTp-ZRlYaQifBEnpYmTrHXskTNPdrLdy8s,14759
|
124
|
-
alita_sdk/tools/ado/work_item/__init__.py,sha256=
|
125
|
+
alita_sdk/tools/ado/work_item/__init__.py,sha256=1rvgE-i4UtdYxNvgIhCZoqgjcjDTXRo2Y48zmLy6KJg,5456
|
125
126
|
alita_sdk/tools/ado/work_item/ado_wrapper.py,sha256=ubeF2m8J6CGZF_gnkTEbmW_eh6YWsk7bD2clu9FmZpY,28313
|
126
127
|
alita_sdk/tools/advanced_jira_mining/__init__.py,sha256=pUTzECqGvYaR5qWY3JPUhrImrZgc7pCXuqSe5eWIE80,4604
|
127
128
|
alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py,sha256=nZPtuwVWp8VeHw1B8q9kdwf-6ZvHnlXTOGdcIMDkKpw,44211
|
@@ -135,7 +136,7 @@ alita_sdk/tools/azure_ai/search/__init__.py,sha256=FVWNSW4LlOXKt34fVUgXut5oZcok9
|
|
135
136
|
alita_sdk/tools/azure_ai/search/api_wrapper.py,sha256=E4p6HPDlwgxfT_i6cvg9rN4Vn_47CVAyNBAKLIGq3mU,7265
|
136
137
|
alita_sdk/tools/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
137
138
|
alita_sdk/tools/base/tool.py,sha256=-N27AodZS49vdPCgFkU-bFS9bxoPopZBnNrmwInx3d0,864
|
138
|
-
alita_sdk/tools/bitbucket/__init__.py,sha256=
|
139
|
+
alita_sdk/tools/bitbucket/__init__.py,sha256=W44kX-zEFVJNhrXfa8YsRnByR9vnFZ3EbQ1IMwLsrGQ,5622
|
139
140
|
alita_sdk/tools/bitbucket/api_wrapper.py,sha256=OU55KjtFalYIZ4ioeBck0zjqTewB6BdwQuAS3Kud4R0,10847
|
140
141
|
alita_sdk/tools/bitbucket/bitbucket_constants.py,sha256=UsbhQ1iEvrKoxceTFPWTYhaXS1zSxbmjs1TwY0-P4gw,462
|
141
142
|
alita_sdk/tools/bitbucket/cloud_api_wrapper.py,sha256=VELi65tLXvszwCGQSqVfyVal0ylx9DgAmAGpRQL_Zkg,15522
|
@@ -203,7 +204,7 @@ alita_sdk/tools/code/linter/api_wrapper.py,sha256=wylpwhAw02Jt8L18CqBq2He5PbwIkx
|
|
203
204
|
alita_sdk/tools/code/loaders/codesearcher.py,sha256=XoXXZtIQZhvjIwZlnl_4wVGHC-3saYzFo5oDR_Zh3EY,529
|
204
205
|
alita_sdk/tools/code/sonar/__init__.py,sha256=u8wpgXJ_shToLl3G9-XEtGDor5dhmsnurIImh1-e-U0,3165
|
205
206
|
alita_sdk/tools/code/sonar/api_wrapper.py,sha256=nNqxcWN_6W8c0ckj-Er9HkNuAdgQLoWBXh5UyzNutis,2653
|
206
|
-
alita_sdk/tools/confluence/__init__.py,sha256=
|
207
|
+
alita_sdk/tools/confluence/__init__.py,sha256=TjG_Zi-Xf_SdJf3135p5VFf6-iMzJ9BMM_giu7PBftE,7319
|
207
208
|
alita_sdk/tools/confluence/api_wrapper.py,sha256=4WqjVeFWyFeb4-VD5v4_J69pbyjire4Op7cBSKU9EXw,85057
|
208
209
|
alita_sdk/tools/confluence/loader.py,sha256=4bf5qrJMEiJzuZp2NlxO2XObLD1w7fxss_WyMUpe8sg,9290
|
209
210
|
alita_sdk/tools/confluence/utils.py,sha256=Lxo6dBD0OlvM4o0JuK6qeB_4LV9BptiwJA9e1vqNcDw,435
|
@@ -211,16 +212,16 @@ alita_sdk/tools/custom_open_api/__init__.py,sha256=9aT5SPNPWcJC6jMZEM-3rUCXVULj_
|
|
211
212
|
alita_sdk/tools/custom_open_api/api_wrapper.py,sha256=sDSFpvEqpSvXHGiBISdQQcUecfO3md-_F8hAi6p2dvg,4340
|
212
213
|
alita_sdk/tools/elastic/__init__.py,sha256=iwnSRppRpzvJ1da2K3Glu8Uu41MhBDCYbguboLkEbW0,2818
|
213
214
|
alita_sdk/tools/elastic/api_wrapper.py,sha256=pl8CqQxteJAGwyOhMcld-ZgtOTFwwbv42OITQVe8rM0,1948
|
214
|
-
alita_sdk/tools/figma/__init__.py,sha256=
|
215
|
+
alita_sdk/tools/figma/__init__.py,sha256=B6oDmoSFxONa_74qSbdLCw_Su00KLcEMr7fH-OwZ3sE,5351
|
215
216
|
alita_sdk/tools/figma/api_wrapper.py,sha256=Rtgt9FvR8VD0oPdYhlgvVyXLVqLTjtiOPTlwNeaV80w,20560
|
216
|
-
alita_sdk/tools/github/__init__.py,sha256=
|
217
|
+
alita_sdk/tools/github/__init__.py,sha256=IZwU7CCs8be4zwK1AVbv13N38cnLkzjxCH0wiCugkyY,5384
|
217
218
|
alita_sdk/tools/github/api_wrapper.py,sha256=uDwYckdnpYRJtb0uZnDkaz2udvdDLVxuCh1tSwspsiU,8411
|
218
219
|
alita_sdk/tools/github/github_client.py,sha256=nxnSXsDul2PPbWvYZS8TmAFFmR-5ALyakNoV5LN2D4U,86617
|
219
220
|
alita_sdk/tools/github/graphql_client_wrapper.py,sha256=d3AGjzLGH_hdQV2V8HeAX92dJ4dlnE5OXqUlCO_PBr0,71539
|
220
221
|
alita_sdk/tools/github/schemas.py,sha256=yFsqivfjCPRk9GxFJrL8sTz6nnjFCZ0j5DIfPtGSsvA,13852
|
221
222
|
alita_sdk/tools/github/tool.py,sha256=Jnnv5lenV5ds8AAdyo2m8hSzyJ117HZBjzHC6T1ck-M,1037
|
222
223
|
alita_sdk/tools/github/tool_prompts.py,sha256=y6ZW_FpUCE87Uop3WuQAZVRnzxO5t7xjBOI5bCqiluw,30194
|
223
|
-
alita_sdk/tools/gitlab/__init__.py,sha256=
|
224
|
+
alita_sdk/tools/gitlab/__init__.py,sha256=FkmYj2EQLTSwpTmEbTIKRonZ-cfJC0HJDRX8P0aYYlY,5162
|
224
225
|
alita_sdk/tools/gitlab/api_wrapper.py,sha256=KYCRO2pF8EPTLhWuEj64XsHPCYSucsf8S3R_ofJttrA,22301
|
225
226
|
alita_sdk/tools/gitlab/tools.py,sha256=vOGTlSaGaFmWn6LS6YFP-FuTqUPun9vnv1VrUcUHAZQ,16500
|
226
227
|
alita_sdk/tools/gitlab/utils.py,sha256=Z2XiqIg54ouqqt1to-geFybmkCb1I6bpE91wfnINH1I,2320
|
@@ -236,7 +237,7 @@ alita_sdk/tools/google/bigquery/schemas.py,sha256=Gb8KQZSoRkmjXiz21dTC95c1MHEHFc
|
|
236
237
|
alita_sdk/tools/google/bigquery/tool.py,sha256=Esf9Hsp8I0e7-5EdkFqQ-bid0cfrg-bfSoHoW_IIARo,1027
|
237
238
|
alita_sdk/tools/google_places/__init__.py,sha256=mHKc7u9P2gqGDzqqJNQC9qiZYEm5gncnM_1XjtrM17o,3152
|
238
239
|
alita_sdk/tools/google_places/api_wrapper.py,sha256=7nZly6nk4f4Tm7s2MVdnnwlb-1_WHRrDhyjDiqoyPjA,4674
|
239
|
-
alita_sdk/tools/jira/__init__.py,sha256=
|
240
|
+
alita_sdk/tools/jira/__init__.py,sha256=LQlU_PeoE2tUxWxq6ce8BduZfF6pdRJ60pOXYwK4m7Y,6962
|
240
241
|
alita_sdk/tools/jira/api_wrapper.py,sha256=gZXEtOZtWvINHipHPj8Dg6uNyYKZariLo4Bs3_wLJrA,75932
|
241
242
|
alita_sdk/tools/keycloak/__init__.py,sha256=0WB9yXMUUAHQRni1ghDEmd7GYa7aJPsTVlZgMCM9cQ0,3050
|
242
243
|
alita_sdk/tools/keycloak/api_wrapper.py,sha256=cOGr0f3S3-c6tRDBWI8wMnetjoNSxiV5rvC_0VHb8uw,3100
|
@@ -300,13 +301,13 @@ alita_sdk/tools/sql/api_wrapper.py,sha256=Rky0_CX9HWDQ2mClHGAgP3LHjYVX4iymPuilZM
|
|
300
301
|
alita_sdk/tools/sql/models.py,sha256=AKJgSl_kEEz4fZfw3kbvdGHXaRZ-yiaqfJOB6YOj3i0,641
|
301
302
|
alita_sdk/tools/testio/__init__.py,sha256=qi12wyJXN02hrUXg08CbijcCL5pi30JMbJfiXjn1Zr0,2646
|
302
303
|
alita_sdk/tools/testio/api_wrapper.py,sha256=BvmL5h634BzG6p7ajnQLmj-uoAw1gjWnd4FHHu1h--Q,21638
|
303
|
-
alita_sdk/tools/testrail/__init__.py,sha256=
|
304
|
+
alita_sdk/tools/testrail/__init__.py,sha256=H3vLFaVtXzhuhFMjldmDykrlLC-njXIDlrudhcBCJcc,4643
|
304
305
|
alita_sdk/tools/testrail/api_wrapper.py,sha256=Aax0jspgidXYNxLIw6qTWu3dO2JOIS0ALIqsCzQuFbQ,32087
|
305
306
|
alita_sdk/tools/utils/__init__.py,sha256=155xepXPr4OEzs2Mz5YnjXcBpxSv1X2eznRUVoPtyK0,3268
|
306
|
-
alita_sdk/tools/utils/content_parser.py,sha256=
|
307
|
+
alita_sdk/tools/utils/content_parser.py,sha256=Azm-eUr_hOc55BxdQVxMNpWQTLOQjoAq-fyiuOXhrO0,7264
|
307
308
|
alita_sdk/tools/vector_adapters/VectorStoreAdapter.py,sha256=a6FAsiix_EvATIKUf5YT6vHh5LDyJ5uSP3LJqoxFo04,17367
|
308
309
|
alita_sdk/tools/vector_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
309
|
-
alita_sdk/tools/xray/__init__.py,sha256=
|
310
|
+
alita_sdk/tools/xray/__init__.py,sha256=g8f1JoNwbYEIs35l6o7t-9mctCjkaiLJMYmaLVbOqxU,4447
|
310
311
|
alita_sdk/tools/xray/api_wrapper.py,sha256=A8PJmY2k7TowaD_vk6ZxkMnSUoZUt9A6g4TJrZfNTAw,32225
|
311
312
|
alita_sdk/tools/yagmail/__init__.py,sha256=c4Qn3em0tLxzRmFKpzbBgY9W2EnOoKf0azoDJHng5CY,2208
|
312
313
|
alita_sdk/tools/yagmail/yagmail_wrapper.py,sha256=SKoGVd1X4Ew3ad5tOdtPoY00M6jStNdT3q7GXEjQc5g,1952
|
@@ -314,19 +315,19 @@ alita_sdk/tools/zephyr/Zephyr.py,sha256=ODZbg9Aw0H0Rbv-HcDXLI4KHbPiLDHoteDofshw9
|
|
314
315
|
alita_sdk/tools/zephyr/__init__.py,sha256=8B2Ibz5QTmB5WkV0q8Sq4kuj92FFaFWZLrT877zRRLg,2897
|
315
316
|
alita_sdk/tools/zephyr/api_wrapper.py,sha256=lJCYPG03ej0qgdpLflnS7LFB4HSAfGzIvTjAJt07CQs,6244
|
316
317
|
alita_sdk/tools/zephyr/rest_client.py,sha256=7vSD3oYIX-3KbAFed-mphSQif_VRuXrq5O07ryNQ7Pk,6208
|
317
|
-
alita_sdk/tools/zephyr_enterprise/__init__.py,sha256=
|
318
|
+
alita_sdk/tools/zephyr_enterprise/__init__.py,sha256=CsTiwTwIlDVFO3ouE0P6tWr2x5clvVXy7IoGvVXOQL0,4001
|
318
319
|
alita_sdk/tools/zephyr_enterprise/api_wrapper.py,sha256=p9EpkO5tif3JJzprz2_VuLsQ1yET7TwwBfPOKJGwt9c,11215
|
319
320
|
alita_sdk/tools/zephyr_enterprise/zephyr_enterprise.py,sha256=hV9LIrYfJT6oYp-ZfQR0YHflqBFPsUw2Oc55HwK0H48,6809
|
320
|
-
alita_sdk/tools/zephyr_essential/__init__.py,sha256
|
321
|
+
alita_sdk/tools/zephyr_essential/__init__.py,sha256=Ws3KVjU5MPZzqfeKmnn-m1p7_TqaCrJMpDYyY5olpH0,3744
|
321
322
|
alita_sdk/tools/zephyr_essential/api_wrapper.py,sha256=TpNov35XPgjM9eymCEFqv22mbpdVvLMBTb9WVqUcvNA,36795
|
322
323
|
alita_sdk/tools/zephyr_essential/client.py,sha256=bfNcUKNqj9MFWTludGbbqD4qZlxrBaC2JtWsCfZMqSY,9722
|
323
|
-
alita_sdk/tools/zephyr_scale/__init__.py,sha256=
|
324
|
+
alita_sdk/tools/zephyr_scale/__init__.py,sha256=bk7u0JbVf3FLyhvp3IYfMX_lvpQQaT-DQE8085P23J8,5391
|
324
325
|
alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=JAeWf-RXohsxheUpT0iMDClc_izj-zxMwafXCW4jtC0,78015
|
325
326
|
alita_sdk/tools/zephyr_squad/__init__.py,sha256=0AI_j27xVO5Gk5HQMFrqPTd4uvuVTpiZUicBrdfEpKg,2796
|
326
327
|
alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=kmw_xol8YIYFplBLWTqP_VKPRhL_1ItDD0_vXTe_UuI,14906
|
327
328
|
alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=R371waHsms4sllHCbijKYs90C-9Yu0sSR3N4SUfQOgU,5066
|
328
|
-
alita_sdk-0.3.
|
329
|
-
alita_sdk-0.3.
|
330
|
-
alita_sdk-0.3.
|
331
|
-
alita_sdk-0.3.
|
332
|
-
alita_sdk-0.3.
|
329
|
+
alita_sdk-0.3.235.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
330
|
+
alita_sdk-0.3.235.dist-info/METADATA,sha256=7_FPq7ypcRFMlmIGX072cg_pvaIwAqy--yLeipG3S7s,18896
|
331
|
+
alita_sdk-0.3.235.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
332
|
+
alita_sdk-0.3.235.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
|
333
|
+
alita_sdk-0.3.235.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|