alita-sdk 0.3.173__py3-none-any.whl → 0.3.175__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.
@@ -46,9 +46,18 @@ class AzureDevOpsReposToolkit(BaseToolkit):
46
46
  AzureDevOpsReposToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
47
47
  m = create_model(
48
48
  name,
49
- organization_url=(Optional[str], Field(default="", title="Organization URL", description="ADO organization url", json_schema_extra={'configuration': True})),
49
+ organization_url=(Optional[str], Field(default="", title="Organization URL",
50
+ description="ADO organization url",
51
+ json_schema_extra={
52
+ 'configuration': True,
53
+ "configuration_title": True
54
+ })),
50
55
  project=(Optional[str], Field(default="", title="Project", description="ADO project", json_schema_extra={'configuration': True})),
51
- repository_id=(Optional[str], Field(default="", title="Repository ID", description="ADO repository ID", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AzureDevOpsReposToolkit.toolkit_max_length, 'configuration': True})),
56
+ repository_id=(Optional[str], Field(default="", title="Repository ID", description="ADO repository ID",
57
+ json_schema_extra={
58
+ 'toolkit_name': True,
59
+ 'max_toolkit_length': AzureDevOpsReposToolkit.toolkit_max_length,
60
+ 'configuration': True})),
52
61
  token=(Optional[SecretStr], Field(default="", title="Token", description="ADO token", json_schema_extra={'secret': True, 'configuration': True})),
53
62
  base_branch=(Optional[str], Field(default="", title="Base branch", description="ADO base branch (e.g., main)")),
54
63
  active_branch=(Optional[str], Field(default="", title="Active branch", description="ADO active branch (e.g., main)")),
@@ -24,7 +24,12 @@ class AzureDevOpsPlansToolkit(BaseToolkit):
24
24
  m = create_model(
25
25
  name_alias,
26
26
  name=(str, Field(description="Toolkit name", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AzureDevOpsPlansToolkit.toolkit_max_length})),
27
- organization_url=(str, Field(description="ADO organization url", json_schema_extra={'configuration': True})),
27
+ organization_url=(str, Field(default="", title="Organization URL",
28
+ description="ADO organization url",
29
+ json_schema_extra={
30
+ 'configuration': True,
31
+ "configuration_title": True
32
+ })),
28
33
  limit=(Optional[int], Field(description="ADO plans limit used for limitation of the list with results", default=5)),
29
34
  token=(SecretStr, Field(description="ADO token", json_schema_extra={'secret': True, 'configuration': True})),
30
35
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
@@ -25,7 +25,12 @@ class AzureDevOpsWikiToolkit(BaseToolkit):
25
25
  'toolkit_name': True,
26
26
  'max_toolkit_length': AzureDevOpsWikiToolkit.toolkit_max_length})
27
27
  ),
28
- organization_url=(str, Field(description="ADO organization url", json_schema_extra={'configuration': True})),
28
+ organization_url=(str, Field(default="", title="Organization URL",
29
+ description="ADO organization url",
30
+ json_schema_extra={
31
+ 'configuration': True,
32
+ "configuration_title": True
33
+ })),
29
34
  project=(str, Field(description="ADO project", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AzureDevOpsWikiToolkit.toolkit_max_length, 'configuration': True})),
30
35
  token=(SecretStr, Field(description="ADO token", json_schema_extra={'secret': True, 'configuration': True})),
31
36
  selected_tools=(List[Literal[tuple(selected_tools)]],
@@ -24,7 +24,12 @@ class AzureDevOpsWorkItemsToolkit(BaseToolkit):
24
24
  'toolkit_name': True,
25
25
  'max_toolkit_length': AzureDevOpsWorkItemsToolkit.toolkit_max_length})
26
26
  ),
27
- organization_url=(str, Field(description="ADO organization url", json_schema_extra={'configuration': True})),
27
+ organization_url=(str, Field(default="", title="Organization URL",
28
+ description="ADO organization url",
29
+ json_schema_extra={
30
+ 'configuration': True,
31
+ "configuration_title": True
32
+ })),
28
33
  project=(str, Field(description="ADO project", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AzureDevOpsWorkItemsToolkit.toolkit_max_length, 'configuration': True})),
29
34
  token=(SecretStr, Field(description="ADO token", json_schema_extra={'secret': True, 'configuration': True})),
30
35
  limit=(Optional[int], Field(description="ADO plans limit used for limitation of the list with results", default=5)),
