alita-sdk 0.3.205__py3-none-any.whl → 0.3.207__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 +314 -11
- alita_sdk/runtime/langchain/assistant.py +22 -21
- alita_sdk/runtime/langchain/interfaces/llm_processor.py +1 -4
- alita_sdk/runtime/langchain/langraph_agent.py +6 -1
- alita_sdk/runtime/langchain/store_manager.py +4 -4
- alita_sdk/runtime/toolkits/application.py +5 -10
- alita_sdk/runtime/toolkits/tools.py +11 -21
- alita_sdk/runtime/tools/vectorstore.py +25 -11
- alita_sdk/runtime/utils/streamlit.py +505 -222
- alita_sdk/runtime/utils/toolkit_runtime.py +147 -0
- alita_sdk/runtime/utils/toolkit_utils.py +157 -0
- alita_sdk/runtime/utils/utils.py +5 -0
- alita_sdk/tools/__init__.py +2 -0
- alita_sdk/tools/ado/repos/repos_wrapper.py +20 -13
- alita_sdk/tools/bitbucket/api_wrapper.py +5 -5
- alita_sdk/tools/bitbucket/cloud_api_wrapper.py +54 -29
- alita_sdk/tools/elitea_base.py +9 -4
- alita_sdk/tools/gitlab/__init__.py +22 -10
- alita_sdk/tools/gitlab/api_wrapper.py +278 -253
- alita_sdk/tools/gitlab/tools.py +354 -376
- alita_sdk/tools/llm/llm_utils.py +0 -6
- alita_sdk/tools/memory/__init__.py +54 -10
- alita_sdk/tools/openapi/__init__.py +14 -3
- alita_sdk/tools/sharepoint/__init__.py +2 -1
- alita_sdk/tools/sharepoint/api_wrapper.py +11 -3
- alita_sdk/tools/testrail/api_wrapper.py +39 -16
- alita_sdk/tools/utils/content_parser.py +77 -13
- {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/METADATA +1 -1
- {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/RECORD +32 -40
- alita_sdk/community/analysis/__init__.py +0 -0
- alita_sdk/community/analysis/ado_analyse/__init__.py +0 -103
- alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -261
- alita_sdk/community/analysis/github_analyse/__init__.py +0 -98
- alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -166
- alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -110
- alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -172
- alita_sdk/community/analysis/jira_analyse/__init__.py +0 -141
- alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -252
- alita_sdk/runtime/llms/alita.py +0 -259
- {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/WHEEL +0 -0
- {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/licenses/LICENSE +0 -0
- {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/top_level.txt +0 -0
@@ -1,30 +1,21 @@
|
|
1
1
|
alita_sdk/__init__.py,sha256=fxeNiqiVpIFAJls31Oomifyrtd5gT9iPUTdkWjDOB2Y,656
|
2
2
|
alita_sdk/community/__init__.py,sha256=8N7wWwPhoyOq3p8wlV3-pb3l3nJCR8TUrtV9iIPLU88,2523
|
3
3
|
alita_sdk/community/utils.py,sha256=lvuCJaNqVPHOORJV6kIPcXJcdprVW_TJvERtYAEgpjM,249
|
4
|
-
alita_sdk/community/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
alita_sdk/community/analysis/ado_analyse/__init__.py,sha256=ADjjyV2z7XmQhOv873Mrz_-W9jWxhWpiDJ0nujm0eZs,4232
|
6
|
-
alita_sdk/community/analysis/ado_analyse/api_wrapper.py,sha256=evWq2GS4SxfOc4bryhhG21QTVHII65_4CmqAJN2iGd0,8721
|
7
|
-
alita_sdk/community/analysis/github_analyse/__init__.py,sha256=QmHgXYaUSBmyFNUVV89OMuhoTe0E6Q-7ftG5s8N3j_w,3682
|
8
|
-
alita_sdk/community/analysis/github_analyse/api_wrapper.py,sha256=w_umxdeSDRuZvckQIAmihty4YL7Be3K28S1wV5hhgRY,6872
|
9
|
-
alita_sdk/community/analysis/gitlab_analyse/__init__.py,sha256=6PgqvD0cX5evpT_vgGv48sXMHCJYn_MPqaOAUxhxS2g,4243
|
10
|
-
alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py,sha256=xGX3io2rT_DJl1PMiP9d6lsw6xhr9L2h910raGk1s4w,6373
|
11
|
-
alita_sdk/community/analysis/jira_analyse/__init__.py,sha256=oyAVkjq4KZmSA1RiAijeo4oh9hNDgFmOCkDilUJ8DWs,6023
|
12
|
-
alita_sdk/community/analysis/jira_analyse/api_wrapper.py,sha256=Ui1GBWizIFGFOi98BtkPWxVITQbrv7xFZxxYjAFq66Q,9701
|
13
4
|
alita_sdk/runtime/__init__.py,sha256=4W0UF-nl3QF2bvET5lnah4o24CoTwSoKXhuN0YnwvEE,828
|
14
5
|
alita_sdk/runtime/clients/__init__.py,sha256=BdehU5GBztN1Qi1Wul0cqlU46FxUfMnI6Vq2Zd_oq1M,296
|
15
6
|
alita_sdk/runtime/clients/artifact.py,sha256=4N2t5x3GibyXLq3Fvrv2o_VA7Z000yNfc-UN4eGsHZg,2679
|
16
|
-
alita_sdk/runtime/clients/client.py,sha256=
|
7
|
+
alita_sdk/runtime/clients/client.py,sha256=R2ISXLCi7ODQaw6juPlknCtWkcSeZw-lmq3VOc6V-yM,35783
|
17
8
|
alita_sdk/runtime/clients/datasource.py,sha256=HAZovoQN9jBg0_-lIlGBQzb4FJdczPhkHehAiVG3Wx0,1020
|
18
9
|
alita_sdk/runtime/clients/prompt.py,sha256=li1RG9eBwgNK_Qf0qUaZ8QNTmsncFrAL2pv3kbxZRZg,1447
|
19
10
|
alita_sdk/runtime/langchain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
alita_sdk/runtime/langchain/assistant.py,sha256=
|
11
|
+
alita_sdk/runtime/langchain/assistant.py,sha256=Bn9vUyZlFAP-D9Bh3zc2G1ZQkh5rr2c2g5t1WAQW6Hw,13388
|
21
12
|
alita_sdk/runtime/langchain/chat_message_template.py,sha256=kPz8W2BG6IMyITFDA5oeb5BxVRkHEVZhuiGl4MBZKdc,2176
|
22
13
|
alita_sdk/runtime/langchain/constants.py,sha256=eHVJ_beJNTf1WJo4yq7KMK64fxsRvs3lKc34QCXSbpk,3319
|
23
14
|
alita_sdk/runtime/langchain/indexer.py,sha256=0ENHy5EOhThnAiYFc7QAsaTNp9rr8hDV_hTK8ahbatk,37592
|
24
|
-
alita_sdk/runtime/langchain/langraph_agent.py,sha256=
|
15
|
+
alita_sdk/runtime/langchain/langraph_agent.py,sha256=QwD9NZ74Hp4rZvP7nirzOmjFJhfJ7eiuAvsq7aAW4Uw,43563
|
25
16
|
alita_sdk/runtime/langchain/mixedAgentParser.py,sha256=M256lvtsL3YtYflBCEp-rWKrKtcY1dJIyRGVv7KW9ME,2611
|
26
17
|
alita_sdk/runtime/langchain/mixedAgentRenderes.py,sha256=asBtKqm88QhZRILditjYICwFVKF5KfO38hu2O-WrSWE,5964
|
27
|
-
alita_sdk/runtime/langchain/store_manager.py,sha256=
|
18
|
+
alita_sdk/runtime/langchain/store_manager.py,sha256=i8Fl11IXJhrBXq1F1ukEVln57B1IBe-tqSUvfUmBV4A,2218
|
28
19
|
alita_sdk/runtime/langchain/utils.py,sha256=Npferkn10dvdksnKzLJLBI5bNGQyVWTBwqp3vQtUqmY,6631
|
29
20
|
alita_sdk/runtime/langchain/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
21
|
alita_sdk/runtime/langchain/agents/xml_chat.py,sha256=Mx7PK5T97_GrFCwHHZ3JZP42S7MwtUzV0W-_8j6Amt8,6212
|
@@ -44,7 +35,7 @@ alita_sdk/runtime/langchain/document_loaders/constants.py,sha256=QpgMiKo-riIBuU6
|
|
44
35
|
alita_sdk/runtime/langchain/document_loaders/utils.py,sha256=ifh0UJiweIb2iEb2_THJy2pbAnTupOffGtTdRA7vjeE,874
|
45
36
|
alita_sdk/runtime/langchain/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
37
|
alita_sdk/runtime/langchain/interfaces/kwextractor.py,sha256=kSJA9L8g8UArmHu7Bd9dIO0Rrq86JPUb8RYNlnN68FQ,3072
|
47
|
-
alita_sdk/runtime/langchain/interfaces/llm_processor.py,sha256=
|
38
|
+
alita_sdk/runtime/langchain/interfaces/llm_processor.py,sha256=tbEsue5E31hz09HeMGDcdEipLyObQ5q1kFTIjEzUKDM,8667
|
48
39
|
alita_sdk/runtime/langchain/interfaces/loaders.py,sha256=li-O2dubiDNYn-qfVcDsuD4LqP_IZ61cV2vHUZAqeXc,3337
|
49
40
|
alita_sdk/runtime/langchain/interfaces/splitters.py,sha256=tW65-Ejj9VYyxXFZNgPts_CKILQ18bWp_1bZ-24FKGc,3630
|
50
41
|
alita_sdk/runtime/langchain/retrievers/AlitaRetriever.py,sha256=osChtJxUlfpsFESpJSE5mnJAkxTXnzgFZnC6l5mUlbo,6148
|
@@ -63,15 +54,14 @@ alita_sdk/runtime/langchain/tools/bdd_parser/bdd_parser.py,sha256=DiEEOqDef2Xo3x
|
|
63
54
|
alita_sdk/runtime/langchain/tools/bdd_parser/feature_types.py,sha256=l3AdjSQnNv1CE1NuHi7wts6h6AsCiK-iPu0PnPf3jf0,399
|
64
55
|
alita_sdk/runtime/langchain/tools/bdd_parser/parser.py,sha256=1H1Nd_OH5Wx8A5YV1zUghBxo613yPptZ7fqNo8Eg48M,17289
|
65
56
|
alita_sdk/runtime/llms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
|
-
alita_sdk/runtime/llms/alita.py,sha256=SHKlQ3LVrzISHbDl3BLinvTjPu28EMHuOtvwSYtuQ6c,10130
|
67
57
|
alita_sdk/runtime/llms/preloaded.py,sha256=3AaUbZK3d8fvxAQMjR3ftOoYa0SnkCOL1EvdvDCXIHE,11321
|
68
58
|
alita_sdk/runtime/toolkits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
69
|
-
alita_sdk/runtime/toolkits/application.py,sha256=
|
59
|
+
alita_sdk/runtime/toolkits/application.py,sha256=Mn8xwIdlbuyNzroH-WVVWJG0biOUV7u8qS15fQJ_XmI,2186
|
70
60
|
alita_sdk/runtime/toolkits/artifact.py,sha256=7fTr9VpGd2zwCB3EwW4aqWa5jVKRTunqV3ETMJWGNmU,2356
|
71
61
|
alita_sdk/runtime/toolkits/datasource.py,sha256=qk78OdPoReYPCWwahfkKLbKc4pfsu-061oXRryFLP6I,2498
|
72
62
|
alita_sdk/runtime/toolkits/prompt.py,sha256=WIpTkkVYWqIqOWR_LlSWz3ug8uO9tm5jJ7aZYdiGRn0,1192
|
73
63
|
alita_sdk/runtime/toolkits/subgraph.py,sha256=ZYqI4yVLbEPAjCR8dpXbjbL2ipX598Hk3fL6AgaqFD4,1758
|
74
|
-
alita_sdk/runtime/toolkits/tools.py,sha256=
|
64
|
+
alita_sdk/runtime/toolkits/tools.py,sha256=eYAOzxiCcHzwssPTvgS_qDLNbhBu9BHsyqQWjO41_LA,7587
|
75
65
|
alita_sdk/runtime/toolkits/vectorstore.py,sha256=BGppQADa1ZiLO17fC0uCACTTEvPHlodEDYEzUcBRbAA,2901
|
76
66
|
alita_sdk/runtime/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
67
|
alita_sdk/runtime/tools/agent.py,sha256=m98QxOHwnCRTT9j18Olbb5UPS8-ZGeQaGiUyZJSyFck,3162
|
@@ -89,21 +79,23 @@ alita_sdk/runtime/tools/pgvector_search.py,sha256=NN2BGAnq4SsDHIhUcFZ8d_dbEOM8Qw
|
|
89
79
|
alita_sdk/runtime/tools/prompt.py,sha256=nJafb_e5aOM1Rr3qGFCR-SKziU9uCsiP2okIMs9PppM,741
|
90
80
|
alita_sdk/runtime/tools/router.py,sha256=wCvZjVkdXK9dMMeEerrgKf5M790RudH68pDortnHSz0,1517
|
91
81
|
alita_sdk/runtime/tools/tool.py,sha256=lE1hGi6qOAXG7qxtqxarD_XMQqTghdywf261DZawwno,5631
|
92
|
-
alita_sdk/runtime/tools/vectorstore.py,sha256=
|
82
|
+
alita_sdk/runtime/tools/vectorstore.py,sha256=RhGg2gGY5PFfllouuwB5uLkM_lAlr_SqpsziLKgXq1U,30672
|
93
83
|
alita_sdk/runtime/utils/AlitaCallback.py,sha256=E4LlSBuCHWiUq6W7IZExERHZY0qcmdjzc_rJlF2iQIw,7356
|
94
84
|
alita_sdk/runtime/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
95
85
|
alita_sdk/runtime/utils/constants.py,sha256=Xntx1b_uxUzT4clwqHA_U6K8y5bBqf_4lSQwXdcWrp4,13586
|
96
86
|
alita_sdk/runtime/utils/evaluate.py,sha256=iM1P8gzBLHTuSCe85_Ng_h30m52hFuGuhNXJ7kB1tgI,1872
|
97
87
|
alita_sdk/runtime/utils/logging.py,sha256=svPyiW8ztDfhqHFITv5FBCj8UhLxz6hWcqGIY6wpJJE,3331
|
98
88
|
alita_sdk/runtime/utils/save_dataframe.py,sha256=i-E1wp-t4wb17Zq3nA3xYwgSILjoXNizaQAA9opWvxY,1576
|
99
|
-
alita_sdk/runtime/utils/streamlit.py,sha256=
|
100
|
-
alita_sdk/runtime/utils/
|
101
|
-
alita_sdk/
|
102
|
-
alita_sdk/
|
89
|
+
alita_sdk/runtime/utils/streamlit.py,sha256=ZgHpibL2ARHt6qrWj5JhK6HNZv2UjxQ04qTk6gmz1Eo,104928
|
90
|
+
alita_sdk/runtime/utils/toolkit_runtime.py,sha256=MU63Fpxj0b5_r1IUUc0Q3-PN9VwL7rUxp2MRR4tmYR8,5136
|
91
|
+
alita_sdk/runtime/utils/toolkit_utils.py,sha256=I9QFqnaqfVgN26LUr6s3XlBlG6y0CoHURnCzG7XcwVs,5311
|
92
|
+
alita_sdk/runtime/utils/utils.py,sha256=FoHtcQZ6JFFU8a1FG_V-W22v-bis0XsIc_XQmjH6Mzg,461
|
93
|
+
alita_sdk/tools/__init__.py,sha256=kTw83lzfWf4HWlvGzfwwHhQlRhpPAbfCAhKkMWCzLFo,10324
|
94
|
+
alita_sdk/tools/elitea_base.py,sha256=WjZYjBb1K5HySsbmkbSXUa9_7HYR3xvTHaMC6XCb_Z4,23391
|
103
95
|
alita_sdk/tools/ado/__init__.py,sha256=mD6GHcYMTtffPJkJvFPe2rzvye_IRmXmWfI7xYuZhO4,912
|
104
96
|
alita_sdk/tools/ado/utils.py,sha256=PTCludvaQmPLakF2EbCGy66Mro4-rjDtavVP-xcB2Wc,1252
|
105
97
|
alita_sdk/tools/ado/repos/__init__.py,sha256=guYY95Gtyb0S4Jj0V1qO0x2jlRoH0H1cKjHXNwmShow,6388
|
106
|
-
alita_sdk/tools/ado/repos/repos_wrapper.py,sha256=
|
98
|
+
alita_sdk/tools/ado/repos/repos_wrapper.py,sha256=spBq-0QdRRNctz_Qbl4IIDpnjitzQLhvJzRIW_6jKNA,48583
|
107
99
|
alita_sdk/tools/ado/test_plan/__init__.py,sha256=bVywTYTvdm1rUeP2krVVMRN-xDCY--ze7NFdTxJP9ow,4708
|
108
100
|
alita_sdk/tools/ado/test_plan/test_plan_wrapper.py,sha256=p1Mptd_1J6bmkyrvf2M-FB79s8THzEesBlfgaOnRXb8,18152
|
109
101
|
alita_sdk/tools/ado/wiki/__init__.py,sha256=WCIKOisU2h3E4SNDvGfWCMZ3nRMxfH_ZhIffmSHH3XI,4576
|
@@ -123,9 +115,9 @@ alita_sdk/tools/azure_ai/search/api_wrapper.py,sha256=E4p6HPDlwgxfT_i6cvg9rN4Vn_
|
|
123
115
|
alita_sdk/tools/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
124
116
|
alita_sdk/tools/base/tool.py,sha256=-N27AodZS49vdPCgFkU-bFS9bxoPopZBnNrmwInx3d0,864
|
125
117
|
alita_sdk/tools/bitbucket/__init__.py,sha256=UYOg3PkdmERlnB5-2AetFSIwMqks7gbNstc9miE2bLY,4333
|
126
|
-
alita_sdk/tools/bitbucket/api_wrapper.py,sha256=
|
118
|
+
alita_sdk/tools/bitbucket/api_wrapper.py,sha256=mJI9S_gE7HIZutCs_hHHB-Q6ckYty-V1F9ZIZ_kkZhI,9766
|
127
119
|
alita_sdk/tools/bitbucket/bitbucket_constants.py,sha256=UsbhQ1iEvrKoxceTFPWTYhaXS1zSxbmjs1TwY0-P4gw,462
|
128
|
-
alita_sdk/tools/bitbucket/cloud_api_wrapper.py,sha256=
|
120
|
+
alita_sdk/tools/bitbucket/cloud_api_wrapper.py,sha256=RDh942FoeG57Qhf-9QmSsSuz55GuwjatarllJYV1p38,14295
|
129
121
|
alita_sdk/tools/bitbucket/tools.py,sha256=zKBUq7t9zLa1EvhlVZzyVcZSvwvdcbtz0oslgPFZeeo,15307
|
130
122
|
alita_sdk/tools/browser/__init__.py,sha256=iByi9uMGjd6v44SagIPTm5fu1vWnxIkjn3xsx86uRwI,5249
|
131
123
|
alita_sdk/tools/browser/crawler.py,sha256=jhE35dU94eQLURSM-D50tspOqEMsiGzMDbYNqNSR2mU,2279
|
@@ -207,9 +199,9 @@ alita_sdk/tools/github/graphql_client_wrapper.py,sha256=d3AGjzLGH_hdQV2V8HeAX92d
|
|
207
199
|
alita_sdk/tools/github/schemas.py,sha256=yFsqivfjCPRk9GxFJrL8sTz6nnjFCZ0j5DIfPtGSsvA,13852
|
208
200
|
alita_sdk/tools/github/tool.py,sha256=Jnnv5lenV5ds8AAdyo2m8hSzyJ117HZBjzHC6T1ck-M,1037
|
209
201
|
alita_sdk/tools/github/tool_prompts.py,sha256=y6ZW_FpUCE87Uop3WuQAZVRnzxO5t7xjBOI5bCqiluw,30194
|
210
|
-
alita_sdk/tools/gitlab/__init__.py,sha256=
|
211
|
-
alita_sdk/tools/gitlab/api_wrapper.py,sha256=
|
212
|
-
alita_sdk/tools/gitlab/tools.py,sha256=
|
202
|
+
alita_sdk/tools/gitlab/__init__.py,sha256=hU6j3UE5WEauDTR2ul16jZwlZJ5nzxU5I1uUJ3oml4Y,4182
|
203
|
+
alita_sdk/tools/gitlab/api_wrapper.py,sha256=5wh9v_xbl1a9EfjxT2LGVJ8PvA8SBW-XO1Qv0U3pIdo,20008
|
204
|
+
alita_sdk/tools/gitlab/tools.py,sha256=vOGTlSaGaFmWn6LS6YFP-FuTqUPun9vnv1VrUcUHAZQ,16500
|
213
205
|
alita_sdk/tools/gitlab/utils.py,sha256=Z2XiqIg54ouqqt1to-geFybmkCb1I6bpE91wfnINH1I,2320
|
214
206
|
alita_sdk/tools/gitlab_org/__init__.py,sha256=_DJ5y92E6GuNBtCuaEZakGNInxbuFtvLYZMTMCDf3Js,3713
|
215
207
|
alita_sdk/tools/gitlab_org/api_wrapper.py,sha256=WQr5HjxDV3Ry4vreIV67sHYesHmzreQ6teQ06Ub71Ms,28196
|
@@ -229,15 +221,15 @@ alita_sdk/tools/keycloak/__init__.py,sha256=0WB9yXMUUAHQRni1ghDEmd7GYa7aJPsTVlZg
|
|
229
221
|
alita_sdk/tools/keycloak/api_wrapper.py,sha256=cOGr0f3S3-c6tRDBWI8wMnetjoNSxiV5rvC_0VHb8uw,3100
|
230
222
|
alita_sdk/tools/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
231
223
|
alita_sdk/tools/llm/img_utils.py,sha256=-DEdA9G7W3JNQdLK7HbptRlp0W6IVA1q2SCaxGRFS1M,1603
|
232
|
-
alita_sdk/tools/llm/llm_utils.py,sha256=
|
224
|
+
alita_sdk/tools/llm/llm_utils.py,sha256=6P2j-42JGbyqpO8lNRuEP8GEhja-LC9E-98jTelK12k,1151
|
233
225
|
alita_sdk/tools/localgit/__init__.py,sha256=NScO0Eu-wl-rc63jjD5Qv1RXXB1qukSIJXx-yS_JQLI,2529
|
234
226
|
alita_sdk/tools/localgit/local_git.py,sha256=gsAftNcK7nMCd8VsIkwDLs2SoG0MgpYdkQG5tmoynkA,18074
|
235
227
|
alita_sdk/tools/localgit/tool.py,sha256=It_B24rMvFPurB355Oy5IShg2BsZTASsEoSS8hu2SXw,998
|
236
|
-
alita_sdk/tools/memory/__init__.py,sha256=
|
228
|
+
alita_sdk/tools/memory/__init__.py,sha256=Z3txBO3BMEk539_uBhGQaT57JWBVImbmZ8oPcLMj9ik,3900
|
237
229
|
alita_sdk/tools/ocr/__init__.py,sha256=pvslKVXyJmK0q23FFDNieuc7RBIuzNXTjTNj-GqhGb0,3335
|
238
230
|
alita_sdk/tools/ocr/api_wrapper.py,sha256=08UF8wj1sR8DcW0z16pw19bgLatLkBF8dySW-Ds8iRk,29649
|
239
231
|
alita_sdk/tools/ocr/text_detection.py,sha256=1DBxt54r3_HdEi93QynSIVta3rH3UpIvy799TPtDTtk,23825
|
240
|
-
alita_sdk/tools/openapi/__init__.py,sha256=
|
232
|
+
alita_sdk/tools/openapi/__init__.py,sha256=x1U4SGApL6MmNFz9SSsQCv352wMAIdGv0z4eMmYnjCw,4984
|
241
233
|
alita_sdk/tools/pandas/__init__.py,sha256=rGenKJH5b9__qM4GerpyLT5YEhNk7W1gA7gn6Zpew04,2748
|
242
234
|
alita_sdk/tools/pandas/api_wrapper.py,sha256=froH0h7NPPyFUHWNioESzJ-PQQ522oBM7hNTMfh3qAw,11494
|
243
235
|
alita_sdk/tools/pandas/dataframe/__init__.py,sha256=iOZRlYDEtwqg2MaYFFxETjN8yHAkUqSNe86cm6ao4LA,108
|
@@ -276,8 +268,8 @@ alita_sdk/tools/salesforce/model.py,sha256=wzpbTdUx5mANApAZFQIKzq7xXtYBiiSlKvrTX
|
|
276
268
|
alita_sdk/tools/servicenow/__init__.py,sha256=VHH3qpUbEJ0tdtrIiWakohCmbifUOPgCVXERN3jRwsU,4234
|
277
269
|
alita_sdk/tools/servicenow/api_wrapper.py,sha256=WpH-bBLGFdhehs4g-K-WAkNuaD1CSrwsDpdgB3RG53s,6120
|
278
270
|
alita_sdk/tools/servicenow/servicenow_client.py,sha256=Rdqfu-ll-qbnclMzChLZBsfXRDzgoX_FdeI2WLApWxc,3269
|
279
|
-
alita_sdk/tools/sharepoint/__init__.py,sha256=
|
280
|
-
alita_sdk/tools/sharepoint/api_wrapper.py,sha256=
|
271
|
+
alita_sdk/tools/sharepoint/__init__.py,sha256=CiaOmzPl-9WNWZU9AtP-Y-Mg_uBnxeKFTnUjJ5aQbmA,3036
|
272
|
+
alita_sdk/tools/sharepoint/api_wrapper.py,sha256=YNtXmathHN46FCD4M9zDs2li0USdKW35lRXckYU8XdU,10011
|
281
273
|
alita_sdk/tools/sharepoint/authorization_helper.py,sha256=n-nL5dlBoLMK70nHu7P2RYCb8C6c9HMA_gEaw8LxuhE,2007
|
282
274
|
alita_sdk/tools/sharepoint/utils.py,sha256=fZ1YzAu5CTjKSZeslowpOPH974902S8vCp1Wu7L44LM,446
|
283
275
|
alita_sdk/tools/slack/__init__.py,sha256=mbP2JiHybGSAH0ay8pxvPCqeU2eb9CK_NaCKG1uhPE4,3894
|
@@ -288,9 +280,9 @@ alita_sdk/tools/sql/models.py,sha256=AKJgSl_kEEz4fZfw3kbvdGHXaRZ-yiaqfJOB6YOj3i0
|
|
288
280
|
alita_sdk/tools/testio/__init__.py,sha256=qi12wyJXN02hrUXg08CbijcCL5pi30JMbJfiXjn1Zr0,2646
|
289
281
|
alita_sdk/tools/testio/api_wrapper.py,sha256=BvmL5h634BzG6p7ajnQLmj-uoAw1gjWnd4FHHu1h--Q,21638
|
290
282
|
alita_sdk/tools/testrail/__init__.py,sha256=YILz5ZjkHfBg1tQ-FKFBP_s0uo2WDY110Qgsg0kBntM,4157
|
291
|
-
alita_sdk/tools/testrail/api_wrapper.py,sha256=
|
283
|
+
alita_sdk/tools/testrail/api_wrapper.py,sha256=Sfe_5sJk-cIAYRlpO7DcCN117UAPbBIzf_HI6fVrOQ8,31999
|
292
284
|
alita_sdk/tools/utils/__init__.py,sha256=155xepXPr4OEzs2Mz5YnjXcBpxSv1X2eznRUVoPtyK0,3268
|
293
|
-
alita_sdk/tools/utils/content_parser.py,sha256=
|
285
|
+
alita_sdk/tools/utils/content_parser.py,sha256=Ou967dO3JnnL9kAidzofwV6TVe2_ul86ZMjcBOK-VnA,7811
|
294
286
|
alita_sdk/tools/xray/__init__.py,sha256=dn-Ine9mHF8c_yZ-pWkn-gvSvSmGwdrqxPJOz6Cmqc4,3297
|
295
287
|
alita_sdk/tools/xray/api_wrapper.py,sha256=l7Cwvh_5bEaH0IM3yLo1PSClqV1E20wH_sEHaJntM3s,8517
|
296
288
|
alita_sdk/tools/yagmail/__init__.py,sha256=c4Qn3em0tLxzRmFKpzbBgY9W2EnOoKf0azoDJHng5CY,2208
|
@@ -307,8 +299,8 @@ alita_sdk/tools/zephyr_scale/api_wrapper.py,sha256=VDsSFUTnBne1mFNssX2eLFxThXAhX
|
|
307
299
|
alita_sdk/tools/zephyr_squad/__init__.py,sha256=0AI_j27xVO5Gk5HQMFrqPTd4uvuVTpiZUicBrdfEpKg,2796
|
308
300
|
alita_sdk/tools/zephyr_squad/api_wrapper.py,sha256=kmw_xol8YIYFplBLWTqP_VKPRhL_1ItDD0_vXTe_UuI,14906
|
309
301
|
alita_sdk/tools/zephyr_squad/zephyr_squad_cloud_client.py,sha256=R371waHsms4sllHCbijKYs90C-9Yu0sSR3N4SUfQOgU,5066
|
310
|
-
alita_sdk-0.3.
|
311
|
-
alita_sdk-0.3.
|
312
|
-
alita_sdk-0.3.
|
313
|
-
alita_sdk-0.3.
|
314
|
-
alita_sdk-0.3.
|
302
|
+
alita_sdk-0.3.207.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
303
|
+
alita_sdk-0.3.207.dist-info/METADATA,sha256=5lVazejNDrCxd8_C-cvo3UuvhtgU7mVpW6WZAUqR_6Q,18917
|
304
|
+
alita_sdk-0.3.207.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
305
|
+
alita_sdk-0.3.207.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
|
306
|
+
alita_sdk-0.3.207.dist-info/RECORD,,
|
File without changes
|
@@ -1,103 +0,0 @@
|
|
1
|
-
from typing import List, Optional, Literal
|
2
|
-
from elitea_analyse.ado.azure_search import AzureSearch
|
3
|
-
from pydantic import SecretStr, create_model, BaseModel, ConfigDict, Field
|
4
|
-
|
5
|
-
from langchain_core.tools import BaseTool, BaseToolkit
|
6
|
-
|
7
|
-
from alita_sdk.tools.utils import get_max_toolkit_length
|
8
|
-
from alita_sdk.tools.base.tool import BaseAction
|
9
|
-
from alita_sdk.runtime.clients.client import AlitaClient # Add this import at the top of the file
|
10
|
-
from alita_sdk.runtime.tools.artifact import ArtifactWrapper
|
11
|
-
from .api_wrapper import AdoAnalyseWrapper
|
12
|
-
|
13
|
-
from ...utils import check_schema
|
14
|
-
|
15
|
-
|
16
|
-
name = "Analyse_Ado"
|
17
|
-
|
18
|
-
|
19
|
-
class AnalyseAdo(BaseToolkit):
|
20
|
-
tools: List[BaseTool] = []
|
21
|
-
toolkit_max_length: int = 0
|
22
|
-
|
23
|
-
@staticmethod
|
24
|
-
def toolkit_config_schema() -> type[BaseModel]:
|
25
|
-
selected_tools = {
|
26
|
-
x["name"]: x["args_schema"].schema()
|
27
|
-
for x in AdoAnalyseWrapper.model_construct().get_available_tools()
|
28
|
-
}
|
29
|
-
AnalyseAdo.toolkit_max_length = get_max_toolkit_length(selected_tools)
|
30
|
-
|
31
|
-
return create_model(
|
32
|
-
"analyse_ado",
|
33
|
-
organization=(str, Field(description="Azure DevOps organization name",
|
34
|
-
json_schema_extra={"toolkit_name": True, "max_toolkit_length": AnalyseAdo.toolkit_max_length})),
|
35
|
-
username=(str, Field(description="Azure DevOps username (e.g., 'john.doe@domain.com')")),
|
36
|
-
token=(SecretStr, Field(description="Azure DevOps Access Token", json_schema_extra={"secret": True})),
|
37
|
-
project_keys=(Optional[str], Field(description="Azure DevOps project keys separated by comma", default=None)),
|
38
|
-
default_branch_name=(Optional[str], Field(description="Default branch name", default="main")),
|
39
|
-
area=(Optional[str], Field(description="Area path filter", default="")),
|
40
|
-
artifact_bucket_path=(Optional[str], Field(description="Artifact Bucket Path", default="analyse-ado")),
|
41
|
-
selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={"args_schemas": selected_tools})),
|
42
|
-
__config__=ConfigDict(json_schema_extra={"metadata": {
|
43
|
-
"label": "Analyse_Ado",
|
44
|
-
"icon_url": "ado-icon.svg", # ???
|
45
|
-
"hidden": True,
|
46
|
-
"sections": {
|
47
|
-
"auth": {
|
48
|
-
"required": True,
|
49
|
-
"subsections": [{"name": "Token", "fields": ["token"]}],
|
50
|
-
}
|
51
|
-
},
|
52
|
-
}
|
53
|
-
})
|
54
|
-
)
|
55
|
-
|
56
|
-
@classmethod
|
57
|
-
def get_toolkit(cls, client: "AlitaClient", selected_tools: list[str], **kwargs):
|
58
|
-
|
59
|
-
bucket_path = kwargs.get("artifact_bucket_path") or "analyse-ado"
|
60
|
-
artifact_wrapper = ArtifactWrapper(client=client, bucket=bucket_path)
|
61
|
-
check_schema(artifact_wrapper)
|
62
|
-
|
63
|
-
project_keys = kwargs.get("project_keys") or ""
|
64
|
-
area = kwargs.get("area", "")
|
65
|
-
|
66
|
-
organization = kwargs.get("organization")
|
67
|
-
username = kwargs.get("username")
|
68
|
-
token = kwargs.get("token")
|
69
|
-
|
70
|
-
if not organization or not username or not token:
|
71
|
-
raise ValueError("Organization, username, and token must be provided.")
|
72
|
-
|
73
|
-
ado_search = AzureSearch(organization=organization, user=username, token=token)
|
74
|
-
|
75
|
-
ado_analyse_wrapper = AdoAnalyseWrapper(
|
76
|
-
artifacts_wrapper=artifact_wrapper,
|
77
|
-
project_keys=project_keys,
|
78
|
-
default_branch_name=kwargs.get("default_branch_name", "main"),
|
79
|
-
area=area,
|
80
|
-
ado_search=ado_search,
|
81
|
-
)
|
82
|
-
|
83
|
-
selected_tools = selected_tools or []
|
84
|
-
available_tools = ado_analyse_wrapper.get_available_tools()
|
85
|
-
|
86
|
-
tools = []
|
87
|
-
for tool in available_tools:
|
88
|
-
if selected_tools:
|
89
|
-
if tool["name"] not in selected_tools:
|
90
|
-
continue
|
91
|
-
tools.append(
|
92
|
-
BaseAction(
|
93
|
-
api_wrapper=ado_analyse_wrapper,
|
94
|
-
name=tool["name"],
|
95
|
-
description=tool["description"],
|
96
|
-
args_schema=tool["args_schema"],
|
97
|
-
)
|
98
|
-
)
|
99
|
-
|
100
|
-
return cls(tools=tools)
|
101
|
-
|
102
|
-
def get_tools(self):
|
103
|
-
return self.tools
|
@@ -1,261 +0,0 @@
|
|
1
|
-
import logging
|
2
|
-
|
3
|
-
from typing import Optional, Dict, Any
|
4
|
-
from langchain_core.callbacks import dispatch_custom_event
|
5
|
-
from pydantic import BaseModel, Field
|
6
|
-
|
7
|
-
from elitea_analyse.utils.constants import OUTPUT_WORK_ITEMS_FILE
|
8
|
-
from elitea_analyse.ado.azure_search import AzureSearch
|
9
|
-
from elitea_analyse.ado.main import (
|
10
|
-
OUTPUT_WORK_ITEMS,
|
11
|
-
get_work_items_several_projects,
|
12
|
-
get_commits_several_projects,
|
13
|
-
get_merge_requests_several_projects,
|
14
|
-
get_pipelines_runs_several_projects,
|
15
|
-
)
|
16
|
-
|
17
|
-
|
18
|
-
from alita_sdk.tools.elitea_base import BaseToolApiWrapper
|
19
|
-
|
20
|
-
from alita_sdk.runtime.utils.save_dataframe import save_dataframe_to_artifact
|
21
|
-
from alita_sdk.runtime.tools.artifact import ArtifactWrapper
|
22
|
-
from alita_sdk.runtime.utils.logging import with_streamlit_logs
|
23
|
-
|
24
|
-
|
25
|
-
logger = logging.getLogger(__name__)
|
26
|
-
|
27
|
-
class NoInputArgs(BaseModel):
|
28
|
-
pass
|
29
|
-
|
30
|
-
class GetAdoWorkItemsArgs(BaseModel):
|
31
|
-
resolved_after: str = Field(description="Resolveed after date (i.e. 2023-01-01)")
|
32
|
-
updated_after: str = Field(description="Updated after date (i.e. 2023-01-01)")
|
33
|
-
created_after: str = Field(description="Created after date (i.e. 2023-01-01)")
|
34
|
-
area: Optional[str] = Field(description="Area path filter.", default="")
|
35
|
-
project_keys: Optional[str] = Field(
|
36
|
-
description="One or more projects keys separated with comma.", default=""
|
37
|
-
)
|
38
|
-
|
39
|
-
|
40
|
-
class AdoCommitsArgs(BaseModel):
|
41
|
-
project_keys: Optional[str] = Field(
|
42
|
-
description="One or more projects keys separated with comma.", default=""
|
43
|
-
)
|
44
|
-
since_date: str = Field(description="Get commits after this date 'YYYY-MM-DD'")
|
45
|
-
|
46
|
-
|
47
|
-
class AdoPipelinesArgs(BaseModel):
|
48
|
-
project_keys: Optional[str] = Field(
|
49
|
-
description="One or more projects keys separated with comma.", default=""
|
50
|
-
)
|
51
|
-
|
52
|
-
|
53
|
-
class AdoAnalyseWrapper(BaseToolApiWrapper):
|
54
|
-
artifacts_wrapper: ArtifactWrapper
|
55
|
-
project_keys: str # Comma-separated list of Azure DevOps project names
|
56
|
-
default_branch_name: str = "main"
|
57
|
-
area: str = ""
|
58
|
-
ado_search: AzureSearch # Azure DevOps search client
|
59
|
-
|
60
|
-
class Config:
|
61
|
-
arbitrary_types_allowed = True
|
62
|
-
|
63
|
-
def get_projects_list(self):
|
64
|
-
"""
|
65
|
-
Get all projects in the organization that the authenticated user has access to.
|
66
|
-
Details on a page: https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/list
|
67
|
-
"""
|
68
|
-
result = self.ado_search.get_projects_list()
|
69
|
-
|
70
|
-
save_dataframe_to_artifact(
|
71
|
-
self.artifacts_wrapper,
|
72
|
-
result,
|
73
|
-
"projects_info.csv",
|
74
|
-
csv_options={"index": False},
|
75
|
-
)
|
76
|
-
|
77
|
-
return (
|
78
|
-
f"You have access to {len(result)} project. "
|
79
|
-
f"Data has been downloaded to the bucket as 'projects_info.csv'."
|
80
|
-
)
|
81
|
-
|
82
|
-
@with_streamlit_logs(tool_name="get_work_items")
|
83
|
-
def get_work_items(
|
84
|
-
self,
|
85
|
-
resolved_after: str,
|
86
|
-
updated_after: str,
|
87
|
-
created_after: str,
|
88
|
-
area: str = "",
|
89
|
-
project_keys: Optional[str] = None,
|
90
|
-
) -> str:
|
91
|
-
"""
|
92
|
-
Get work items from multiple Azure DevOps projects.
|
93
|
-
|
94
|
-
project_keys: str
|
95
|
-
Comma-separated project names.
|
96
|
-
resolved_after: str
|
97
|
-
Date filter for resolved items 'YYYY-MM-DD'.
|
98
|
-
updated_after: str
|
99
|
-
Date filter for updated items 'YYYY-MM-DD'.
|
100
|
-
created_after: str
|
101
|
-
Date filter for created items 'YYYY-MM-DD'.
|
102
|
-
area: str
|
103
|
-
Area path filter (optional).
|
104
|
-
"""
|
105
|
-
project_keys = project_keys or self.project_keys
|
106
|
-
area = area or self.area
|
107
|
-
|
108
|
-
df_work_items = get_work_items_several_projects(
|
109
|
-
project_keys,
|
110
|
-
resolved_after,
|
111
|
-
updated_after,
|
112
|
-
created_after,
|
113
|
-
area=area,
|
114
|
-
ado_search=self.ado_search,
|
115
|
-
)
|
116
|
-
|
117
|
-
save_dataframe_to_artifact(
|
118
|
-
self.artifacts_wrapper,
|
119
|
-
df_work_items,
|
120
|
-
f"{OUTPUT_WORK_ITEMS_FILE}{project_keys}.csv",
|
121
|
-
csv_options={"index_label": "id"},
|
122
|
-
)
|
123
|
-
|
124
|
-
return (
|
125
|
-
f"Work items for {project_keys} have been successfully retrieved "
|
126
|
-
f"and saved to the bucket as '{OUTPUT_WORK_ITEMS}{project_keys}.csv'."
|
127
|
-
)
|
128
|
-
|
129
|
-
async def get_commits(
|
130
|
-
self,
|
131
|
-
since_date: str,
|
132
|
-
project_keys: Optional[str] = None,
|
133
|
-
new_version: bool = True,
|
134
|
-
with_commit_size: bool = True,
|
135
|
-
) -> str:
|
136
|
-
"""
|
137
|
-
Get commits from multiple Azure DevOps projects.
|
138
|
-
|
139
|
-
since_date: str
|
140
|
-
Get commits after this date 'YYYY-MM-DD'.
|
141
|
-
project_keys: str
|
142
|
-
Comma-separated project names.
|
143
|
-
new_version: bool
|
144
|
-
Use new API version.
|
145
|
-
with_commit_size: bool
|
146
|
-
Include commit size info.
|
147
|
-
"""
|
148
|
-
project_keys = project_keys or self.project_keys
|
149
|
-
|
150
|
-
# Await the coroutine to get commits
|
151
|
-
df_commits = await get_commits_several_projects(
|
152
|
-
project_keys,
|
153
|
-
since_date,
|
154
|
-
new_version=new_version,
|
155
|
-
with_commit_size=with_commit_size,
|
156
|
-
ado_search=self.ado_search,
|
157
|
-
)
|
158
|
-
|
159
|
-
save_dataframe_to_artifact(
|
160
|
-
self.artifacts_wrapper,
|
161
|
-
df_commits,
|
162
|
-
f"commits_details_{project_keys}.csv",
|
163
|
-
csv_options={"index_label": "id"},
|
164
|
-
)
|
165
|
-
|
166
|
-
return (
|
167
|
-
f"Commits for {project_keys} have been successfully retrieved "
|
168
|
-
f"and saved to the bucket as 'commits_details_{project_keys}.csv'."
|
169
|
-
)
|
170
|
-
|
171
|
-
def get_merge_requests(
|
172
|
-
self, since_date: str, project_keys: Optional[str] = None
|
173
|
-
) -> str:
|
174
|
-
"""
|
175
|
-
Get pull requests from multiple Azure DevOps projects.
|
176
|
-
|
177
|
-
project_keys: str
|
178
|
-
Comma-separated project names.
|
179
|
-
since_date: str
|
180
|
-
Get PRs after this date 'YYYY-MM-DD'.
|
181
|
-
"""
|
182
|
-
project_keys = project_keys or self.project_keys
|
183
|
-
|
184
|
-
df_prs = get_merge_requests_several_projects(
|
185
|
-
project_keys, since_date, ado_search=self.ado_search
|
186
|
-
)
|
187
|
-
|
188
|
-
save_dataframe_to_artifact(
|
189
|
-
self.artifacts_wrapper,
|
190
|
-
df_prs,
|
191
|
-
f"merge_requests_details_{project_keys}.csv",
|
192
|
-
csv_options={"index": False},
|
193
|
-
)
|
194
|
-
|
195
|
-
return (
|
196
|
-
f"Pull requests for {project_keys} have been successfully retrieved "
|
197
|
-
f"and saved to the bucket as 'merge_requests_details_{project_keys}.csv'."
|
198
|
-
)
|
199
|
-
|
200
|
-
def get_pipelines_runs(
|
201
|
-
self,
|
202
|
-
project_keys: Optional[str] = None,
|
203
|
-
) -> str:
|
204
|
-
"""
|
205
|
-
Get pipeline runs from multiple Azure DevOps projects.
|
206
|
-
|
207
|
-
project_keys: str
|
208
|
-
Comma-separated project names.
|
209
|
-
"""
|
210
|
-
project_keys = project_keys or self.project_keys
|
211
|
-
pipelines_df = get_pipelines_runs_several_projects(project_keys, ado_search=self.ado_search)
|
212
|
-
|
213
|
-
save_dataframe_to_artifact(
|
214
|
-
self.artifacts_wrapper, pipelines_df, f"pipelines_runs_{project_keys}.csv", csv_options={"index": False}
|
215
|
-
)
|
216
|
-
|
217
|
-
return (
|
218
|
-
f"Pipeline runs for {project_keys} have been successfully retrieved "
|
219
|
-
f"and saved to the bucket as 'pipelines_runs_{project_keys}.csv'."
|
220
|
-
)
|
221
|
-
|
222
|
-
def get_available_tools(self) -> list[Dict[str, Any]]:
|
223
|
-
"""Get a list of available tools."""
|
224
|
-
return [
|
225
|
-
{
|
226
|
-
"name": "get_projects_list",
|
227
|
-
"description": self.get_projects_list.__doc__,
|
228
|
-
"ref": self.get_projects_list,
|
229
|
-
"args_schema": NoInputArgs,
|
230
|
-
},
|
231
|
-
{
|
232
|
-
"name": "get_work_items",
|
233
|
-
"description": self.get_work_items.__doc__,
|
234
|
-
"ref": self.get_work_items,
|
235
|
-
"args_schema": GetAdoWorkItemsArgs,
|
236
|
-
},
|
237
|
-
{
|
238
|
-
"name": "get_commits",
|
239
|
-
"description": self.get_commits.__doc__,
|
240
|
-
"ref": self.get_commits,
|
241
|
-
"args_schema": AdoCommitsArgs,
|
242
|
-
},
|
243
|
-
{
|
244
|
-
"name": "get_merge_requests",
|
245
|
-
"description": self.get_merge_requests.__doc__,
|
246
|
-
"ref": self.get_merge_requests,
|
247
|
-
"args_schema": AdoCommitsArgs,
|
248
|
-
},
|
249
|
-
{
|
250
|
-
"name": "get_pipelines_runs",
|
251
|
-
"description": self.get_pipelines_runs.__doc__,
|
252
|
-
"ref": self.get_pipelines_runs,
|
253
|
-
"args_schema": AdoPipelinesArgs,
|
254
|
-
},
|
255
|
-
]
|
256
|
-
|
257
|
-
def run(self, mode: str, *args: Any, **kwargs: Any):
|
258
|
-
for tool in self.get_available_tools():
|
259
|
-
if tool["name"] == mode:
|
260
|
-
return tool["ref"](*args, **kwargs)
|
261
|
-
raise ValueError(f"Unknown mode: {mode}")
|
@@ -1,98 +0,0 @@
|
|
1
|
-
from typing import List, Optional, Literal
|
2
|
-
from pydantic import SecretStr, create_model, BaseModel, ConfigDict, Field
|
3
|
-
|
4
|
-
from langchain_core.tools import BaseTool, BaseToolkit
|
5
|
-
|
6
|
-
from elitea_analyse.github.github_org import GitHubGetOrgLvl
|
7
|
-
from alita_sdk.runtime.clients.client import AlitaClient
|
8
|
-
from alita_sdk.tools.utils import get_max_toolkit_length
|
9
|
-
from alita_sdk.tools.base.tool import BaseAction
|
10
|
-
|
11
|
-
from alita_sdk.runtime.tools.artifact import ArtifactWrapper
|
12
|
-
from .api_wrapper import GitHubAnalyseWrapper
|
13
|
-
|
14
|
-
from ...utils import check_schema
|
15
|
-
|
16
|
-
|
17
|
-
name = "Analyse_Github"
|
18
|
-
|
19
|
-
|
20
|
-
class AnalyseGithub(BaseToolkit):
|
21
|
-
tools: List[BaseTool] = []
|
22
|
-
toolkit_max_length: int = 0
|
23
|
-
|
24
|
-
@staticmethod
|
25
|
-
def toolkit_config_schema() -> type[BaseModel]:
|
26
|
-
selected_tools = {
|
27
|
-
x["name"]: x["args_schema"].schema()
|
28
|
-
for x in GitHubAnalyseWrapper.model_construct().get_available_tools()
|
29
|
-
}
|
30
|
-
AnalyseGithub.toolkit_max_length = get_max_toolkit_length(selected_tools)
|
31
|
-
|
32
|
-
return create_model(
|
33
|
-
"analyse_github",
|
34
|
-
owner=(str, Field(description="GitHub owner name",
|
35
|
-
json_schema_extra={"toolkit_name": True, "max_toolkit_length": AnalyseGithub.toolkit_max_length})),
|
36
|
-
token=(SecretStr, Field(description="Github Access Token", json_schema_extra={"secret": True})),
|
37
|
-
repos=(Optional[str],
|
38
|
-
Field(description="Comma-separated list of GitHub repository names e.g. 'repo1,repo2'", default=None)),
|
39
|
-
artifact_bucket_path=(Optional[str],
|
40
|
-
Field(description="Artifact Bucket Path", default="analyse-github")),
|
41
|
-
selected_tools=(
|
42
|
-
List[Literal[tuple(selected_tools)]], Field(default=[],
|
43
|
-
json_schema_extra={"args_schemas": selected_tools})
|
44
|
-
),
|
45
|
-
__config__=ConfigDict(json_schema_extra={"metadata": {
|
46
|
-
"label": "Analyse_Github",
|
47
|
-
"icon_url": None, # ?? is exists
|
48
|
-
"hidden": True,
|
49
|
-
"sections": {
|
50
|
-
"auth": {
|
51
|
-
"required": True,
|
52
|
-
"subsections": [{"name": "Token", "fields": ["token"]}],
|
53
|
-
}
|
54
|
-
},
|
55
|
-
}
|
56
|
-
})
|
57
|
-
)
|
58
|
-
|
59
|
-
@classmethod
|
60
|
-
def get_toolkit(cls, client: "AlitaClient", selected_tools: list[str], **kwargs):
|
61
|
-
bucket_path = kwargs.get("artifact_bucket_path") or "analyse-github"
|
62
|
-
artifact_wrapper = ArtifactWrapper(client=client, bucket=bucket_path)
|
63
|
-
check_schema(artifact_wrapper)
|
64
|
-
|
65
|
-
owner = kwargs.get("owner")
|
66
|
-
token = kwargs.get("token")
|
67
|
-
|
68
|
-
if not owner or not token:
|
69
|
-
raise ValueError("GitHub owner and token must be provided.")
|
70
|
-
|
71
|
-
git = GitHubGetOrgLvl(owner=owner, token=token)
|
72
|
-
|
73
|
-
github_analyse_wrapper = GitHubAnalyseWrapper(
|
74
|
-
artifacts_wrapper=artifact_wrapper,
|
75
|
-
repos=kwargs.get("repos") or "",
|
76
|
-
git=git
|
77
|
-
)
|
78
|
-
|
79
|
-
selected_tools = selected_tools or []
|
80
|
-
available_tools = github_analyse_wrapper.get_available_tools()
|
81
|
-
|
82
|
-
tools = []
|
83
|
-
for tool in available_tools:
|
84
|
-
if selected_tools and tool["name"] not in selected_tools:
|
85
|
-
continue
|
86
|
-
tools.append(
|
87
|
-
BaseAction(
|
88
|
-
api_wrapper=github_analyse_wrapper,
|
89
|
-
name=tool["name"],
|
90
|
-
description=tool["description"],
|
91
|
-
args_schema=tool["args_schema"],
|
92
|
-
)
|
93
|
-
)
|
94
|
-
|
95
|
-
return cls(tools=tools)
|
96
|
-
|
97
|
-
def get_tools(self):
|
98
|
-
return self.tools
|