alita-sdk 0.3.428.post2__py3-none-any.whl → 0.3.429__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/clients/client.py +12 -31
- alita_sdk/runtime/clients/mcp_discovery.py +342 -0
- alita_sdk/runtime/clients/mcp_manager.py +262 -0
- alita_sdk/runtime/langchain/constants.py +1 -1
- alita_sdk/runtime/models/mcp_models.py +57 -0
- alita_sdk/runtime/toolkits/__init__.py +24 -0
- alita_sdk/runtime/toolkits/mcp.py +667 -0
- alita_sdk/runtime/toolkits/tools.py +8 -1
- alita_sdk/runtime/tools/mcp_inspect_tool.py +248 -0
- alita_sdk/runtime/tools/mcp_server_tool.py +52 -2
- alita_sdk/runtime/utils/streamlit.py +34 -3
- alita_sdk/runtime/utils/toolkit_utils.py +5 -2
- alita_sdk/tools/__init__.py +11 -0
- alita_sdk/tools/chunkers/sematic/proposal_chunker.py +1 -1
- alita_sdk/tools/figma/__init__.py +3 -49
- alita_sdk/tools/figma/api_wrapper.py +123 -1157
- alita_sdk/tools/qtest/api_wrapper.py +52 -1236
- alita_sdk/tools/utils/content_parser.py +1 -36
- {alita_sdk-0.3.428.post2.dist-info → alita_sdk-0.3.429.dist-info}/METADATA +1 -1
- {alita_sdk-0.3.428.post2.dist-info → alita_sdk-0.3.429.dist-info}/RECORD +23 -20
- alita_sdk/tools/figma/figma_client.py +0 -73
- alita_sdk/tools/figma/toon_tools.py +0 -2748
- {alita_sdk-0.3.428.post2.dist-info → alita_sdk-0.3.429.dist-info}/WHEEL +0 -0
- {alita_sdk-0.3.428.post2.dist-info → alita_sdk-0.3.429.dist-info}/licenses/LICENSE +0 -0
- {alita_sdk-0.3.428.post2.dist-info → alita_sdk-0.3.429.dist-info}/top_level.txt +0 -0
|
@@ -212,41 +212,6 @@ def load_content_from_bytes(file_content: bytes, extension: str = None, loader_e
|
|
|
212
212
|
if temp_file_path and os.path.exists(temp_file_path):
|
|
213
213
|
os.remove(temp_file_path)
|
|
214
214
|
|
|
215
|
-
|
|
216
|
-
def _load_content_from_bytes_with_prompt(file_content: bytes, extension: str = None, loader_extra_config: dict = None, llm = None, prompt: str = image_processing_prompt) -> str:
|
|
217
|
-
"""Internal helper that behaves like load_content_from_bytes but also propagates prompt.
|
|
218
|
-
|
|
219
|
-
This keeps the public load_content_from_bytes API unchanged while allowing newer
|
|
220
|
-
code paths to pass an explicit prompt through to the loader.
|
|
221
|
-
"""
|
|
222
|
-
temp_file_path = None
|
|
223
|
-
try:
|
|
224
|
-
with tempfile.NamedTemporaryFile(mode='w+b', delete=False, suffix=extension or '') as temp_file:
|
|
225
|
-
temp_file.write(file_content)
|
|
226
|
-
temp_file.flush()
|
|
227
|
-
temp_file_path = temp_file.name
|
|
228
|
-
|
|
229
|
-
# Use prepare_loader so that prompt and other kwargs are handled consistently
|
|
230
|
-
loader = prepare_loader(
|
|
231
|
-
file_name=None,
|
|
232
|
-
file_content=None,
|
|
233
|
-
is_capture_image=loader_extra_config.get('extract_images') if loader_extra_config else False,
|
|
234
|
-
page_number=loader_extra_config.get('page_number') if loader_extra_config else None,
|
|
235
|
-
sheet_name=loader_extra_config.get('sheet_name') if loader_extra_config else None,
|
|
236
|
-
llm=llm or (loader_extra_config.get('llm') if loader_extra_config else None),
|
|
237
|
-
file_path=temp_file_path,
|
|
238
|
-
excel_by_sheets=loader_extra_config.get('excel_by_sheets') if loader_extra_config else False,
|
|
239
|
-
prompt=prompt or (loader_extra_config.get('prompt') if loader_extra_config else image_processing_prompt),
|
|
240
|
-
)
|
|
241
|
-
|
|
242
|
-
documents = loader.load()
|
|
243
|
-
page_contents = [doc.page_content for doc in documents]
|
|
244
|
-
return "\n".join(page_contents)
|
|
245
|
-
finally:
|
|
246
|
-
if temp_file_path and os.path.exists(temp_file_path):
|
|
247
|
-
os.remove(temp_file_path)
|
|
248
|
-
|
|
249
|
-
|
|
250
215
|
def process_document_by_type(content, extension_source: str, document: Document = None, llm = None, chunking_config=None) \
|
|
251
216
|
-> Generator[Document, None, None]:
|
|
252
217
|
"""Process the content of a file based on its type using a configured loader cosidering the origin document."""
|
|
@@ -373,4 +338,4 @@ def file_extension_by_chunker(chunker_name: str) -> str | None:
|
|
|
373
338
|
return ".xml"
|
|
374
339
|
if name == "csv":
|
|
375
340
|
return ".csv"
|
|
376
|
-
return None
|
|
341
|
+
return None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alita_sdk
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.429
|
|
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 <lifedj27@gmail.com>, Artem Dubrovskiy <ad13box@gmail.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -36,14 +36,16 @@ alita_sdk/configurations/zephyr_essential.py,sha256=TiZedsBlfIDroflipvoqxjJeEWPo
|
|
|
36
36
|
alita_sdk/runtime/__init__.py,sha256=4W0UF-nl3QF2bvET5lnah4o24CoTwSoKXhuN0YnwvEE,828
|
|
37
37
|
alita_sdk/runtime/clients/__init__.py,sha256=BdehU5GBztN1Qi1Wul0cqlU46FxUfMnI6Vq2Zd_oq1M,296
|
|
38
38
|
alita_sdk/runtime/clients/artifact.py,sha256=b7hVuGRROt6qUcT11uAZqzJqslzmlgW-Y6oGsiwNmjI,4029
|
|
39
|
-
alita_sdk/runtime/clients/client.py,sha256=
|
|
39
|
+
alita_sdk/runtime/clients/client.py,sha256=ElJdZHYLpuXLQadoHMcuhiHzs8HVUiiv5rZE7UU-iNg,45896
|
|
40
40
|
alita_sdk/runtime/clients/datasource.py,sha256=HAZovoQN9jBg0_-lIlGBQzb4FJdczPhkHehAiVG3Wx0,1020
|
|
41
|
+
alita_sdk/runtime/clients/mcp_discovery.py,sha256=veQlrVo14RzKPiyPDLz6Qq0kr5uP-E6bQbvOcZ9dQbc,11691
|
|
42
|
+
alita_sdk/runtime/clients/mcp_manager.py,sha256=Ed8gZOTgo44DkS-wZvhpmNcNvCX504krdqF4Gn6Mn_A,9044
|
|
41
43
|
alita_sdk/runtime/clients/prompt.py,sha256=li1RG9eBwgNK_Qf0qUaZ8QNTmsncFrAL2pv3kbxZRZg,1447
|
|
42
44
|
alita_sdk/runtime/clients/sandbox_client.py,sha256=kGOGfm3OAFmYeTM4bIuKbhRsOiOhF0M1q8takBe-sWY,16637
|
|
43
45
|
alita_sdk/runtime/langchain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
46
|
alita_sdk/runtime/langchain/assistant.py,sha256=qKoEjbGuUnX-OZDHmSaK3plb1jON9unzEwAjxBT9DY8,16044
|
|
45
47
|
alita_sdk/runtime/langchain/chat_message_template.py,sha256=kPz8W2BG6IMyITFDA5oeb5BxVRkHEVZhuiGl4MBZKdc,2176
|
|
46
|
-
alita_sdk/runtime/langchain/constants.py,sha256=
|
|
48
|
+
alita_sdk/runtime/langchain/constants.py,sha256=oiEHg1h_IYUA5NE8O6nEF24hpxahi9BTvJWrkXjbVcU,3405
|
|
47
49
|
alita_sdk/runtime/langchain/indexer.py,sha256=0ENHy5EOhThnAiYFc7QAsaTNp9rr8hDV_hTK8ahbatk,37592
|
|
48
50
|
alita_sdk/runtime/langchain/langraph_agent.py,sha256=CxDFfUTCG-i8koMR9PwOktvlcdUe5cyG4D8CQHrTH1E,51836
|
|
49
51
|
alita_sdk/runtime/langchain/mixedAgentParser.py,sha256=M256lvtsL3YtYflBCEp-rWKrKtcY1dJIyRGVv7KW9ME,2611
|
|
@@ -95,14 +97,16 @@ alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py,sha256=l3AdjSQnNv1
|
|
|
95
97
|
alita_sdk/runtime/langchain/tools/bdd_parser/parser.py,sha256=1H1Nd_OH5Wx8A5YV1zUghBxo613yPptZ7fqNo8Eg48M,17289
|
|
96
98
|
alita_sdk/runtime/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
99
|
alita_sdk/runtime/llms/preloaded.py,sha256=3AaUbZK3d8fvxAQMjR3ftOoYa0SnkCOL1EvdvDCXIHE,11321
|
|
98
|
-
alita_sdk/runtime/
|
|
100
|
+
alita_sdk/runtime/models/mcp_models.py,sha256=YU4d4PXfrpvFctFEA8oGd7R9ZWvMypgFkuPVSpziwiU,2145
|
|
101
|
+
alita_sdk/runtime/toolkits/__init__.py,sha256=IenSyI2SrXSFuiWT7c8YO_mRFLVE_zNge61U4bpoyPw,631
|
|
99
102
|
alita_sdk/runtime/toolkits/application.py,sha256=HHAKgwKOckxc7EQG-AV7rz4POOzQJKFRr7AGEjmLudE,2688
|
|
100
103
|
alita_sdk/runtime/toolkits/artifact.py,sha256=YChNCX4QhVpaQG7Jk4TS-Wl0Aruc4slQ2K21zh9nNO0,3176
|
|
101
104
|
alita_sdk/runtime/toolkits/configurations.py,sha256=kIDAlnryPQfbZyFxV-9SzN2-Vefzx06TX1BBdIIpN90,141
|
|
102
105
|
alita_sdk/runtime/toolkits/datasource.py,sha256=qk78OdPoReYPCWwahfkKLbKc4pfsu-061oXRryFLP6I,2498
|
|
106
|
+
alita_sdk/runtime/toolkits/mcp.py,sha256=ARWb9Q-jphvUlhaB5gIhqE_6CH7R5G94EtEbm1Z-aes,25958
|
|
103
107
|
alita_sdk/runtime/toolkits/prompt.py,sha256=WIpTkkVYWqIqOWR_LlSWz3ug8uO9tm5jJ7aZYdiGRn0,1192
|
|
104
108
|
alita_sdk/runtime/toolkits/subgraph.py,sha256=wwUK8JjPXkGzyVZ3tAukmvST6eGbqx_U11rpnmbrvtg,2105
|
|
105
|
-
alita_sdk/runtime/toolkits/tools.py,sha256=
|
|
109
|
+
alita_sdk/runtime/toolkits/tools.py,sha256=By1G9gPlp-ZgOriWJm3b77A3ukb3Cs-SZ8dpNs0JaZw,10490
|
|
106
110
|
alita_sdk/runtime/toolkits/vectorstore.py,sha256=BGppQADa1ZiLO17fC0uCACTTEvPHlodEDYEzUcBRbAA,2901
|
|
107
111
|
alita_sdk/runtime/tools/__init__.py,sha256=Fx7iHqkzA90-KfjdcUUzMUI_7kDarjuTsSpSzOW2pN0,568
|
|
108
112
|
alita_sdk/runtime/tools/agent.py,sha256=m98QxOHwnCRTT9j18Olbb5UPS8-ZGeQaGiUyZJSyFck,3162
|
|
@@ -117,7 +121,8 @@ alita_sdk/runtime/tools/indexer_tool.py,sha256=whSLPevB4WD6dhh2JDXEivDmTvbjiMV1M
|
|
|
117
121
|
alita_sdk/runtime/tools/llm.py,sha256=iRG_wU4T01LRsjEMPZe5Uah7LiMqDc-vspwkMuQtltk,16136
|
|
118
122
|
alita_sdk/runtime/tools/loop.py,sha256=uds0WhZvwMxDVFI6MZHrcmMle637cQfBNg682iLxoJA,8335
|
|
119
123
|
alita_sdk/runtime/tools/loop_output.py,sha256=U4hO9PCQgWlXwOq6jdmCGbegtAxGAPXObSxZQ3z38uk,8069
|
|
120
|
-
alita_sdk/runtime/tools/
|
|
124
|
+
alita_sdk/runtime/tools/mcp_inspect_tool.py,sha256=EW81_XlXX5C4lxT-gHMehHcZhtbuG-8DQzo0NuDkCA4,10160
|
|
125
|
+
alita_sdk/runtime/tools/mcp_server_tool.py,sha256=y6y0j3JeUajNatpsLVJfP0JEknhlRcDRJ0PlJ3Ch8fA,6626
|
|
121
126
|
alita_sdk/runtime/tools/pgvector_search.py,sha256=NN2BGAnq4SsDHIhUcFZ8d_dbEOM8QwB0UwpsWCYruXU,11692
|
|
122
127
|
alita_sdk/runtime/tools/prompt.py,sha256=nJafb_e5aOM1Rr3qGFCR-SKziU9uCsiP2okIMs9PppM,741
|
|
123
128
|
alita_sdk/runtime/tools/router.py,sha256=p7e0tX6YAWw2M2Nq0A_xqw1E2P-Xz1DaJvhUstfoZn4,1584
|
|
@@ -131,11 +136,11 @@ alita_sdk/runtime/utils/constants.py,sha256=Xntx1b_uxUzT4clwqHA_U6K8y5bBqf_4lSQw
|
|
|
131
136
|
alita_sdk/runtime/utils/evaluate.py,sha256=iM1P8gzBLHTuSCe85_Ng_h30m52hFuGuhNXJ7kB1tgI,1872
|
|
132
137
|
alita_sdk/runtime/utils/logging.py,sha256=svPyiW8ztDfhqHFITv5FBCj8UhLxz6hWcqGIY6wpJJE,3331
|
|
133
138
|
alita_sdk/runtime/utils/save_dataframe.py,sha256=i-E1wp-t4wb17Zq3nA3xYwgSILjoXNizaQAA9opWvxY,1576
|
|
134
|
-
alita_sdk/runtime/utils/streamlit.py,sha256=
|
|
139
|
+
alita_sdk/runtime/utils/streamlit.py,sha256=yIb4YIGH8HRAXZtZlywjxI07Xdcb5eUt7rMA-elFTdc,107261
|
|
135
140
|
alita_sdk/runtime/utils/toolkit_runtime.py,sha256=MU63Fpxj0b5_r1IUUc0Q3-PN9VwL7rUxp2MRR4tmYR8,5136
|
|
136
|
-
alita_sdk/runtime/utils/toolkit_utils.py,sha256=
|
|
141
|
+
alita_sdk/runtime/utils/toolkit_utils.py,sha256=n11byeV6uLHAT7D8lPgIA0FE7tergbaRfbrwTWh5Twk,5447
|
|
137
142
|
alita_sdk/runtime/utils/utils.py,sha256=PJK8A-JVIzY1IowOjGG8DIqsIiEFe65qDKvFcjJCKWA,1041
|
|
138
|
-
alita_sdk/tools/__init__.py,sha256=
|
|
143
|
+
alita_sdk/tools/__init__.py,sha256=DzhwEeQNk27oMTq1UWWuyYqjOBT-ypWR2XByxBN1bks,11232
|
|
139
144
|
alita_sdk/tools/base_indexer_toolkit.py,sha256=hK1Q2dvNctZCw2K1-khlQrR1Q0JDQviZjqDUiqpnazg,27180
|
|
140
145
|
alita_sdk/tools/code_indexer_toolkit.py,sha256=2VkOC8JfBDc25_jp-NWyMYqpaYRETIzTJFLrIYrfBpE,7814
|
|
141
146
|
alita_sdk/tools/elitea_base.py,sha256=34fmVdYgd2YXifU5LFNjMQysr4OOIZ6AOZjq4GxLgSw,34417
|
|
@@ -213,7 +218,7 @@ alita_sdk/tools/chunkers/sematic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
|
|
|
213
218
|
alita_sdk/tools/chunkers/sematic/base.py,sha256=bRHpCFbOy-KPe4HBGpegrvIhvOsd7sDRfmb06T8tSuU,349
|
|
214
219
|
alita_sdk/tools/chunkers/sematic/json_chunker.py,sha256=wzlGeoS4qZOQA6Alcc0sn6zAxZSGVdwCLm0wHqmMODA,1038
|
|
215
220
|
alita_sdk/tools/chunkers/sematic/markdown_chunker.py,sha256=HmAGKuIodnMcHl-kBwAb1NY0GKKwAskRFvGaW3m4HAM,3859
|
|
216
|
-
alita_sdk/tools/chunkers/sematic/proposal_chunker.py,sha256=
|
|
221
|
+
alita_sdk/tools/chunkers/sematic/proposal_chunker.py,sha256=33RQfonQK_qyOQWx1EmWIihpKAghfMswgsHlKNdwMgA,5098
|
|
217
222
|
alita_sdk/tools/chunkers/sematic/statistical_chunker.py,sha256=VDQcMC-ky72GqdWJiHMmcRmfJTTU5XglBF1IWg2Qews,13403
|
|
218
223
|
alita_sdk/tools/cloud/__init__.py,sha256=ekqANTJAyuURqpjNTn6MmSn2q6qEKwENxEXBUFGkkck,512
|
|
219
224
|
alita_sdk/tools/cloud/aws/__init__.py,sha256=dewHtDC0lS4ZtB0B98RX8I8CdHY54k13Tcwb7YdjXlQ,3132
|
|
@@ -238,10 +243,8 @@ alita_sdk/tools/custom_open_api/__init__.py,sha256=9aT5SPNPWcJC6jMZEM-3rUCXVULj_
|
|
|
238
243
|
alita_sdk/tools/custom_open_api/api_wrapper.py,sha256=sDSFpvEqpSvXHGiBISdQQcUecfO3md-_F8hAi6p2dvg,4340
|
|
239
244
|
alita_sdk/tools/elastic/__init__.py,sha256=iwnSRppRpzvJ1da2K3Glu8Uu41MhBDCYbguboLkEbW0,2818
|
|
240
245
|
alita_sdk/tools/elastic/api_wrapper.py,sha256=pl8CqQxteJAGwyOhMcld-ZgtOTFwwbv42OITQVe8rM0,1948
|
|
241
|
-
alita_sdk/tools/figma/__init__.py,sha256=
|
|
242
|
-
alita_sdk/tools/figma/api_wrapper.py,sha256=
|
|
243
|
-
alita_sdk/tools/figma/figma_client.py,sha256=SQwZIFMrDk09Hqp-kbjECpwTIJyHmXDkTAj51F6Su4s,2863
|
|
244
|
-
alita_sdk/tools/figma/toon_tools.py,sha256=AWpdqHk3cKdVXPVLkjpwAG6HoaKWSySIsM1sXai4JnE,103563
|
|
246
|
+
alita_sdk/tools/figma/__init__.py,sha256=W6vIMMkZI2Lmpg6_CRRV3oadaIbVI-qTLmKUh6enqWs,4509
|
|
247
|
+
alita_sdk/tools/figma/api_wrapper.py,sha256=k5V2ufv9k3LL5dwjSVi2qIZdx6H0613mlXId3gQudMw,33788
|
|
245
248
|
alita_sdk/tools/github/__init__.py,sha256=2rHu0zZyZGnLC5CkHgDIhe14N9yCyaEfrrt7ydH8478,5191
|
|
246
249
|
alita_sdk/tools/github/api_wrapper.py,sha256=mX23Rro6xnRa35tpeWhKYcRCJx0cDTzIe32pZAKDYno,7986
|
|
247
250
|
alita_sdk/tools/github/github_client.py,sha256=0YkpD6Zm4X46jMNN57ZIypo2YObtgxCGQokJAF-laFs,86597
|
|
@@ -305,7 +308,7 @@ alita_sdk/tools/postman/postman_analysis.py,sha256=ckc2BfKEop0xnmLPksVRE_Y94ixuq
|
|
|
305
308
|
alita_sdk/tools/pptx/__init__.py,sha256=vVUrWnj7KWJgEk9oxGSsCAQ2SMSXrp_SFOdUHYQKcAo,3444
|
|
306
309
|
alita_sdk/tools/pptx/pptx_wrapper.py,sha256=yyCYcTlIY976kJ4VfPo4dyxj4yeii9j9TWP6W8ZIpN8,29195
|
|
307
310
|
alita_sdk/tools/qtest/__init__.py,sha256=Jf0xo5S_4clXR2TfCbJbB1sFgCbcFQRM-YYX2ltWBzo,4461
|
|
308
|
-
alita_sdk/tools/qtest/api_wrapper.py,sha256=
|
|
311
|
+
alita_sdk/tools/qtest/api_wrapper.py,sha256=5YJPcEGUT_V_SdgiYBoPDJHTEDfCrDgzoXTdXuGoH4I,46652
|
|
309
312
|
alita_sdk/tools/qtest/tool.py,sha256=kKzNPS4fUC76WQQttQ6kdVANViHEvKE8Kf174MQiNYU,562
|
|
310
313
|
alita_sdk/tools/rally/__init__.py,sha256=2BPPXJxAOKgfmaxVFVvxndfK0JxOXDLkoRmzu2dUwOE,3512
|
|
311
314
|
alita_sdk/tools/rally/api_wrapper.py,sha256=mouzU6g0KML4UNapdk0k6Q0pU3MpJuWnNo71n9PSEHM,11752
|
|
@@ -333,7 +336,7 @@ alita_sdk/tools/testrail/__init__.py,sha256=Xg4nVjULL_D8JpIXLYXppnwUfGF4-lguFwKH
|
|
|
333
336
|
alita_sdk/tools/testrail/api_wrapper.py,sha256=tQcGlFJmftvs5ZiO4tsP19fCo4CrJeq_UEvQR1liVfE,39891
|
|
334
337
|
alita_sdk/tools/utils/__init__.py,sha256=xB9OQgW65DftadrSpoAAitnEIbIXZKBOCji0NDe7FRM,3923
|
|
335
338
|
alita_sdk/tools/utils/available_tools_decorator.py,sha256=IbrdfeQkswxUFgvvN7-dyLMZMyXLiwvX7kgi3phciCk,273
|
|
336
|
-
alita_sdk/tools/utils/content_parser.py,sha256=
|
|
339
|
+
alita_sdk/tools/utils/content_parser.py,sha256=KqiZzsurLspxCLemf9eqYhgW266FgWP4r-xElcK8a38,15881
|
|
337
340
|
alita_sdk/tools/vector_adapters/VectorStoreAdapter.py,sha256=-9ByRh8bVRraTcJPS7SE-2l3en6A4UkKGS9iAd9fa3w,19722
|
|
338
341
|
alita_sdk/tools/vector_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
339
342
|
alita_sdk/tools/xray/__init__.py,sha256=eOMWP8VamFbbJgt1xrGpGPqB9ByOTA0Cd3LCaETzGk4,4376
|
|
@@ -355,8 +358,8 @@ alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=kT0TbmMvuKhDUZc0i7KO18O38JM9S
|
|
|
355
358
|
alita_sdk/tools/zephyr_squad/__init__.py,sha256=0ne8XLJEQSLOWfzd2HdnqOYmQlUliKHbBED5kW_Vias,2895
|
|
356
359
|
alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=kmw_xol8YIYFplBLWTqP_VKPRhL_1ItDD0_vXTe_UuI,14906
|
|
357
360
|
alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=R371waHsms4sllHCbijKYs90C-9Yu0sSR3N4SUfQOgU,5066
|
|
358
|
-
alita_sdk-0.3.
|
|
359
|
-
alita_sdk-0.3.
|
|
360
|
-
alita_sdk-0.3.
|
|
361
|
-
alita_sdk-0.3.
|
|
362
|
-
alita_sdk-0.3.
|
|
361
|
+
alita_sdk-0.3.429.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
362
|
+
alita_sdk-0.3.429.dist-info/METADATA,sha256=vgyNRfgK7JHr9ekb_1okMxgzpOg6p1fNNaeEgxg6BGY,19071
|
|
363
|
+
alita_sdk-0.3.429.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
364
|
+
alita_sdk-0.3.429.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
|
|
365
|
+
alita_sdk-0.3.429.dist-info/RECORD,,
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
from typing import Any, Dict, Optional
|
|
3
|
-
|
|
4
|
-
import requests
|
|
5
|
-
from FigmaPy import FigmaPy
|
|
6
|
-
from langchain_core.tools import ToolException
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class AlitaFigmaPy(FigmaPy):
|
|
10
|
-
"""A thin wrapper over FigmaPy that exposes HTTP error details via ToolkitException.
|
|
11
|
-
|
|
12
|
-
This class overrides ``api_request`` so that:
|
|
13
|
-
- On 2xx responses it returns the parsed JSON body (same as the original).
|
|
14
|
-
- On non-2xx responses it raises ``ToolkitException`` with status code and body
|
|
15
|
-
instead of silently returning ``None``.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
def api_request(self, endpoint: str, method: str = "get", payload: Optional[str] = None) -> Dict[str, Any]:
|
|
19
|
-
method = method.lower()
|
|
20
|
-
|
|
21
|
-
if payload is None:
|
|
22
|
-
payload = ""
|
|
23
|
-
|
|
24
|
-
if self.oauth2:
|
|
25
|
-
header = {"Authorization": f"Bearer {self.api_token}"}
|
|
26
|
-
else:
|
|
27
|
-
header = {"X-Figma-Token": f"{self.api_token}"}
|
|
28
|
-
|
|
29
|
-
header["Content-Type"] = "application/json"
|
|
30
|
-
|
|
31
|
-
url = f"{self.api_uri}{endpoint}"
|
|
32
|
-
|
|
33
|
-
try:
|
|
34
|
-
if method == "head":
|
|
35
|
-
response = requests.head(url, headers=header)
|
|
36
|
-
elif method == "delete":
|
|
37
|
-
response = requests.delete(url, headers=header)
|
|
38
|
-
elif method == "get":
|
|
39
|
-
response = requests.get(url, headers=header, data=payload)
|
|
40
|
-
elif method == "options":
|
|
41
|
-
response = requests.options(url, headers=header)
|
|
42
|
-
elif method == "post":
|
|
43
|
-
response = requests.post(url, headers=header, data=payload)
|
|
44
|
-
elif method == "put":
|
|
45
|
-
response = requests.put(url, headers=header, data=payload)
|
|
46
|
-
else:
|
|
47
|
-
raise ToolException(f"Unsupported HTTP method: {method}")
|
|
48
|
-
|
|
49
|
-
# Happy path: 2xx -> return parsed JSON
|
|
50
|
-
if 200 <= response.status_code < 300:
|
|
51
|
-
try:
|
|
52
|
-
return json.loads(response.text)
|
|
53
|
-
except json.JSONDecodeError:
|
|
54
|
-
# Fallback: return raw text wrapped in a dict
|
|
55
|
-
return {"raw": response.text}
|
|
56
|
-
|
|
57
|
-
# Error path: raise with as much context as we can
|
|
58
|
-
try:
|
|
59
|
-
data: Any = response.json()
|
|
60
|
-
except ValueError:
|
|
61
|
-
data = None
|
|
62
|
-
|
|
63
|
-
message = response.text or f"HTTP {response.status_code} {response.reason}"
|
|
64
|
-
|
|
65
|
-
# Build a detailed error string, since ToolException has no payload kwarg
|
|
66
|
-
details = data or {"status": response.status_code, "message": message}
|
|
67
|
-
raise ToolException(
|
|
68
|
-
f"Figma API error {response.status_code}: {message}. Details: {details}"
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
except (requests.HTTPError, requests.exceptions.SSLError, requests.RequestException) as e:
|
|
72
|
-
# Network / transport-level issues
|
|
73
|
-
raise ToolException(f"Figma API request failed: {e}") from e
|