@@ -4,7 +4,8 @@ from .api_wrapper import AzureSearchApiWrapper
4
4
  from ...base.tool import BaseAction
5
5
  from langchain_core.tools import BaseToolkit, BaseTool
6
6
  from pydantic import create_model, BaseModel, ConfigDict, Field, SecretStr
7
- from ...utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length
7
+ from ...utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, check_connection_response
8
+ import requests
8
9
 
9
10
  logger = getLogger(__name__)
10
11
 
@@ -35,12 +36,21 @@ class AzureSearchToolkit(BaseToolkit):
35
36
  def toolkit_config_schema() -> BaseModel:
36
37
  selected_tools = {x['name']: x['args_schema'].schema() for x in AzureSearchApiWrapper.model_construct().get_available_tools()}
37
38
  AzureSearchToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
38
- return create_model(
39
+ m = create_model(
39
40
  name,
40
- api_key=(SecretStr, Field(description="API key", json_schema_extra={'secret': True})),
41
- endpoint=(str, Field(description="Azure Search endpoint")),
41
+ api_key=(SecretStr, Field(description="API key", json_schema_extra={'secret': True, 'configuration': True})),
42
+ endpoint=(str, Field(title="Azure Search endpoint",
43
+ description="Azure Search endpoint",
44
+ json_schema_extra={
45
+ 'configuration': True,
46
+ "configuration_title": True
47
+ })),
42
48
  index_name=(str, Field(description="Azure Search index name")),
43
- api_base=(Optional[str], Field(description="Azure OpenAI base URL", default=None, json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AzureSearchToolkit.toolkit_max_length})),
49
+ api_base=(Optional[str], Field(description="Azure OpenAI base URL", default=None,
50
+ json_schema_extra={
51
+ 'toolkit_name': True,
52
+ 'max_toolkit_length': AzureSearchToolkit.toolkit_max_length,
53
+ 'configuration': True})),
44
54
  api_version=(Optional[str], Field(description="API version", default=None)),
45
55
  openai_api_key=(Optional[str], Field(description="Azure OpenAI API Key", default=None, json_schema_extra={'secret': True})),
46
56
  model_name=(str, Field(description="Model name for Embeddings model", default=None)),
@@ -54,6 +64,16 @@ class AzureSearchToolkit(BaseToolkit):
54
64
  })
55
65
  )
56
66
 
67
+ @check_connection_response
68
+ def check_connection(self):
69
+ response = requests.get(f"{self.api_base}/openai/deployments", headers={
70
+ "api-key": self.api_key
71
+ })
72
+ return response
73
+
74
+ m.check_connection = check_connection
75
+ return m
76
+
57
77
  @classmethod
58
78
  def get_toolkit(cls, selected_tools: list[str] | None = None, toolkit_name: Optional[str] = None, **kwargs):
59
79
  if selected_tools is None:
@@ -1,10 +1,14 @@
1
1
  from typing import Dict, List, Literal, Optional
2
+
3
+ from requests.auth import HTTPBasicAuth
4
+
2
5
  from .api_wrapper import BitbucketAPIWrapper
3
6
  from .tools import __all__
4
7
  from langchain_core.tools import BaseToolkit
5
8
  from langchain_core.tools import BaseTool
6
9
  from pydantic import BaseModel, Field, ConfigDict, create_model, SecretStr
7
- from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length
10
+ from ..utils import clean_string, TOOLKIT_SPLITTER, get_max_toolkit_length, check_connection_response
11
+ import requests
8
12
 
9
13
 
10
14
  name = "bitbucket"
@@ -35,14 +39,14 @@ class AlitaBitbucketToolkit(BaseToolkit):
35
39
  default = t['tool'].__pydantic_fields__['args_schema'].default
36
40
  selected_tools[t['name']] = default.schema() if default else default
37
41
  AlitaBitbucketToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
38
- return create_model(
42
+ m = create_model(
39
43
  name,
40
- url=(str, Field(description="Bitbucket URL")),
41
- project=(str, Field(description="Project/Workspace")),
42
- repository=(str, Field(description="Repository", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AlitaBitbucketToolkit.toolkit_max_length})),
44
+ url=(str, Field(description="Bitbucket URL", json_schema_extra={'configuration': True, 'configuration_title': True})),
45
+ project=(str, Field(description="Project/Workspace", json_schema_extra={'configuration': True})),
46
+ repository=(str, Field(description="Repository", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AlitaBitbucketToolkit.toolkit_max_length, 'configuration': True})),
43
47
  branch=(str, Field(description="Main branch", default="main")),
