alita-sdk 0.3.272__py3-none-any.whl → 0.3.273__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/vectorstore.py +4 -4
- alita_sdk/tools/base_indexer_toolkit.py +8 -8
- alita_sdk/tools/elitea_base.py +9 -8
- alita_sdk/tools/jira/api_wrapper.py +1 -1
- alita_sdk/tools/xray/api_wrapper.py +60 -101
- {alita_sdk-0.3.272.dist-info → alita_sdk-0.3.273.dist-info}/METADATA +1 -1
- {alita_sdk-0.3.272.dist-info → alita_sdk-0.3.273.dist-info}/RECORD +10 -10
- {alita_sdk-0.3.272.dist-info → alita_sdk-0.3.273.dist-info}/WHEEL +0 -0
- {alita_sdk-0.3.272.dist-info → alita_sdk-0.3.273.dist-info}/licenses/LICENSE +0 -0
- {alita_sdk-0.3.272.dist-info → alita_sdk-0.3.273.dist-info}/top_level.txt +0 -0
@@ -73,6 +73,10 @@ class StepBackSearchDocumentsModel(BaseModel):
|
|
73
73
|
}""",
|
74
74
|
default=None
|
75
75
|
)
|
76
|
+
extended_search: Optional[List[str]] = Field(
|
77
|
+
description="List of chunk types to search for (title, summary, propositions, keywords, documents)",
|
78
|
+
default=None
|
79
|
+
)
|
76
80
|
reranking_config: Optional[Dict[str, Dict[str, Any]]] = Field(
|
77
81
|
description="""Reranking configuration. Example:
|
78
82
|
{
|
@@ -87,10 +91,6 @@ class StepBackSearchDocumentsModel(BaseModel):
|
|
87
91
|
}""",
|
88
92
|
default=None
|
89
93
|
)
|
90
|
-
extended_search: Optional[List[str]] = Field(
|
91
|
-
description="List of chunk types to search for (title, summary, propositions, keywords, documents)",
|
92
|
-
default=None
|
93
|
-
)
|
94
94
|
|
95
95
|
STEPBACK_PROMPT = """Your task is to convert provided question into a more generic question that will be used for similarity search.
|
96
96
|
Remove all not important words, question words, but save all names, dates and acronym as in original question.
|
@@ -66,22 +66,22 @@ BaseStepbackSearchParams = create_model(
|
|
66
66
|
)),
|
67
67
|
cut_off=(Optional[float], Field(description="Cut-off score for search results", default=0.5, ge=0, le=1)),
|
68
68
|
search_top=(Optional[int], Field(description="Number of top results to return", default=10)),
|
69
|
-
reranker=(Optional[dict], Field(
|
70
|
-
description="Reranker configuration. Can be a dictionary with reranking parameters.",
|
71
|
-
default={}
|
72
|
-
)),
|
73
69
|
full_text_search=(Optional[Dict[str, Any]], Field(
|
74
70
|
description="Full text search parameters. Can be a dictionary with search options.",
|
75
71
|
default=None
|
76
72
|
)),
|
77
|
-
reranking_config=(Optional[Dict[str, Dict[str, Any]]], Field(
|
78
|
-
description="Reranking configuration. Can be a dictionary with reranking settings.",
|
79
|
-
default=None
|
80
|
-
)),
|
81
73
|
extended_search=(Optional[List[str]], Field(
|
82
74
|
description="List of additional fields to include in the search results.",
|
83
75
|
default=None
|
84
76
|
)),
|
77
|
+
reranker=(Optional[dict], Field(
|
78
|
+
description="Reranker configuration. Can be a dictionary with reranking parameters.",
|
79
|
+
default={}
|
80
|
+
)),
|
81
|
+
reranking_config=(Optional[Dict[str, Dict[str, Any]]], Field(
|
82
|
+
description="Reranking configuration. Can be a dictionary with reranking settings.",
|
83
|
+
default=None
|
84
|
+
)),
|
85
85
|
)
|
86
86
|
|
87
87
|
BaseIndexDataParams = create_model(
|
alita_sdk/tools/elitea_base.py
CHANGED
@@ -90,22 +90,23 @@ BaseStepbackSearchParams = create_model(
|
|
90
90
|
)),
|
91
91
|
cut_off=(Optional[float], Field(description="Cut-off score for search results", default=0.5, ge=0, le=1)),
|
92
92
|
search_top=(Optional[int], Field(description="Number of top results to return", default=10, ge=0)),
|
93
|
-
reranker=(Optional[dict], Field(
|
94
|
-
description="Reranker configuration. Can be a dictionary with reranking parameters.",
|
95
|
-
default={}
|
96
|
-
)),
|
97
93
|
full_text_search=(Optional[Dict[str, Any]], Field(
|
98
94
|
description="Full text search parameters. Can be a dictionary with search options.",
|
99
95
|
default=None
|
100
96
|
)),
|
101
|
-
reranking_config=(Optional[Dict[str, Dict[str, Any]]], Field(
|
102
|
-
description="Reranking configuration. Can be a dictionary with reranking settings.",
|
103
|
-
default=None
|
104
|
-
)),
|
105
97
|
extended_search=(Optional[List[str]], Field(
|
106
98
|
description="List of additional fields to include in the search results.",
|
107
99
|
default=None
|
108
100
|
)),
|
101
|
+
reranker=(Optional[dict], Field(
|
102
|
+
description="Reranker configuration. Can be a dictionary with reranking parameters.",
|
103
|
+
default={}
|
104
|
+
)),
|
105
|
+
reranking_config=(Optional[Dict[str, Dict[str, Any]]], Field(
|
106
|
+
description="Reranking configuration. Can be a dictionary with reranking settings.",
|
107
|
+
default=None
|
108
|
+
)),
|
109
|
+
|
109
110
|
)
|
110
111
|
|
111
112
|
BaseIndexDataParams = create_model(
|
@@ -17,7 +17,7 @@ from ..elitea_base import BaseVectorStoreToolApiWrapper, extend_with_vector_tool
|
|
17
17
|
from ..llm.img_utils import ImageDescriptionCache
|
18
18
|
from ..non_code_indexer_toolkit import NonCodeIndexerToolkit
|
19
19
|
from ..utils import is_cookie_token, parse_cookie_string
|
20
|
-
from ..utils.content_parser import
|
20
|
+
from ..utils.content_parser import load_file_docs
|
21
21
|
from ...runtime.utils.utils import IndexerKeywords
|
22
22
|
|
23
23
|
logger = logging.getLogger(__name__)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import json
|
2
2
|
import logging
|
3
3
|
import hashlib
|
4
|
-
from typing import Any, Dict, Generator, List, Optional
|
4
|
+
from typing import Any, Dict, Generator, List, Optional, Literal
|
5
5
|
|
6
6
|
import requests
|
7
7
|
from langchain_core.documents import Document
|
@@ -13,8 +13,9 @@ from ..elitea_base import (
|
|
13
13
|
BaseVectorStoreToolApiWrapper,
|
14
14
|
extend_with_vector_tools,
|
15
15
|
)
|
16
|
+
from ..non_code_indexer_toolkit import NonCodeIndexerToolkit
|
16
17
|
from ...runtime.utils.utils import IndexerKeywords
|
17
|
-
from ..utils.content_parser import
|
18
|
+
from ..utils.content_parser import load_file_docs
|
18
19
|
|
19
20
|
try:
|
20
21
|
from alita_sdk.runtime.langchain.interfaces.llm_processor import get_embeddings
|
@@ -31,7 +32,7 @@ _get_tests_query = """query GetTests($jql: String!, $limit:Int!, $start: Int)
|
|
31
32
|
limit
|
32
33
|
results {
|
33
34
|
issueId
|
34
|
-
jira(fields: ["key", "summary", "created", "updated", "assignee.displayName", "reporter.displayName"])
|
35
|
+
jira(fields: ["key", "summary", "description", "created", "updated", "assignee.displayName", "reporter.displayName"])
|
35
36
|
projectId
|
36
37
|
testType {
|
37
38
|
name
|
@@ -120,7 +121,7 @@ def _parse_tests(test_results) -> List[Any]:
|
|
120
121
|
return test_results
|
121
122
|
|
122
123
|
|
123
|
-
class XrayApiWrapper(
|
124
|
+
class XrayApiWrapper(NonCodeIndexerToolkit):
|
124
125
|
_default_base_url: str = 'https://xray.cloud.getxray.app'
|
125
126
|
base_url: str = ""
|
126
127
|
client_id: str = None
|
@@ -147,7 +148,7 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
147
148
|
client_id = values['client_id']
|
148
149
|
client_secret = values['client_secret']
|
149
150
|
# Authenticate to get the token
|
150
|
-
values['base_url'] = values.get('base_url', '') or cls._default_base_url
|
151
|
+
values['base_url'] = values.get('base_url', '') or cls._default_base_url.default
|
151
152
|
auth_url = f"{values['base_url']}/api/v1/authenticate"
|
152
153
|
auth_data = {
|
153
154
|
"client_id": client_id,
|
@@ -168,7 +169,7 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
168
169
|
return ToolException(f"Please, check you credentials ({values['client_id']} / {masked_secret}). Unable")
|
169
170
|
else:
|
170
171
|
return ToolException(f"Authentication failed: {str(e)}")
|
171
|
-
return values
|
172
|
+
return super().validate_toolkit(values)
|
172
173
|
|
173
174
|
def __init__(self, **data):
|
174
175
|
super().__init__(**data)
|
@@ -333,6 +334,7 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
333
334
|
|
334
335
|
for test in tests_data:
|
335
336
|
page_content = ""
|
337
|
+
content_structure = {}
|
336
338
|
test_type_name = test.get("testType", {}).get("name", "").lower()
|
337
339
|
|
338
340
|
attachment_ids = []
|
@@ -359,19 +361,16 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
359
361
|
content_structure = {"steps": steps_content}
|
360
362
|
if attachment_ids:
|
361
363
|
content_structure["attachment_ids"] = sorted(attachment_ids)
|
362
|
-
page_content = json.dumps(content_structure, indent=2)
|
363
364
|
|
364
365
|
elif test_type_name == "cucumber" and test.get("gherkin"):
|
365
366
|
content_structure = {"gherkin": test["gherkin"]}
|
366
367
|
if attachment_ids:
|
367
368
|
content_structure["attachment_ids"] = sorted(attachment_ids)
|
368
|
-
page_content = json.dumps(content_structure, indent=2)
|
369
369
|
|
370
370
|
elif test.get("unstructured"):
|
371
371
|
content_structure = {"unstructured": test["unstructured"]}
|
372
372
|
if attachment_ids:
|
373
373
|
content_structure["attachment_ids"] = sorted(attachment_ids)
|
374
|
-
page_content = json.dumps(content_structure, indent=2)
|
375
374
|
|
376
375
|
metadata = {"doctype": self.doctype}
|
377
376
|
|
@@ -382,7 +381,12 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
382
381
|
|
383
382
|
if "created" in jira_data:
|
384
383
|
metadata["created_on"] = jira_data["created"]
|
385
|
-
|
384
|
+
|
385
|
+
if jira_data.get("description"):
|
386
|
+
content_structure["description"] = jira_data.get("description")
|
387
|
+
|
388
|
+
page_content = json.dumps(content_structure if content_structure.items() else "", indent=2)
|
389
|
+
|
386
390
|
content_hash = hashlib.sha256(page_content.encode('utf-8')).hexdigest()[:16]
|
387
391
|
metadata["updated_on"] = content_hash
|
388
392
|
|
@@ -407,6 +411,7 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
407
411
|
if "attachments" in step and step["attachments"]:
|
408
412
|
for attachment in step["attachments"]:
|
409
413
|
if attachment and "id" in attachment and "filename" in attachment:
|
414
|
+
attachment['step_id'] = step['id']
|
410
415
|
attachments_data.append(attachment)
|
411
416
|
if attachments_data:
|
412
417
|
metadata["_attachments_data"] = attachments_data
|
@@ -430,14 +435,7 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
430
435
|
Generator[Document, None, None]: A generator yielding processed Document objects with metadata.
|
431
436
|
"""
|
432
437
|
try:
|
433
|
-
if not getattr(self, '_include_attachments', False):
|
434
|
-
yield document
|
435
|
-
return
|
436
|
-
|
437
438
|
attachments_data = document.metadata.get("_attachments_data", [])
|
438
|
-
if not attachments_data:
|
439
|
-
yield document
|
440
|
-
return
|
441
439
|
|
442
440
|
issue_id = document.metadata.get("id")
|
443
441
|
|
@@ -458,44 +456,33 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
458
456
|
).append(attachment_id)
|
459
457
|
|
460
458
|
try:
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
459
|
+
attachment_metadata = {
|
460
|
+
'id': str(attachment_id),
|
461
|
+
'issue_key': document.metadata.get('key', ''),
|
462
|
+
'issueId': str(issue_id),
|
463
|
+
'projectId': document.metadata.get('projectId', ''),
|
464
|
+
'source': f"xray_test_{issue_id}",
|
465
|
+
'filename': filename,
|
466
|
+
'download_link': attachment.get('downloadLink', ''),
|
467
|
+
'entity_type': 'test_case_attachment',
|
468
|
+
'step_id': attachment.get('step_id', ''),
|
469
|
+
'key': document.metadata.get('key', ''),
|
470
|
+
IndexerKeywords.PARENT.value: document.metadata.get('id', str(issue_id)),
|
471
|
+
'type': 'attachment',
|
472
|
+
'doctype': self.doctype,
|
473
|
+
}
|
474
|
+
yield from self._process_attachment(attachment, attachment_metadata)
|
465
475
|
except Exception as e:
|
466
476
|
logger.error(f"Failed to process attachment {filename}: {str(e)}")
|
467
477
|
continue
|
468
|
-
|
469
|
-
attachment_metadata = {
|
470
|
-
'id': str(attachment_id),
|
471
|
-
'issue_key': document.metadata.get('key', ''),
|
472
|
-
'issueId': str(issue_id),
|
473
|
-
'projectId': document.metadata.get('projectId', ''),
|
474
|
-
'source': f"xray_test_{issue_id}",
|
475
|
-
'filename': filename,
|
476
|
-
'download_link': attachment.get('downloadLink', ''),
|
477
|
-
'entity_type': 'test_case_attachment',
|
478
|
-
'key': document.metadata.get('key', ''),
|
479
|
-
IndexerKeywords.PARENT.value: document.metadata.get('id', str(issue_id)),
|
480
|
-
'type': 'attachment',
|
481
|
-
'doctype': self.doctype,
|
482
|
-
}
|
483
|
-
|
484
|
-
yield Document(
|
485
|
-
page_content=content,
|
486
|
-
metadata=attachment_metadata
|
487
|
-
)
|
488
478
|
|
489
479
|
if "_attachments_data" in document.metadata:
|
490
480
|
del document.metadata["_attachments_data"]
|
491
481
|
|
492
|
-
yield document
|
493
|
-
|
494
482
|
except Exception as e:
|
495
483
|
logger.error(f"Error processing document for attachments: {e}")
|
496
|
-
yield document
|
497
484
|
|
498
|
-
def _process_attachment(self, attachment: Dict[str, Any]) ->
|
485
|
+
def _process_attachment(self, attachment: Dict[str, Any], attachment_metadata) -> Generator[Document, None, None]:
|
499
486
|
"""
|
500
487
|
Processes an attachment to extract its content.
|
501
488
|
|
@@ -508,38 +495,17 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
508
495
|
try:
|
509
496
|
download_link = attachment.get('downloadLink')
|
510
497
|
filename = attachment.get('filename', '')
|
511
|
-
|
512
|
-
if not download_link:
|
513
|
-
return f"Attachment: {filename} (no download link available)"
|
514
498
|
|
515
499
|
try:
|
516
500
|
auth_token = self._ensure_auth_token()
|
517
501
|
headers = {'Authorization': f'Bearer {auth_token}'}
|
518
502
|
response = requests.get(download_link, headers=headers, timeout=30)
|
519
503
|
response.raise_for_status()
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
file_content=response.content,
|
526
|
-
file_name=filename,
|
527
|
-
llm=self.llm,
|
528
|
-
is_capture_image=True
|
529
|
-
)
|
530
|
-
else:
|
531
|
-
content = load_content_from_bytes(
|
532
|
-
response.content,
|
533
|
-
ext,
|
534
|
-
llm=self.llm
|
535
|
-
)
|
536
|
-
|
537
|
-
if content:
|
538
|
-
return f"filename: {filename}\ncontent: {content}"
|
539
|
-
else:
|
540
|
-
logger.warning(f"No content extracted from attachment {filename}")
|
541
|
-
return f"filename: {filename}\ncontent: [No extractable content]"
|
542
|
-
|
504
|
+
|
505
|
+
yield from self._load_attachment(content=response.content,
|
506
|
+
file_name=filename,
|
507
|
+
attachment_metadata=attachment_metadata)
|
508
|
+
|
543
509
|
except requests.RequestException as req_e:
|
544
510
|
logger.error(f"Unable to download attachment {filename} with existing token: {req_e}")
|
545
511
|
|
@@ -560,23 +526,13 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
560
526
|
fresh_headers = {'Authorization': f'Bearer {fresh_token}'}
|
561
527
|
response = requests.get(download_link, headers=fresh_headers, timeout=60)
|
562
528
|
response.raise_for_status()
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
file_name=filename,
|
568
|
-
llm=self.llm,
|
569
|
-
is_capture_image=True
|
570
|
-
) if ext == '.pdf' else load_content_from_bytes(response.content, ext, llm=self.llm)
|
571
|
-
|
572
|
-
if content:
|
573
|
-
return f"filename: {filename}\ncontent: {content}"
|
574
|
-
else:
|
575
|
-
return f"filename: {filename}\ncontent: [Content extraction failed after re-auth]"
|
529
|
+
|
530
|
+
yield from self._load_attachment(content=response.content,
|
531
|
+
file_name=filename,
|
532
|
+
attachment_metadata=attachment_metadata)
|
576
533
|
|
577
534
|
except Exception as reauth_e:
|
578
535
|
logger.error(f"Re-authentication and retry failed for {filename}: {reauth_e}")
|
579
|
-
return f"Attachment: {filename} (download failed: {str(req_e)}, re-auth failed: {str(reauth_e)})"
|
580
536
|
else:
|
581
537
|
try:
|
582
538
|
auth_token = self._ensure_auth_token()
|
@@ -587,31 +543,32 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
587
543
|
}
|
588
544
|
response = requests.get(download_link, headers=fallback_headers, timeout=60)
|
589
545
|
response.raise_for_status()
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
file_name=filename,
|
595
|
-
llm=self.llm,
|
596
|
-
is_capture_image=True
|
597
|
-
) if ext == '.pdf' else load_content_from_bytes(response.content, ext, llm=self.llm)
|
598
|
-
|
599
|
-
if content:
|
600
|
-
return f"filename: {filename}\ncontent: {content}"
|
601
|
-
else:
|
602
|
-
return f"filename: {filename}\ncontent: [Content extraction failed after fallback]"
|
546
|
+
|
547
|
+
yield from self._load_attachment(content=response.content,
|
548
|
+
file_name=filename,
|
549
|
+
attachment_metadata=attachment_metadata)
|
603
550
|
|
604
551
|
except Exception as fallback_e:
|
605
552
|
logger.error(f"Fallback download also failed for {filename}: {fallback_e}")
|
606
|
-
return f"Attachment: {filename} (download failed: {str(req_e)}, fallback failed: {str(fallback_e)})"
|
607
553
|
|
608
554
|
except Exception as parse_e:
|
609
555
|
logger.error(f"Unable to parse attachment {filename}: {parse_e}")
|
610
|
-
return f"Attachment: {filename} (parsing failed: {str(parse_e)})"
|
611
556
|
|
612
557
|
except Exception as e:
|
613
558
|
logger.error(f"Error processing attachment: {e}")
|
614
|
-
|
559
|
+
|
560
|
+
def _load_attachment(self, content, file_name, attachment_metadata) -> Generator[Document, None, None]:
|
561
|
+
content_docs = load_file_docs(file_content=content, file_name=file_name,
|
562
|
+
llm=self.llm, is_capture_image=True, excel_by_sheets=True)
|
563
|
+
|
564
|
+
if not content_docs or isinstance(content_docs, ToolException):
|
565
|
+
return
|
566
|
+
for doc in content_docs:
|
567
|
+
yield Document(page_content=doc.page_content,
|
568
|
+
metadata={
|
569
|
+
**doc.metadata,
|
570
|
+
**attachment_metadata
|
571
|
+
})
|
615
572
|
|
616
573
|
def _index_tool_params(self, **kwargs) -> dict[str, tuple[type, Field]]:
|
617
574
|
return {
|
@@ -649,6 +606,8 @@ class XrayApiWrapper(BaseVectorStoreToolApiWrapper):
|
|
649
606
|
'skip_attachment_extensions': (Optional[List[str]], Field(
|
650
607
|
description="List of file extensions to skip when processing attachments (e.g., ['.exe', '.zip', '.bin'])",
|
651
608
|
default=None)),
|
609
|
+
'chunking_tool': (Literal['json'],
|
610
|
+
Field(description="Name of chunking tool for base document", default='json')),
|
652
611
|
}
|
653
612
|
|
654
613
|
def _get_tests_direct(self, jql: str) -> List[Dict]:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: alita_sdk
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.273
|
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
|
@@ -118,7 +118,7 @@ alita_sdk/runtime/tools/pgvector_search.py,sha256=NN2BGAnq4SsDHIhUcFZ8d_dbEOM8Qw
|
|
118
118
|
alita_sdk/runtime/tools/prompt.py,sha256=nJafb_e5aOM1Rr3qGFCR-SKziU9uCsiP2okIMs9PppM,741
|
119
119
|
alita_sdk/runtime/tools/router.py,sha256=wCvZjVkdXK9dMMeEerrgKf5M790RudH68pDortnHSz0,1517
|
120
120
|
alita_sdk/runtime/tools/tool.py,sha256=lE1hGi6qOAXG7qxtqxarD_XMQqTghdywf261DZawwno,5631
|
121
|
-
alita_sdk/runtime/tools/vectorstore.py,sha256=
|
121
|
+
alita_sdk/runtime/tools/vectorstore.py,sha256=6uApWGZMUVIGOkRyktIbZCo_CRz7gSJOacRVsqAeAR0,35759
|
122
122
|
alita_sdk/runtime/tools/vectorstore_base.py,sha256=CTAsQXImOHjlcddU2hoqyRAf8iNaDMTfr0pJbIaOG7o,27744
|
123
123
|
alita_sdk/runtime/utils/AlitaCallback.py,sha256=E4LlSBuCHWiUq6W7IZExERHZY0qcmdjzc_rJlF2iQIw,7356
|
124
124
|
alita_sdk/runtime/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -131,8 +131,8 @@ alita_sdk/runtime/utils/toolkit_runtime.py,sha256=MU63Fpxj0b5_r1IUUc0Q3-PN9VwL7r
|
|
131
131
|
alita_sdk/runtime/utils/toolkit_utils.py,sha256=I9QFqnaqfVgN26LUr6s3XlBlG6y0CoHURnCzG7XcwVs,5311
|
132
132
|
alita_sdk/runtime/utils/utils.py,sha256=VXNLsdeTmf6snn9EtUyobv4yL-xzLhUcH8P_ORMifYc,675
|
133
133
|
alita_sdk/tools/__init__.py,sha256=ko5TToGYZFmBrho26DRAVvrkHWxQ2sfs8gVAASinYp8,10611
|
134
|
-
alita_sdk/tools/base_indexer_toolkit.py,sha256=
|
135
|
-
alita_sdk/tools/elitea_base.py,sha256=
|
134
|
+
alita_sdk/tools/base_indexer_toolkit.py,sha256=Ufoz6Alm8fkicOaEKSWhuwgUIDKb55skLg5cKPvRvJE,18461
|
135
|
+
alita_sdk/tools/elitea_base.py,sha256=bxuKgcYMmm8MdK4ziXwdJxsFv51bo5luScesp-2_gNE,32867
|
136
136
|
alita_sdk/tools/non_code_indexer_toolkit.py,sha256=v9uq1POE1fQKCd152mbqDtF-HSe0qoDj83k4E5LAkMI,1080
|
137
137
|
alita_sdk/tools/ado/__init__.py,sha256=u2tdDgufGuDb-7lIgKKQlqgStL9Wd1gzNmRNYems2c0,1267
|
138
138
|
alita_sdk/tools/ado/utils.py,sha256=PTCludvaQmPLakF2EbCGy66Mro4-rjDtavVP-xcB2Wc,1252
|
@@ -258,7 +258,7 @@ alita_sdk/tools/google/bigquery/tool.py,sha256=Esf9Hsp8I0e7-5EdkFqQ-bid0cfrg-bfS
|
|
258
258
|
alita_sdk/tools/google_places/__init__.py,sha256=Tg_dfKTc0qxcG-1HVuQQB11PYph2RDWSUVhrlgxqk64,3491
|
259
259
|
alita_sdk/tools/google_places/api_wrapper.py,sha256=7nZly6nk4f4Tm7s2MVdnnwlb-1_WHRrDhyjDiqoyPjA,4674
|
260
260
|
alita_sdk/tools/jira/__init__.py,sha256=0NJikFWEqK8DSohXPUYD4iDLJFS8btxhqQ60acWwC3k,6063
|
261
|
-
alita_sdk/tools/jira/api_wrapper.py,sha256=
|
261
|
+
alita_sdk/tools/jira/api_wrapper.py,sha256=ia4eOjT2oe6aNfO1y8FJv5sVle1DLb9uKM6FcMTsnm4,78928
|
262
262
|
alita_sdk/tools/keycloak/__init__.py,sha256=0WB9yXMUUAHQRni1ghDEmd7GYa7aJPsTVlZgMCM9cQ0,3050
|
263
263
|
alita_sdk/tools/keycloak/api_wrapper.py,sha256=cOGr0f3S3-c6tRDBWI8wMnetjoNSxiV5rvC_0VHb8uw,3100
|
264
264
|
alita_sdk/tools/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -329,7 +329,7 @@ alita_sdk/tools/utils/content_parser.py,sha256=KM6K37VLAAvzwvoHFpJBoRB5d7w6z3mZC
|
|
329
329
|
alita_sdk/tools/vector_adapters/VectorStoreAdapter.py,sha256=a6FAsiix_EvATIKUf5YT6vHh5LDyJ5uSP3LJqoxFo04,17367
|
330
330
|
alita_sdk/tools/vector_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
331
331
|
alita_sdk/tools/xray/__init__.py,sha256=BnG2StSfX44CUMtrjHTcSCDWxxse5tCZqwyaZSkBKIc,4230
|
332
|
-
alita_sdk/tools/xray/api_wrapper.py,sha256=
|
332
|
+
alita_sdk/tools/xray/api_wrapper.py,sha256=9EM6WxA1ohVtFBet8Bz0eO2ky5mwYQP1BGYH6zRUC8I,30498
|
333
333
|
alita_sdk/tools/yagmail/__init__.py,sha256=c4Qn3em0tLxzRmFKpzbBgY9W2EnOoKf0azoDJHng5CY,2208
|
334
334
|
alita_sdk/tools/yagmail/yagmail_wrapper.py,sha256=SKoGVd1X4Ew3ad5tOdtPoY00M6jStNdT3q7GXEjQc5g,1952
|
335
335
|
alita_sdk/tools/zephyr/Zephyr.py,sha256=ODZbg9Aw0H0Rbv-HcDXLI4KHbPiLDHoteDofshw9A_k,1508
|
@@ -347,8 +347,8 @@ alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=HOt9ShtJI_1tVPcwd3Rwk-VS0SMLq
|
|
347
347
|
alita_sdk/tools/zephyr_squad/__init__.py,sha256=0AI_j27xVO5Gk5HQMFrqPTd4uvuVTpiZUicBrdfEpKg,2796
|
348
348
|
alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=kmw_xol8YIYFplBLWTqP_VKPRhL_1ItDD0_vXTe_UuI,14906
|
349
349
|
alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=R371waHsms4sllHCbijKYs90C-9Yu0sSR3N4SUfQOgU,5066
|
350
|
-
alita_sdk-0.3.
|
351
|
-
alita_sdk-0.3.
|
352
|
-
alita_sdk-0.3.
|
353
|
-
alita_sdk-0.3.
|
354
|
-
alita_sdk-0.3.
|
350
|
+
alita_sdk-0.3.273.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
351
|
+
alita_sdk-0.3.273.dist-info/METADATA,sha256=QF_6a0thWIu1eE7PhW4lwMo-87vDv2SqpulH_jRPVbI,18897
|
352
|
+
alita_sdk-0.3.273.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
353
|
+
alita_sdk-0.3.273.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
|
354
|
+
alita_sdk-0.3.273.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|