alita-sdk 0.3.145__py3-none-any.whl → 0.3.147__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/runtime/tools/function.py +0 -2
- alita_sdk/runtime/tools/indexer_tool.py +4 -2
- alita_sdk/tools/ado/repos/__init__.py +3 -1
- alita_sdk/tools/ado/test_plan/__init__.py +2 -0
- alita_sdk/tools/ado/wiki/__init__.py +17 -15
- alita_sdk/tools/ado/work_item/__init__.py +4 -1
- alita_sdk/tools/advanced_jira_mining/__init__.py +10 -1
- alita_sdk/tools/azure_ai/search/__init__.py +7 -1
- alita_sdk/tools/bitbucket/__init__.py +9 -1
- alita_sdk/tools/browser/__init__.py +1 -1
- alita_sdk/tools/carrier/__init__.py +2 -4
- alita_sdk/tools/cloud/aws/__init__.py +10 -1
- alita_sdk/tools/code/linter/__init__.py +5 -1
- alita_sdk/tools/code/sonar/__init__.py +11 -2
- alita_sdk/tools/confluence/__init__.py +3 -1
- alita_sdk/tools/custom_open_api/__init__.py +4 -1
- alita_sdk/tools/elastic/__init__.py +2 -1
- alita_sdk/tools/figma/__init__.py +3 -1
- alita_sdk/tools/github/__init__.py +5 -2
- alita_sdk/tools/gitlab/__init__.py +3 -1
- alita_sdk/tools/gitlab_org/__init__.py +3 -1
- alita_sdk/tools/google_places/__init__.py +11 -2
- alita_sdk/tools/jira/__init__.py +4 -2
- alita_sdk/tools/keycloak/__init__.py +3 -2
- alita_sdk/tools/ocr/__init__.py +6 -2
- alita_sdk/tools/pandas/__init__.py +5 -2
- alita_sdk/tools/pptx/__init__.py +5 -2
- alita_sdk/tools/qtest/__init__.py +3 -1
- alita_sdk/tools/rally/__init__.py +4 -2
- alita_sdk/tools/report_portal/__init__.py +3 -1
- alita_sdk/tools/salesforce/__init__.py +5 -1
- alita_sdk/tools/servicenow/__init__.py +3 -1
- alita_sdk/tools/sharepoint/__init__.py +6 -1
- alita_sdk/tools/sql/__init__.py +9 -2
- alita_sdk/tools/testio/__init__.py +3 -1
- alita_sdk/tools/testrail/__init__.py +5 -1
- alita_sdk/tools/xray/__init__.py +9 -1
- alita_sdk/tools/zephyr/__init__.py +10 -2
- alita_sdk/tools/zephyr_enterprise/__init__.py +8 -2
- alita_sdk/tools/zephyr_scale/__init__.py +2 -0
- {alita_sdk-0.3.145.dist-info → alita_sdk-0.3.147.dist-info}/METADATA +218 -30
- {alita_sdk-0.3.145.dist-info → alita_sdk-0.3.147.dist-info}/RECORD +45 -45
- {alita_sdk-0.3.145.dist-info → alita_sdk-0.3.147.dist-info}/WHEEL +0 -0
- {alita_sdk-0.3.145.dist-info → alita_sdk-0.3.147.dist-info}/licenses/LICENSE +0 -0
- {alita_sdk-0.3.145.dist-info → alita_sdk-0.3.147.dist-info}/top_level.txt +0 -0
@@ -7,8 +7,6 @@ from langchain_core.runnables import RunnableConfig
|
|
7
7
|
from langchain_core.tools import BaseTool
|
8
8
|
from typing import Any, Optional, Union, Annotated
|
9
9
|
from langchain_core.utils.function_calling import convert_to_openai_tool
|
10
|
-
from langgraph.prebuilt import InjectedStore
|
11
|
-
from langgraph.store.base import BaseStore
|
12
10
|
from pydantic import ValidationError
|
13
11
|
from ..langchain.utils import propagate_the_input_mapping
|
14
12
|
|
@@ -4,7 +4,7 @@ from traceback import format_exc
|
|
4
4
|
|
5
5
|
from langchain_core.callbacks import dispatch_custom_event
|
6
6
|
from langchain_core.runnables import RunnableConfig
|
7
|
-
from langchain_core.tools import BaseTool
|
7
|
+
from langchain_core.tools import BaseTool, ToolException
|
8
8
|
from typing import Any, Optional, Union
|
9
9
|
from langchain_core.messages import ToolCall
|
10
10
|
from langchain_core.utils.function_calling import convert_to_openai_tool
|
@@ -72,6 +72,8 @@ class IndexerNode(BaseTool):
|
|
72
72
|
logger.error(f"Chunking error: {format_exc()}")
|
73
73
|
return {"messages": [{"role": "assistant", "content": f"""Chunking tool {self.chunking_tool} raised an error.\n\nError: {format_exc()}"""}]}
|
74
74
|
index_results = self.index_tool.invoke({"documents": chunks if chunks else result}, config=config, kwargs=kwargs)
|
75
|
+
if isinstance(index_results, ToolException):
|
76
|
+
raise index_results
|
75
77
|
logger.info(f"IndexNode response: {index_results}")
|
76
78
|
total_time = round((time() - start_time), 2)
|
77
79
|
index_results['total_time'] = total_time
|
@@ -84,7 +86,7 @@ class IndexerNode(BaseTool):
|
|
84
86
|
return {
|
85
87
|
"messages": [{"role": "assistant", "content": f"""Tool input to the {self.tool.name} with value {result} raised ValidationError.
|
86
88
|
\n\nTool schema is {dumps(params)} \n\nand the input to LLM was
|
87
|
-
{func_args}"""}]}
|
89
|
+
{func_args}\n{e}"""}]}
|
88
90
|
|
89
91
|
def _run(self, *args, **kwargs):
|
90
92
|
return self.invoke(**kwargs)
|
@@ -31,22 +31,23 @@ class AzureDevOpsWikiToolkit(BaseToolkit):
|
|
31
31
|
Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
32
32
|
__config__={
|
33
33
|
'json_schema_extra': {
|
34
|
-
'metadata':
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
34
|
+
'metadata': {
|
35
|
+
"label": "ADO wiki",
|
36
|
+
"icon_url": None,
|
37
|
+
"categories": ["documentation"],
|
38
|
+
"extra_categories": ["knowledge base", "documentation management", "wiki"],
|
39
|
+
"sections": {
|
40
|
+
"auth": {
|
41
|
+
"required": True,
|
42
|
+
"subsections": [
|
43
|
+
{
|
44
|
+
"name": "Token",
|
45
|
+
"fields": ["token"]
|
46
|
+
}
|
47
|
+
]
|
48
48
|
}
|
49
49
|
}
|
50
|
+
}
|
50
51
|
}
|
51
52
|
}
|
52
53
|
)
|
@@ -75,4 +76,5 @@ class AzureDevOpsWikiToolkit(BaseToolkit):
|
|
75
76
|
return cls(tools=tools)
|
76
77
|
|
77
78
|
def get_tools(self):
|
78
|
-
return self.tools
|
79
|
+
return self.tools
|
80
|
+
|
@@ -34,6 +34,8 @@ class AzureDevOpsWorkItemsToolkit(BaseToolkit):
|
|
34
34
|
'metadata': {
|
35
35
|
"label": "ADO boards",
|
36
36
|
"icon_url": None,
|
37
|
+
"categories": ["project management"],
|
38
|
+
"extra_categories": ["work item management", "issue tracking", "agile boards"],
|
37
39
|
"sections": {
|
38
40
|
"auth": {
|
39
41
|
"required": True,
|
@@ -75,4 +77,5 @@ class AzureDevOpsWorkItemsToolkit(BaseToolkit):
|
|
75
77
|
return cls(tools=tools)
|
76
78
|
|
77
79
|
def get_tools(self):
|
78
|
-
return self.tools
|
80
|
+
return self.tools
|
81
|
+
|
@@ -46,7 +46,16 @@ class AdvancedJiraMiningToolkit(BaseToolkit):
|
|
46
46
|
is_jira_cloud=(bool, Field(default=True, title="Cloud", description="JIRA Cloud")),
|
47
47
|
verify_ssl=(bool, Field(default=True, title="Verify SSL", description="Verify SSL")),
|
48
48
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
49
|
-
__config__={
|
49
|
+
__config__={
|
50
|
+
'json_schema_extra':
|
51
|
+
{'metadata':
|
52
|
+
{
|
53
|
+
"label": "Advanced JIRA mining", "icon_url": "jira-icon.svg", "hidden": True,
|
54
|
+
"categories": ["project management"],
|
55
|
+
"extra_categories": ["jira", "confluence", "issue tracking", "agile management"],
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
50
59
|
)
|
51
60
|
|
52
61
|
@classmethod
|
@@ -45,7 +45,13 @@ class AzureSearchToolkit(BaseToolkit):
|
|
45
45
|
openai_api_key=(Optional[str], Field(description="Azure OpenAI API Key", default=None, json_schema_extra={'secret': True})),
|
46
46
|
model_name=(str, Field(description="Model name for Embeddings model", default=None)),
|
47
47
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
48
|
-
__config__=ConfigDict(json_schema_extra={
|
48
|
+
__config__=ConfigDict(json_schema_extra={
|
49
|
+
'metadata': {
|
50
|
+
"label": "Azure Search", "icon_url": None, "hidden": True,
|
51
|
+
"categories": ["other"],
|
52
|
+
"extra_categories": ["azure cognitive search", "vector database", "knowledge base"]
|
53
|
+
}
|
54
|
+
})
|
49
55
|
)
|
50
56
|
|
51
57
|
@classmethod
|
@@ -45,7 +45,15 @@ class AlitaBitbucketToolkit(BaseToolkit):
|
|
45
45
|
password=(SecretStr, Field(description="GitLab private token", json_schema_extra={'secret': True})),
|
46
46
|
cloud=(Optional[bool], Field(description="Hosting Option", default=None)),
|
47
47
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
48
|
-
__config__=ConfigDict(json_schema_extra=
|
48
|
+
__config__=ConfigDict(json_schema_extra=
|
49
|
+
{
|
50
|
+
'metadata':
|
51
|
+
{
|
52
|
+
"label": "Bitbucket", "icon_url": "bitbucket-icon.svg",
|
53
|
+
"categories": ["code repositories"],
|
54
|
+
"extra_categories": ["bitbucket", "git", "repository", "code", "version control"],
|
55
|
+
}
|
56
|
+
})
|
49
57
|
)
|
50
58
|
|
51
59
|
@classmethod
|
@@ -50,7 +50,7 @@ class BrowserToolkit(BaseToolkit):
|
|
50
50
|
|
51
51
|
return create_model(
|
52
52
|
name,
|
53
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Browser", "icon_url": None}}),
|
53
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Browser", "icon_url": None, "categories": ["testing"], "extra_categories": ["web scraping", "search", "crawler"]}}),
|
54
54
|
google_cse_id=(Optional[str], Field(description="Google CSE id", default=None)),
|
55
55
|
google_api_key=(Optional[SecretStr],
|
56
56
|
Field(description="Google API key", default=None, json_schema_extra={'secret': True})),
|
@@ -42,10 +42,8 @@ class AlitaCarrierToolkit(BaseToolkit):
|
|
42
42
|
"label": "Carrier",
|
43
43
|
"version": "2.0.1",
|
44
44
|
"icon_url": "carrier.svg",
|
45
|
-
"
|
46
|
-
|
47
|
-
"tool_categories": ["Ticket Management", "Reporting", "Audit Logs"]
|
48
|
-
}
|
45
|
+
"categories": ["testing"],
|
46
|
+
"extra_categories": ["carrier", "ticket management", "log management"],
|
49
47
|
}
|
50
48
|
})
|
51
49
|
)
|
@@ -33,7 +33,16 @@ class AWSToolkit(BaseToolkit):
|
|
33
33
|
access_key_id=(Optional[str], Field(default=None, title="Access Key ID", description="AWS access key ID")),
|
34
34
|
secret_access_key=(Optional[SecretStr], Field(default=None, title="Secret Access Key", description="AWS secret access key", json_schema_extra={'secret': True})),
|
35
35
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
36
|
-
__config__=ConfigDict(json_schema_extra=
|
36
|
+
__config__=ConfigDict(json_schema_extra=
|
37
|
+
{
|
38
|
+
'metadata':
|
39
|
+
{
|
40
|
+
"label": "Cloud AWS", "icon_url": None, "hidden": True,
|
41
|
+
"categories": ["cloud"],
|
42
|
+
"extra_categories": ["aws", "amazon web services", "cloud computing",
|
43
|
+
"infrastructure as a service"]
|
44
|
+
}
|
45
|
+
})
|
37
46
|
)
|
38
47
|
|
39
48
|
@classmethod
|
@@ -27,6 +27,9 @@ class PythonLinterToolkit(BaseToolkit):
|
|
27
27
|
return create_model(
|
28
28
|
name,
|
29
29
|
error_codes=(str, Field(description="Error codes to be used by the linter")),
|
30
|
+
__config__={'json_schema_extra': {'metadata': {"label": "Python Linter", "icon_url": None, "hidden": True,
|
31
|
+
"categories": ["development"],
|
32
|
+
"extra_categories": ["code linter", "python linter"]}}}
|
30
33
|
)
|
31
34
|
|
32
35
|
@classmethod
|
@@ -50,4 +53,5 @@ class PythonLinterToolkit(BaseToolkit):
|
|
50
53
|
return cls(tools=tools)
|
51
54
|
|
52
55
|
def get_tools(self) -> list[BaseTool]:
|
53
|
-
return self.tools
|
56
|
+
return self.tools
|
57
|
+
|
@@ -32,7 +32,15 @@ class SonarToolkit(BaseToolkit):
|
|
32
32
|
sonar_token=(SecretStr, Field(description="SonarQube user token for authentication", json_schema_extra={'secret': True})),
|
33
33
|
sonar_project_name=(str, Field(description="Project name of the desired repository")),
|
34
34
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
35
|
-
__config__=ConfigDict(json_schema_extra=
|
35
|
+
__config__=ConfigDict(json_schema_extra=
|
36
|
+
{
|
37
|
+
'metadata':
|
38
|
+
{
|
39
|
+
"label": "Sonar", "icon_url": "sonar-icon.svg",
|
40
|
+
"categories": ["development"],
|
41
|
+
"extra_categories": ["code quality", "code security", "code coverage", "quality", "sonarqube"]
|
42
|
+
}
|
43
|
+
})
|
36
44
|
)
|
37
45
|
|
38
46
|
@classmethod
|
@@ -55,4 +63,5 @@ class SonarToolkit(BaseToolkit):
|
|
55
63
|
return cls(tools=tools)
|
56
64
|
|
57
65
|
def get_tools(self) -> list[BaseTool]:
|
58
|
-
return self.tools
|
66
|
+
return self.tools
|
67
|
+
|
@@ -30,7 +30,10 @@ class OpenApiToolkit(BaseToolkit):
|
|
30
30
|
spec=(str, Field(default="", title="Specification", description="OpenAPI specification")),
|
31
31
|
api_key=(str, Field(default="", title="API key", description="API key", json_schema_extra={'secret': True})),
|
32
32
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
33
|
-
__config__=ConfigDict(json_schema_extra={'metadata':
|
33
|
+
__config__=ConfigDict(json_schema_extra={'metadata':
|
34
|
+
{"label": "OpenAPI", "icon_url": None,
|
35
|
+
"categories": ["testing"],
|
36
|
+
"extra_categories": [ "openapi", "swagger"]}})
|
34
37
|
)
|
35
38
|
|
36
39
|
@classmethod
|
@@ -71,7 +71,9 @@ class AlitaGitHubToolkit(BaseToolkit):
|
|
71
71
|
}
|
72
72
|
]
|
73
73
|
},
|
74
|
-
}
|
74
|
+
},
|
75
|
+
"categories": ["code repositories"],
|
76
|
+
"extra_categories": ["github", "git", "repository", "code", "version control"],
|
75
77
|
},
|
76
78
|
}
|
77
79
|
),
|
@@ -119,4 +121,5 @@ class AlitaGitHubToolkit(BaseToolkit):
|
|
119
121
|
return cls(tools=tools)
|
120
122
|
|
121
123
|
def get_tools(self):
|
122
|
-
return self.tools
|
124
|
+
return self.tools
|
125
|
+
|
@@ -31,7 +31,16 @@ class GooglePlacesToolkit(BaseToolkit):
|
|
31
31
|
api_key=(SecretStr, Field(description="Google Places API key", json_schema_extra={'secret': True, 'max_toolkit_length': GooglePlacesToolkit.toolkit_max_length})),
|
32
32
|
results_count=(Optional[int], Field(description="Results number to show", default=None)),
|
33
33
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
34
|
-
__config__=ConfigDict(json_schema_extra=
|
34
|
+
__config__=ConfigDict(json_schema_extra=
|
35
|
+
{
|
36
|
+
'metadata':
|
37
|
+
{
|
38
|
+
"label": "Google Places", "icon_url": "gplaces-icon.svg",
|
39
|
+
"categories": ["other"],
|
40
|
+
"extra_categories": ["google", "places", "maps", "location",
|
41
|
+
"geolocation"],
|
42
|
+
}
|
43
|
+
})
|
35
44
|
)
|
36
45
|
|
37
46
|
@classmethod
|
@@ -54,4 +63,4 @@ class GooglePlacesToolkit(BaseToolkit):
|
|
54
63
|
return cls(tools=tools)
|
55
64
|
|
56
65
|
def get_tools(self) -> list[BaseTool]:
|
57
|
-
return self.tools
|
66
|
+
return self.tools
|
alita_sdk/tools/jira/__init__.py
CHANGED
@@ -51,7 +51,7 @@ class JiraToolkit(BaseToolkit):
|
|
51
51
|
api_key=(Optional[SecretStr], Field(description="API key", default=None, json_schema_extra={'secret': True, 'configuration': True})),
|
52
52
|
username=(Optional[str], Field(description="Jira Username", default=None, json_schema_extra={'configuration': True})),
|
53
53
|
token=(Optional[SecretStr], Field(description="Jira token", default=None, json_schema_extra={'secret': True, 'configuration': True})),
|
54
|
-
limit=(int, Field(description="Limit issues"
|
54
|
+
limit=(int, Field(description="Limit issues")),
|
55
55
|
labels=(Optional[str], Field(
|
56
56
|
description="List of comma separated labels used for labeling of agent's created or updated entities",
|
57
57
|
default=None,
|
@@ -78,7 +78,9 @@ class JiraToolkit(BaseToolkit):
|
|
78
78
|
}
|
79
79
|
]
|
80
80
|
}
|
81
|
-
}
|
81
|
+
},
|
82
|
+
"categories": ["project management"],
|
83
|
+
"extra_categories": ["jira", "atlassian", "issue tracking", "project management", "task management"],
|
82
84
|
}
|
83
85
|
})
|
84
86
|
)
|
@@ -34,7 +34,7 @@ class KeycloakToolkit(BaseToolkit):
|
|
34
34
|
client_id=(str, Field(default="", title="Client ID", description="Keycloak client ID")),
|
35
35
|
client_secret=(SecretStr, Field(default="", title="Client sercet", description="Keycloak client secret", json_schema_extra={'secret': True})),
|
36
36
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
37
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Keycloak", "icon_url": None, "hidden": True}})
|
37
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Keycloak", "icon_url": None, "hidden": True, "categories": ["authentication", "identity management"]}})
|
38
38
|
)
|
39
39
|
|
40
40
|
@classmethod
|
@@ -57,4 +57,5 @@ class KeycloakToolkit(BaseToolkit):
|
|
57
57
|
return cls(tools=tools)
|
58
58
|
|
59
59
|
def get_tools(self) -> list[BaseTool]:
|
60
|
-
return self.tools
|
60
|
+
return self.tools
|
61
|
+
|
alita_sdk/tools/ocr/__init__.py
CHANGED
@@ -36,7 +36,10 @@ class OCRToolkit(BaseToolkit):
|
|
36
36
|
structured_output=(bool, Field(description="Whether to return structured JSON output", default=False)),
|
37
37
|
expected_fields=(dict, Field(description="Expected fields for structured output", default={})),
|
38
38
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
39
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "OCR", "icon_url": None, "hidden": True
|
39
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "OCR", "icon_url": None, "hidden": True,
|
40
|
+
"categories": ["analysis"],
|
41
|
+
"extra_categories": ["optical character recognition", "text extraction"]
|
42
|
+
}})
|
40
43
|
)
|
41
44
|
|
42
45
|
@classmethod
|
@@ -59,4 +62,5 @@ class OCRToolkit(BaseToolkit):
|
|
59
62
|
return cls(tools=tools)
|
60
63
|
|
61
64
|
def get_tools(self) -> list[BaseTool]:
|
62
|
-
return self.tools
|
65
|
+
return self.tools
|
66
|
+
|
@@ -31,7 +31,9 @@ class PandasToolkit(BaseToolkit):
|
|
31
31
|
name,
|
32
32
|
bucket_name=(str, Field(default=None, title="Bucket name", description="Bucket where the content file is stored", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': PandasToolkit.toolkit_max_length})),
|
33
33
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
34
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Pandas", "icon_url": "pandas-icon.svg"
|
34
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Pandas", "icon_url": "pandas-icon.svg",
|
35
|
+
"categories": ["analysis"],
|
36
|
+
"extra_categories": ["data science", "data manipulation", "dataframes"]}})
|
35
37
|
)
|
36
38
|
|
37
39
|
@classmethod
|
@@ -54,4 +56,5 @@ class PandasToolkit(BaseToolkit):
|
|
54
56
|
return cls(tools=tools)
|
55
57
|
|
56
58
|
def get_tools(self):
|
57
|
-
return self.tools
|
59
|
+
return self.tools
|
60
|
+
|
alita_sdk/tools/pptx/__init__.py
CHANGED
@@ -51,7 +51,9 @@ class PPTXToolkit(BaseToolkit):
|
|
51
51
|
__config__=ConfigDict(json_schema_extra={
|
52
52
|
'metadata': {
|
53
53
|
"label": "PPTX",
|
54
|
-
"icon_url": None
|
54
|
+
"icon_url": None,
|
55
|
+
"categories": ["office"],
|
56
|
+
"extra_categories": ["presentation", "office automation", "document"]
|
55
57
|
}
|
56
58
|
})
|
57
59
|
)
|
@@ -94,4 +96,5 @@ class PPTXToolkit(BaseToolkit):
|
|
94
96
|
"""
|
95
97
|
Return all tools in the toolkit.
|
96
98
|
"""
|
97
|
-
return self.tools
|
99
|
+
return self.tools
|
100
|
+
|
@@ -36,7 +36,9 @@ class QtestToolkit(BaseToolkit):
|
|
36
36
|
qtest_project_id=(int, Field(description="QTest project id", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': QtestToolkit.toolkit_max_length})),
|
37
37
|
qtest_api_token=(SecretStr, Field(description="QTest API token", json_schema_extra={'secret': True, 'configuration': True})),
|
38
38
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
39
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "QTest", "icon_url": "qtest.svg"
|
39
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "QTest", "icon_url": "qtest.svg",
|
40
|
+
"categories": ["test management"],
|
41
|
+
"extra_categories": ["quality assurance", "test case management", "test planning"]}})
|
40
42
|
)
|
41
43
|
|
42
44
|
@check_connection_response
|
@@ -55,7 +55,9 @@ class RallyToolkit(BaseToolkit):
|
|
55
55
|
}
|
56
56
|
]
|
57
57
|
}
|
58
|
-
}
|
58
|
+
},
|
59
|
+
"categories": ["project management"],
|
60
|
+
"extra_categories": ["agile management", "test management", "scrum", "kanban"]
|
59
61
|
}
|
60
62
|
})
|
61
63
|
)
|
@@ -81,4 +83,4 @@ class RallyToolkit(BaseToolkit):
|
|
81
83
|
return cls(tools=tools)
|
82
84
|
|
83
85
|
def get_tools(self):
|
84
|
-
return self.tools
|
86
|
+
return self.tools
|
@@ -34,7 +34,9 @@ class ReportPortalToolkit(BaseToolkit):
|
|
34
34
|
project=(str, Field(description="Report Portal project")),
|
35
35
|
api_key=(SecretStr, Field(description="User API key", json_schema_extra={'secret': True})),
|
36
36
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
37
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Report Portal", "icon_url": "reportportal-icon.svg"
|
37
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "Report Portal", "icon_url": "reportportal-icon.svg",
|
38
|
+
"categories": ["testing"],
|
39
|
+
"extra_categories": ["test reporting", "test automation"]}})
|
38
40
|
)
|
39
41
|
|
40
42
|
@classmethod
|
@@ -30,7 +30,11 @@ class SalesforceToolkit(BaseToolkit):
|
|
30
30
|
client_secret=(SecretStr, Field(description="Salesforce Connected App Client Secret", json_schema_extra={'secret': True})),
|
31
31
|
api_version=(str, Field(description="Salesforce API Version", default='v59.0')),
|
32
32
|
selected_tools=(List[Literal[tuple(available_tools)]], Field(default=[], json_schema_extra={'args_schemas': available_tools})),
|
33
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {
|
33
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {
|
34
|
+
"label": "Salesforce", "icon_url": "salesforce-icon.svg",
|
35
|
+
"categories": ["other"],
|
36
|
+
"extra_categories": ["customer relationship management", "cloud computing", "marketing automation", "salesforce"]
|
37
|
+
}})
|
34
38
|
)
|
35
39
|
|
36
40
|
@classmethod
|
@@ -32,7 +32,12 @@ class SharepointToolkit(BaseToolkit):
|
|
32
32
|
client_id=(str, Field(description="Client ID")),
|
33
33
|
client_secret=(SecretStr, Field(description="Client Secret", json_schema_extra={'secret': True})),
|
34
34
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
35
|
-
__config__=ConfigDict(json_schema_extra={
|
35
|
+
__config__=ConfigDict(json_schema_extra={
|
36
|
+
'metadata': {
|
37
|
+
"label": "Sharepoint", "icon_url": "sharepoint.svg",
|
38
|
+
"categories": ["office"],
|
39
|
+
"extra_categories": ["microsoft", "cloud storage", "team collaboration", "content management"]
|
40
|
+
}})
|
36
41
|
)
|
37
42
|
|
38
43
|
@classmethod
|
alita_sdk/tools/sql/__init__.py
CHANGED
@@ -41,7 +41,13 @@ class SQLToolkit(BaseToolkit):
|
|
41
41
|
password=(SecretStr, Field(description="Database password", json_schema_extra={'secret': True})),
|
42
42
|
database_name=(str, Field(description="Database name", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': SQLToolkit.toolkit_max_length})),
|
43
43
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
44
|
-
__config__=ConfigDict(json_schema_extra=
|
44
|
+
__config__=ConfigDict(json_schema_extra=
|
45
|
+
{
|
46
|
+
'metadata':
|
47
|
+
{
|
48
|
+
"label": "SQL", "icon_url": "sql-icon.svg",
|
49
|
+
"categories": ["development"],
|
50
|
+
"extra_categories": ["sql", "data management", "data analysis"]}})
|
45
51
|
)
|
46
52
|
|
47
53
|
@classmethod
|
@@ -64,4 +70,5 @@ class SQLToolkit(BaseToolkit):
|
|
64
70
|
return cls(tools=tools)
|
65
71
|
|
66
72
|
def get_tools(self) -> list[BaseTool]:
|
67
|
-
return self.tools
|
73
|
+
return self.tools
|
74
|
+
|
@@ -32,7 +32,9 @@ class TestIOToolkit(BaseToolkit):
|
|
32
32
|
endpoint=(str, Field(description="TestIO endpoint", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': TOOLKIT_MAX_LENGTH})),
|
33
33
|
api_key=(SecretStr, Field(description="API key", json_schema_extra={'secret': True})),
|
34
34
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
35
|
-
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "TestIO", "icon_url": "testio-icon.svg"
|
35
|
+
__config__=ConfigDict(json_schema_extra={'metadata': {"label": "TestIO", "icon_url": "testio-icon.svg",
|
36
|
+
"categories": ["testing"],
|
37
|
+
"extra_categories": ["test automation", "test case management", "test planning"]}})
|
36
38
|
)
|
37
39
|
|
38
40
|
@classmethod
|
@@ -45,7 +45,11 @@ class TestrailToolkit(BaseToolkit):
|
|
45
45
|
email=(str, Field(description="User's email", json_schema_extra={'configuration': True})),
|
46
46
|
password=(SecretStr, Field(description="User's password", json_schema_extra={'secret': True, 'configuration': True})),
|
47
47
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
48
|
-
__config__=ConfigDict(json_schema_extra={'metadata':
|
48
|
+
__config__=ConfigDict(json_schema_extra={'metadata':
|
49
|
+
{"label": "Testrail", "icon_url": "testrail-icon.svg",
|
50
|
+
"categories": ["test management"],
|
51
|
+
"extra_categories": ["quality assurance", "test case management", "test planning"]
|
52
|
+
}})
|
49
53
|
)
|
50
54
|
|
51
55
|
@check_connection_response
|
alita_sdk/tools/xray/__init__.py
CHANGED
@@ -39,7 +39,15 @@ class XrayToolkit(BaseToolkit):
|
|
39
39
|
client_secret=(SecretStr, Field(description="Client secret", json_schema_extra={'secret': True})),
|
40
40
|
limit=(Optional[int], Field(description="Limit", default=100)),
|
41
41
|
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
|
42
|
-
__config__={'json_schema_extra':
|
42
|
+
__config__={'json_schema_extra':
|
43
|
+
{
|
44
|
+
'metadata': {
|
45
|
+
"label": "XRAY cloud", "icon_url": "xray.svg",
|
46
|
+
"categories": ["test management"],
|
47
|
+
"extra_categories": ["test automation", "test case management", "test planning"]
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
43
51
|
)
|
44
52
|
|
45
53
|
@classmethod
|