44
- username=(str, Field(description="Username")),
45
- password=(SecretStr, Field(description="GitLab private token", json_schema_extra={'secret': True})),
48
+ username=(str, Field(description="Username", json_schema_extra={'configuration': True})),
49
+ password=(SecretStr, Field(description="GitLab private token", json_schema_extra={'secret': True, 'configuration': True})),
46
50
  cloud=(Optional[bool], Field(description="Hosting Option", default=None)),
47
51
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
48
52
  __config__=ConfigDict(json_schema_extra=
@@ -56,6 +60,18 @@ class AlitaBitbucketToolkit(BaseToolkit):
56
60
  })
57
61
  )
58
62
 
63
+ @check_connection_response
64
+ def check_connection(self):
65
+ if self.cloud:
66
+ request_url = f"{self.url}/2.0/repositories/{self.project}/{self.repository}"
67
+ else:
68
+ request_url = f"{self.url}/rest/api/1.0/projects/{self.project}/repos/{self.repository}"
69
+ response = requests.get(request_url, auth=HTTPBasicAuth(self.username, self.password))
70
+ return response
71
+
72
+ m.check_connection = check_connection
73
+ return m
74
+
59
75
  @classmethod
60
76
  def get_toolkit(cls, selected_tools: list[str] | None = None, toolkit_name: Optional[str] = None, **kwargs):
61
77
  if selected_tools is None:
@@ -51,13 +51,14 @@ class ConfluenceToolkit(BaseToolkit):
51
51
  headers = {'Accept': 'application/json'}
52
52
  auth = None
53
53
  if self.token:
54
- headers['Authorization'] = f'Bearer {self.token.get_secret_value()}'
54
+ headers['Authorization'] = f'Bearer {self.token}'
55
55
  elif self.username and self.api_key:
56
- auth = (self.username, self.api_key.get_secret_value())
56
+ auth = (self.username, self.api_key)
57
57
  else:
58
58
  raise ValueError('Confluence connection requires either token or username+api_key')
59
59
  response = requests.get(url, headers=headers, auth=auth, timeout=5, verify=getattr(self, 'verify_ssl', True))
60
60
  return response
