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.
Files changed (42) hide show
  1. alita_sdk/runtime/clients/client.py +314 -11
  2. alita_sdk/runtime/langchain/assistant.py +22 -21
  3. alita_sdk/runtime/langchain/interfaces/llm_processor.py +1 -4
  4. alita_sdk/runtime/langchain/langraph_agent.py +6 -1
  5. alita_sdk/runtime/langchain/store_manager.py +4 -4
  6. alita_sdk/runtime/toolkits/application.py +5 -10
  7. alita_sdk/runtime/toolkits/tools.py +11 -21
  8. alita_sdk/runtime/tools/vectorstore.py +25 -11
  9. alita_sdk/runtime/utils/streamlit.py +505 -222
  10. alita_sdk/runtime/utils/toolkit_runtime.py +147 -0
  11. alita_sdk/runtime/utils/toolkit_utils.py +157 -0
  12. alita_sdk/runtime/utils/utils.py +5 -0
  13. alita_sdk/tools/__init__.py +2 -0
  14. alita_sdk/tools/ado/repos/repos_wrapper.py +20 -13
  15. alita_sdk/tools/bitbucket/api_wrapper.py +5 -5
  16. alita_sdk/tools/bitbucket/cloud_api_wrapper.py +54 -29
  17. alita_sdk/tools/elitea_base.py +9 -4
  18. alita_sdk/tools/gitlab/__init__.py +22 -10
  19. alita_sdk/tools/gitlab/api_wrapper.py +278 -253
  20. alita_sdk/tools/gitlab/tools.py +354 -376
  21. alita_sdk/tools/llm/llm_utils.py +0 -6
  22. alita_sdk/tools/memory/__init__.py +54 -10
  23. alita_sdk/tools/openapi/__init__.py +14 -3
  24. alita_sdk/tools/sharepoint/__init__.py +2 -1
  25. alita_sdk/tools/sharepoint/api_wrapper.py +11 -3
  26. alita_sdk/tools/testrail/api_wrapper.py +39 -16
  27. alita_sdk/tools/utils/content_parser.py +77 -13
  28. {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/METADATA +1 -1
  29. {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/RECORD +32 -40
  30. alita_sdk/community/analysis/__init__.py +0 -0
  31. alita_sdk/community/analysis/ado_analyse/__init__.py +0 -103
  32. alita_sdk/community/analysis/ado_analyse/api_wrapper.py +0 -261
  33. alita_sdk/community/analysis/github_analyse/__init__.py +0 -98
  34. alita_sdk/community/analysis/github_analyse/api_wrapper.py +0 -166
  35. alita_sdk/community/analysis/gitlab_analyse/__init__.py +0 -110
  36. alita_sdk/community/analysis/gitlab_analyse/api_wrapper.py +0 -172
  37. alita_sdk/community/analysis/jira_analyse/__init__.py +0 -141
  38. alita_sdk/community/analysis/jira_analyse/api_wrapper.py +0 -252
  39. alita_sdk/runtime/llms/alita.py +0 -259
  40. {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/WHEEL +0 -0
  41. {alita_sdk-0.3.205.dist-info → alita_sdk-0.3.207.dist-info}/licenses/LICENSE +0 -0
  42. {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=t4KckYtjJo7JauxcCuQxOsjqPzhfqR4B8bJuVUorPiY,21674
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=wvRVnEXmh15QP_sIcex-6zwm4GNBP7z581GVzDfc8hw,13311
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=ssPJOf_REAx8lx2tQdnZ0ccbdiZX8WwSRcX5ASgLyxs,43327
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=w5-0GbPGJAw14g0CCD9BKFMznzk1I-iJ5OGj_HZJZgA,2211
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=AbuWlZ54Cu5zy6AExRN0ou3r15i4pY3WSIVPJx8ltkA,8764
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=akqUuaIL9u7-SsUmS-XgN4qxDEnXFhsK9do4n8inpSo,2432
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=ENR0T7833S4AiE6_Tg-xfsYHFanXMjsus_pzj-DDTnE,8004
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=yRx1hUyPhyLRPby-GWgOlWQ2zbY-zqYKw-an9-Jy6dQ,29743
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=gRwsT4lv4kujQfNSQripMPe1ZbmjbHNLSraW3FmL-qA,85710
100
- alita_sdk/runtime/utils/utils.py,sha256=dM8whOJAuFJFe19qJ69-FLzrUp6d2G-G6L7d4ss2XqM,346
101
- alita_sdk/tools/__init__.py,sha256=R5KsF1aqKFsBY2SGTYvlhk7HZSNyBoos0JMgSV6QHys,10196
102
- alita_sdk/tools/elitea_base.py,sha256=NILHGtsoWtOATGdQExtn6Svx0JwDVpmGUJsQZbGHEic,23142
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=TvABi6CbRUGcIN8h699kJ2plRCgTK83_-Ou7WzhgBws,48285
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=iyBaNotbjzhoAOR8WZ9Ue-8vs1J17R5BjnwR2zEbkvM,9721
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=NrmLVDktqKqvb7dv8SRI-WggdEqCf2lGPxkT-B9pgms,13195
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=_nbp3tJviTZxfewyV3Hp9-TK1vCxTmqlxhpwv0f_x4Y,3602
211
- alita_sdk/tools/gitlab/api_wrapper.py,sha256=qE99QPNMZ1MKZZHpd8EVJ5SYQxbkA8CVaJ43BsCMIGc,18179
212
- alita_sdk/tools/gitlab/tools.py,sha256=X6nK3hHeC-LgnzGSajVjnRHu6GTQdTv6HCi2sbiS0P4,18136
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=v3_lWP_Nk6tJLkj0BYohOun0OWNfvzqLjPdPAMl-7qY,1386
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=8Q02h-PUvIw3bNbWbfklSJZe3qj0zAjfahq9C5XjyzE,2359
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=eVFAR8BngaJaEMYhZZZcU5ZctTtAM1oyHx1P-YM3F1Q,4450
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=HqKQDFboab1AYh20uJvHxs9HFLJSqVfVTjpX9sfOP-8,2995
280
- alita_sdk/tools/sharepoint/api_wrapper.py,sha256=j5aArfEHqV3_M8JK_HZU_fzchjQXiAqkq83Osdx3Gls,9534
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=CE7oUREaLL0AXH-RF3PXORp1PrIPthR5_xnCgD6DBT4,30373
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=cdAENBS2-KPBAVbUczsuT-YJEdouKQ0SxCU6bWFfgak,4736
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.205.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
311
- alita_sdk-0.3.205.dist-info/METADATA,sha256=yvmS329tNz5JkW-qID4aiG3vM2cIGDxy3loJE8u1ivM,18917
312
- alita_sdk-0.3.205.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
313
- alita_sdk-0.3.205.dist-info/top_level.txt,sha256=0vJYy5p_jK6AwVb1aqXr7Kgqgk3WDtQ6t5C-XI9zkmg,10
314
- alita_sdk-0.3.205.dist-info/RECORD,,
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