61
+
61
62
  model = create_model(
62
63
  name,
63
64
  base_url=(str, Field(description="Confluence URL", json_schema_extra={'configuration': True, 'configuration_title': True})),
@@ -41,9 +41,9 @@ class JiraToolkit(BaseToolkit):
41
41
  headers = {'Accept': 'application/json'}
42
42
  auth = None
43
43
  if self.token:
44
- headers['Authorization'] = f'Bearer {self.token.get_secret_value()}'
44
+ headers['Authorization'] = f'Bearer {self.token}'
45
45
  elif self.username and self.api_key:
46
- auth = (self.username, self.api_key.get_secret_value())
46
+ auth = (self.username, self.api_key)
47
47
  else:
48
48
  raise ValueError('Jira connection requires either token or username+api_key')
49
49
  response = requests.get(url, headers=headers, auth=auth, timeout=5, verify=getattr(self, 'verify_ssl', True))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: alita_sdk
3
- Version: 0.3.173
3
+ Version: 0.3.175
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
@@ -133,22 +133,22 @@ alita_sdk/tools/__init__.py,sha256=48DhEi14KkaYhNb-KvXuM9XJ4WGC-v9sRcWfN7GFWd4,9
133
133
  alita_sdk/tools/elitea_base.py,sha256=NQaIxPX6DVIerHCb18jwUR6maZxxk73NZaTsFHkBQWE,21119
134
134
  alita_sdk/tools/ado/__init__.py,sha256=mD6GHcYMTtffPJkJvFPe2rzvye_IRmXmWfI7xYuZhO4,912
135
135
  alita_sdk/tools/ado/utils.py,sha256=PTCludvaQmPLakF2EbCGy66Mro4-rjDtavVP-xcB2Wc,1252
136
- alita_sdk/tools/ado/repos/__init__.py,sha256=-sMK94fLgtIAGoP26wXs466kF6AiZhdLDdr_--o4ELU,5818
136
+ alita_sdk/tools/ado/repos/__init__.py,sha256=cS7yON7bwQxAu7CI7-SeSLCB4c83awjbLj3ZB1mWN2I,6317
137
137
  alita_sdk/tools/ado/repos/repos_wrapper.py,sha256=_OWKAls7VFfFtEPTwqj_DxE1MSvpC0ivxdTIULEz3Tk,48206
138
- alita_sdk/tools/ado/test_plan/__init__.py,sha256=PmVBwOQExgDmiywQEL9D29hbX3fC1pJd6bROnyBOu_k,3916
138
+ alita_sdk/tools/ado/test_plan/__init__.py,sha256=1DMvP4GjgBhrLPSQl6KNbNkInFqVFsDEeLBX99rEhfU,4248
139
139
  alita_sdk/tools/ado/test_plan/test_plan_wrapper.py,sha256=oIvVhLUMP5ZGctoAtK6sU0y6Si9gNv9-mbLqcWtw3gY,12525
140
- alita_sdk/tools/ado/wiki/__init__.py,sha256=6WRwKBznxXP5vSDpPT6i5njPgPsrUUOJ8U1qeH3wtGk,4265
140
+ alita_sdk/tools/ado/wiki/__init__.py,sha256=eiV2uJ7s0hnok68v5eRr48bBSArraHr0bv_3AsxnZiQ,4597
141
141
  alita_sdk/tools/ado/wiki/ado_wrapper.py,sha256=l4bc2QoKSUXg9UqNcx0ylv7YL9JPPQd35Ti5MXyEgC4,12690
142
- alita_sdk/tools/ado/work_item/__init__.py,sha256=kLIFw7w_3ygqqPjzxWJ8cC9cbOxNl_yfxjhI7RGs1Ys,4368
142
+ alita_sdk/tools/ado/work_item/__init__.py,sha256=WxlxoAZKDMVqb2t7ijrCE7nCBAx5kKuCRes9t8RJv4M,4700
143
143
  alita_sdk/tools/ado/work_item/ado_wrapper.py,sha256=t0D9xubU0yy_JmRJ_zEtRCxwFLyanT1StbIrtHGaqpw,26108
144
144
  alita_sdk/tools/advanced_jira_mining/__init__.py,sha256=pUTzECqGvYaR5qWY3JPUhrImrZgc7pCXuqSe5eWIE80,4604
145
145
  alita_sdk/tools/advanced_jira_mining/data_mining_wrapper.py,sha256=nZPtuwVWp8VeHw1B8q9kdwf-6ZvHnlXTOGdcIMDkKpw,44211
146
146
  alita_sdk/tools/azure_ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
- alita_sdk/tools/azure_ai/search/__init__.py,sha256=FFSMBINRfODSjs7hNalwRx9BrroHUnfv6Jw8nN0w2Y8,3808
147
+ alita_sdk/tools/azure_ai/search/__init__.py,sha256=H2HqPOYM-bf9xHzFU7GG0jT7oUlYst5SSxWxiAgS_6c,4751
148
148
  alita_sdk/tools/azure_ai/search/api_wrapper.py,sha256=E4p6HPDlwgxfT_i6cvg9rN4Vn_47CVAyNBAKLIGq3mU,7265
149
149
  alita_sdk/tools/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
150
  alita_sdk/tools/base/tool.py,sha256=-N27AodZS49vdPCgFkU-bFS9bxoPopZBnNrmwInx3d0,864
151
- alita_sdk/tools/bitbucket/__init__.py,sha256=987vZZvFnrmKeaefXtXs4DjF6OFVEOKAG9F5ZHf1A_4,3562
151
+ alita_sdk/tools/bitbucket/__init__.py,sha256=mPdq25Ib4yP1SV4g1dgK3WD3y-lKyuaNCmcIZTo893w,4355
152
152
  alita_sdk/tools/bitbucket/api_wrapper.py,sha256=HAmxY43VwfI08u0J6Z3ViBvADGNKM6LKAj1Iq5DNvMU,7133
153
153
  alita_sdk/tools/bitbucket/bitbucket_constants.py,sha256=UsbhQ1iEvrKoxceTFPWTYhaXS1zSxbmjs1TwY0-P4gw,462
154
154
  alita_sdk/tools/bitbucket/cloud_api_wrapper.py,sha256=9pvU--c02EB2JVkXuMI4cehWU657HsFpywAmtLC3yVs,7731
@@ -216,7 +216,7 @@ alita_sdk/tools/code/linter/api_wrapper.py,sha256=wylpwhAw02Jt8L18CqBq2He5PbwIkx
216
216
  alita_sdk/tools/code/loaders/codesearcher.py,sha256=XoXXZtIQZhvjIwZlnl_4wVGHC-3saYzFo5oDR_Zh3EY,529
217
217
  alita_sdk/tools/code/sonar/__init__.py,sha256=u8wpgXJ_shToLl3G9-XEtGDor5dhmsnurIImh1-e-U0,3165
218
218
  alita_sdk/tools/code/sonar/api_wrapper.py,sha256=nNqxcWN_6W8c0ckj-Er9HkNuAdgQLoWBXh5UyzNutis,2653
219
- alita_sdk/tools/confluence/__init__.py,sha256=MkAUfSgQTZ6lVOHErwFggA4v_ctD9ADhhq6dKIALko0,6922
219
+ alita_sdk/tools/confluence/__init__.py,sha256=1wGSP4CjPbfpdZLsjC1SVftTV7XSvW3QCAMHuh9tIxA,6885
220
220
  alita_sdk/tools/confluence/api_wrapper.py,sha256=nCU4wAh3f6EN3NVXya3BVZQX47mi7JYAzylxJJOvMMc,88725
221
221
  alita_sdk/tools/confluence/loader.py,sha256=aHqgdIQMqkyRry8feHAhyd-a_ASEyW3JrV6epTRG6-c,9162
222
222
  alita_sdk/tools/confluence/utils.py,sha256=Lxo6dBD0OlvM4o0JuK6qeB_4LV9BptiwJA9e1vqNcDw,435
@@ -244,7 +244,7 @@ alita_sdk/tools/gmail/gmail_wrapper.py,sha256=t0IYM3zb77Ub8o9kv6HugNm_OoG5tN9T73
244
244
  alita_sdk/tools/gmail/utils.py,sha256=cu6pbSsyMIr1BQOSs9et1rbAkk-Z_u48PB9FtJwFhUs,448
245
245
  alita_sdk/tools/google_places/__init__.py,sha256=mHKc7u9P2gqGDzqqJNQC9qiZYEm5gncnM_1XjtrM17o,3152
246
246
  alita_sdk/tools/google_places/api_wrapper.py,sha256=7nZly6nk4f4Tm7s2MVdnnwlb-1_WHRrDhyjDiqoyPjA,4674
247
- alita_sdk/tools/jira/__init__.py,sha256=es7-lRkd3MPwR4rXWTQTFI_yfP2hRoeD8oJD5SbhJkk,5978
247
+ alita_sdk/tools/jira/__init__.py,sha256=skVJwk54q59tQrWqVZlKuckGjI3m8euZJWJB86o3F9Y,5940
248
248
  alita_sdk/tools/jira/api_wrapper.py,sha256=i0TIHhVnh44dAVTt6RWrZ4o9hyhSMfVkYtk6FB3D2zA,62035
249
249
  alita_sdk/tools/keycloak/__init__.py,sha256=0WB9yXMUUAHQRni1ghDEmd7GYa7aJPsTVlZgMCM9cQ0,3050
250
250
  alita_sdk/tools/keycloak/api_wrapper.py,sha256=cOGr0f3S3-c6tRDBWI8wMnetjoNSxiV5rvC_0VHb8uw,3100
@@ -326,8 +326,8 @@ alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=UHVQUVqcBc3SZvDfO78HSuBzwAsRw
326
326
  alita_sdk/tools/zephyr_squad/__init__.py,sha256=rq4jOb3lRW2GXvAguk4H1KinO5f-zpygzhBJf-E1Ucw,2773
327
327
  alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=iOMxyE7vOc_LwFB_nBMiSFXkNtvbptA4i-BrTlo7M0A,5854
328
328
  alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=IYUJoMFOMA70knLhLtAnuGoy3OK80RuqeQZ710oyIxE,3631
329
- alita_sdk-0.3.173.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
330
- alita_sdk-0.3.173.dist-info/METADATA,sha256=XTue8f1fKyX4zdPdddEyLCNsSDbFo-VdK7pLuIbZ5mI,18757
331
- alita_sdk-0.3.173.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
332
- alita_sdk-0.3.173.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
333
- alita_sdk-0.3.173.dist-info/RECORD,,
329
+ alita_sdk-0.3.175.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
330
+ alita_sdk-0.3.175.dist-info/METADATA,sha256=3ecYvmsESpDa4HnPLjEW0y_G05ofONK9nPClKYPNah4,18757
331
+ alita_sdk-0.3.175.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
332
+ alita_sdk-0.3.175.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
333
+ alita_sdk-0.3.175.dist-info/RECORD,,