alita-sdk 0.3.449__py3-none-any.whl → 0.3.465__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.

Potentially problematic release.


This version of alita-sdk might be problematic. Click here for more details.

Files changed (74) hide show
  1. alita_sdk/cli/__init__.py +10 -0
  2. alita_sdk/cli/__main__.py +17 -0
  3. alita_sdk/cli/agent/__init__.py +0 -0
  4. alita_sdk/cli/agent/default.py +176 -0
  5. alita_sdk/cli/agent_executor.py +155 -0
  6. alita_sdk/cli/agent_loader.py +197 -0
  7. alita_sdk/cli/agent_ui.py +218 -0
  8. alita_sdk/cli/agents.py +1911 -0
  9. alita_sdk/cli/callbacks.py +576 -0
  10. alita_sdk/cli/cli.py +159 -0
  11. alita_sdk/cli/config.py +164 -0
  12. alita_sdk/cli/formatting.py +182 -0
  13. alita_sdk/cli/input_handler.py +256 -0
  14. alita_sdk/cli/mcp_loader.py +315 -0
  15. alita_sdk/cli/toolkit.py +330 -0
  16. alita_sdk/cli/toolkit_loader.py +55 -0
  17. alita_sdk/cli/tools/__init__.py +36 -0
  18. alita_sdk/cli/tools/approval.py +224 -0
  19. alita_sdk/cli/tools/filesystem.py +905 -0
  20. alita_sdk/cli/tools/planning.py +403 -0
  21. alita_sdk/cli/tools/terminal.py +280 -0
  22. alita_sdk/runtime/clients/client.py +16 -1
  23. alita_sdk/runtime/langchain/constants.py +2 -1
  24. alita_sdk/runtime/langchain/langraph_agent.py +74 -20
  25. alita_sdk/runtime/langchain/utils.py +20 -4
  26. alita_sdk/runtime/toolkits/artifact.py +5 -6
  27. alita_sdk/runtime/toolkits/mcp.py +5 -2
  28. alita_sdk/runtime/toolkits/tools.py +1 -0
  29. alita_sdk/runtime/tools/function.py +19 -6
  30. alita_sdk/runtime/tools/llm.py +65 -7
  31. alita_sdk/runtime/tools/vectorstore_base.py +17 -2
  32. alita_sdk/runtime/utils/mcp_sse_client.py +64 -6
  33. alita_sdk/tools/ado/repos/__init__.py +1 -0
  34. alita_sdk/tools/ado/test_plan/__init__.py +1 -1
  35. alita_sdk/tools/ado/wiki/__init__.py +1 -5
  36. alita_sdk/tools/ado/work_item/__init__.py +1 -5
  37. alita_sdk/tools/base_indexer_toolkit.py +64 -8
  38. alita_sdk/tools/bitbucket/__init__.py +1 -0
  39. alita_sdk/tools/code/sonar/__init__.py +1 -1
  40. alita_sdk/tools/confluence/__init__.py +2 -2
  41. alita_sdk/tools/github/__init__.py +2 -2
  42. alita_sdk/tools/gitlab/__init__.py +2 -1
  43. alita_sdk/tools/gitlab_org/__init__.py +1 -2
  44. alita_sdk/tools/google_places/__init__.py +2 -1
  45. alita_sdk/tools/jira/__init__.py +1 -0
  46. alita_sdk/tools/memory/__init__.py +1 -1
  47. alita_sdk/tools/pandas/__init__.py +1 -1
  48. alita_sdk/tools/postman/__init__.py +2 -1
  49. alita_sdk/tools/pptx/__init__.py +2 -2
  50. alita_sdk/tools/qtest/__init__.py +3 -3
  51. alita_sdk/tools/qtest/api_wrapper.py +1235 -51
  52. alita_sdk/tools/rally/__init__.py +1 -2
  53. alita_sdk/tools/report_portal/__init__.py +1 -0
  54. alita_sdk/tools/salesforce/__init__.py +1 -0
  55. alita_sdk/tools/servicenow/__init__.py +2 -3
  56. alita_sdk/tools/sharepoint/__init__.py +1 -0
  57. alita_sdk/tools/sharepoint/api_wrapper.py +22 -2
  58. alita_sdk/tools/sharepoint/authorization_helper.py +17 -1
  59. alita_sdk/tools/slack/__init__.py +1 -0
  60. alita_sdk/tools/sql/__init__.py +2 -1
  61. alita_sdk/tools/testio/__init__.py +1 -0
  62. alita_sdk/tools/testrail/__init__.py +1 -3
  63. alita_sdk/tools/xray/__init__.py +2 -1
  64. alita_sdk/tools/zephyr/__init__.py +2 -1
  65. alita_sdk/tools/zephyr_enterprise/__init__.py +1 -0
  66. alita_sdk/tools/zephyr_essential/__init__.py +1 -0
  67. alita_sdk/tools/zephyr_scale/__init__.py +1 -0
  68. alita_sdk/tools/zephyr_squad/__init__.py +1 -0
  69. {alita_sdk-0.3.449.dist-info → alita_sdk-0.3.465.dist-info}/METADATA +145 -2
  70. {alita_sdk-0.3.449.dist-info → alita_sdk-0.3.465.dist-info}/RECORD +74 -52
  71. alita_sdk-0.3.465.dist-info/entry_points.txt +2 -0
  72. {alita_sdk-0.3.449.dist-info → alita_sdk-0.3.465.dist-info}/WHEEL +0 -0
  73. {alita_sdk-0.3.449.dist-info → alita_sdk-0.3.465.dist-info}/licenses/LICENSE +0 -0
  74. {alita_sdk-0.3.449.dist-info → alita_sdk-0.3.465.dist-info}/top_level.txt +0 -0
@@ -24,11 +24,6 @@ class AzureDevOpsWikiToolkit(BaseToolkit):
24
24
  AzureDevOpsWikiToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
25
25
  m = create_model(
26
26
  name_alias,
27
- name=(str, Field(description="Toolkit name",
28
- json_schema_extra={
29
- 'toolkit_name': True,
30
- 'max_toolkit_length': AzureDevOpsWikiToolkit.toolkit_max_length})
31
- ),
32
27
  ado_configuration=(AdoConfiguration, Field(description="Ado configuration", json_schema_extra={'configuration_types': ['ado']})),
33
28
  # indexer settings
34
29
  pgvector_configuration=(Optional[PgVectorConfiguration], Field(default=None,
@@ -42,6 +37,7 @@ class AzureDevOpsWikiToolkit(BaseToolkit):
42
37
  'metadata': {
43
38
  "label": "ADO wiki",
44
39
  "icon_url": "ado-wiki-icon.svg",
40
+ "max_length": AzureDevOpsWikiToolkit.toolkit_max_length,
45
41
  "categories": ["documentation"],
46
42
  "extra_categories": ["knowledge base", "documentation management", "wiki"],
47
43
  "sections": {
@@ -23,11 +23,6 @@ class AzureDevOpsWorkItemsToolkit(BaseToolkit):
23
23
  AzureDevOpsWorkItemsToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
24
24
  m = create_model(
25
25
  name,
26
- name=(str, Field(description="Toolkit name",
27
- json_schema_extra={
28
- 'toolkit_name': True,
29
- 'max_toolkit_length': AzureDevOpsWorkItemsToolkit.toolkit_max_length})
30
- ),
31
26
  ado_configuration=(AdoConfiguration, Field(description="Ado Work Item configuration", json_schema_extra={'configuration_types': ['ado']})),
32
27
  limit=(Optional[int], Field(description="ADO plans limit used for limitation of the list with results", default=5)),
33
28
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
@@ -42,6 +37,7 @@ class AzureDevOpsWorkItemsToolkit(BaseToolkit):
42
37
  'metadata': {
43
38
  "label": "ADO boards",
44
39
  "icon_url": "ado-boards-icon.svg",
40
+ "max_length": AzureDevOpsWorkItemsToolkit.toolkit_max_length,
45
41
  "categories": ["project management"],
46
42
  "extra_categories": ["work item management", "issue tracking", "agile boards"],
47
43
  "sections": {
@@ -4,6 +4,7 @@ import logging
4
4
  import time
5
5
  from typing import Any, Optional, List, Dict, Generator
6
6
 
7
+ from langchain_core.callbacks import dispatch_custom_event
7
8
  from langchain_core.documents import Document
8
9
  from pydantic import create_model, Field, SecretStr
9
10
 
@@ -15,6 +16,8 @@ from ..runtime.utils.utils import IndexerKeywords
15
16
 
16
17
  logger = logging.getLogger(__name__)
17
18
 
19
+ DEFAULT_CUT_OFF = 0.2
20
+
18
21
  # Base Vector Store Schema Models
19
22
  BaseIndexParams = create_model(
20
23
  "BaseIndexParams",
@@ -37,7 +40,7 @@ BaseSearchParams = create_model(
37
40
  default={},
38
41
  examples=["{\"key\": \"value\"}", "{\"status\": \"active\"}"]
39
42
  )),
40
- cut_off=(Optional[float], Field(description="Cut-off score for search results", default=0.5, ge=0, le=1)),
43
+ cut_off=(Optional[float], Field(description="Cut-off score for search results", default=DEFAULT_CUT_OFF, ge=0, le=1)),
41
44
  search_top=(Optional[int], Field(description="Number of top results to return", default=10)),
42
45
  full_text_search=(Optional[Dict[str, Any]], Field(
43
46
  description="Full text search parameters. Can be a dictionary with search options.",
@@ -67,7 +70,7 @@ BaseStepbackSearchParams = create_model(
67
70
  default={},
68
71
  examples=["{\"key\": \"value\"}", "{\"status\": \"active\"}"]
69
72
  )),
70
- cut_off=(Optional[float], Field(description="Cut-off score for search results", default=0.5, ge=0, le=1)),
73
+ cut_off=(Optional[float], Field(description="Cut-off score for search results", default=DEFAULT_CUT_OFF, ge=0, le=1)),
71
74
  search_top=(Optional[int], Field(description="Number of top results to return", default=10)),
72
75
  full_text_search=(Optional[Dict[str, Any]], Field(
73
76
  description="Full text search parameters. Can be a dictionary with search options.",
@@ -177,11 +180,13 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
177
180
  #
178
181
  results_count = result["count"]
179
182
  self.index_meta_update(index_name, IndexerKeywords.INDEX_META_COMPLETED.value, results_count)
183
+ self._emit_index_event(index_name)
180
184
  #
181
185
  return {"status": "ok", "message": f"successfully indexed {results_count} documents" if results_count > 0
182
186
  else "no new documents to index"}
183
187
  except Exception as e:
184
188
  self.index_meta_update(index_name, IndexerKeywords.INDEX_META_FAILED.value, result["count"])
189
+ self._emit_index_event(index_name, error=str(e))
185
190
  raise e
186
191
 
187
192
 
@@ -380,7 +385,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
380
385
  def search_index(self,
381
386
  query: str,
382
387
  index_name: str = "",
383
- filter: dict | str = {}, cut_off: float = 0.5,
388
+ filter: dict | str = {}, cut_off: float = DEFAULT_CUT_OFF,
384
389
  search_top: int = 10, reranker: dict = {},
385
390
  full_text_search: Optional[Dict[str, Any]] = None,
386
391
  reranking_config: Optional[Dict[str, Dict[str, Any]]] = None,
@@ -411,7 +416,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
411
416
  query: str,
412
417
  messages: List[Dict[str, Any]] = [],
413
418
  index_name: str = "",
414
- filter: dict | str = {}, cut_off: float = 0.5,
419
+ filter: dict | str = {}, cut_off: float = DEFAULT_CUT_OFF,
415
420
  search_top: int = 10, reranker: dict = {},
416
421
  full_text_search: Optional[Dict[str, Any]] = None,
417
422
  reranking_config: Optional[Dict[str, Dict[str, Any]]] = None,
@@ -436,7 +441,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
436
441
  query: str,
437
442
  messages: List[Dict[str, Any]] = [],
438
443
  index_name: str = "",
439
- filter: dict | str = {}, cut_off: float = 0.5,
444
+ filter: dict | str = {}, cut_off: float = DEFAULT_CUT_OFF,
440
445
  search_top: int = 10, reranker: dict = {},
441
446
  full_text_search: Optional[Dict[str, Any]] = None,
442
447
  reranking_config: Optional[Dict[str, Dict[str, Any]]] = None,
@@ -470,6 +475,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
470
475
  "collection": index_name,
471
476
  "type": IndexerKeywords.INDEX_META_TYPE.value,
472
477
  "indexed": 0,
478
+ "updated": 0,
473
479
  "state": IndexerKeywords.INDEX_META_IN_PROGRESS.value,
474
480
  "index_configuration": index_configuration,
475
481
  "created_on": created_on,
@@ -487,7 +493,8 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
487
493
  #
488
494
  if index_meta_raw:
489
495
  metadata = copy.deepcopy(index_meta_raw.get("metadata", {}))
490
- metadata["indexed"] = result
496
+ metadata["indexed"] = self.get_indexed_count(index_name)
497
+ metadata["updated"] = result
491
498
  metadata["state"] = state
492
499
  metadata["updated_on"] = time.time()
493
500
  #
@@ -507,6 +514,54 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
507
514
  index_meta_doc = Document(page_content=index_meta_raw.get("content", ""), metadata=metadata)
508
515
  add_documents(vectorstore=self.vectorstore, documents=[index_meta_doc], ids=[index_meta_raw.get("id")])
509
516
 
517
+ def _emit_index_event(self, index_name: str, error: Optional[str] = None):
518
+ """
519
+ Emit custom event for index data operation.
520
+
521
+ Args:
522
+ index_name: The name of the index
523
+ error: Error message if the operation failed, None otherwise
524
+ """
525
+ index_meta = super().get_index_meta(index_name)
526
+
527
+ if not index_meta:
528
+ logger.warning(
529
+ f"No index_meta found for index '{index_name}'. "
530
+ "Cannot emit index event."
531
+ )
532
+ return
533
+
534
+ metadata = index_meta.get("metadata", {})
535
+
536
+ # Determine if this is a reindex operation
537
+ history_raw = metadata.get("history", "[]")
538
+ try:
539
+ history = json.loads(history_raw) if history_raw.strip() else []
540
+ is_reindex = len(history) > 1
541
+ except (json.JSONDecodeError, TypeError):
542
+ is_reindex = False
543
+
544
+ # Build event message
545
+ event_data = {
546
+ "id": index_meta.get("id"),
547
+ "index_name": index_name,
548
+ "state": metadata.get("state"),
549
+ "error": error,
550
+ "reindex": is_reindex,
551
+ "indexed": metadata.get("indexed", 0),
552
+ "updated": metadata.get("updated", 0),
553
+ }
554
+
555
+ # Emit the event
556
+ try:
557
+ dispatch_custom_event("index_data_status", event_data)
558
+ logger.debug(
559
+ f"Emitted index_data_status event for index "
560
+ f"'{index_name}': {event_data}"
561
+ )
562
+ except Exception as e:
563
+ logger.warning(f"Failed to emit index_data_status event: {e}")
564
+
510
565
  def get_available_tools(self):
511
566
  """
512
567
  Returns the standardized vector search tools (search operations only).
@@ -560,6 +615,7 @@ class BaseIndexerToolkit(VectorStoreWrapperBase):
560
615
  "mode": "list_collections",
561
616
  "ref": self.list_collections,
562
617
  "description": self.list_collections.__doc__,
563
- "args_schema": create_model("ListCollectionsParams") # No parameters
618
+ # No parameters
619
+ "args_schema": create_model("ListCollectionsParams")
564
620
  },
565
- ]
621
+ ]
@@ -61,6 +61,7 @@ class AlitaBitbucketToolkit(BaseToolkit):
61
61
  'metadata':
62
62
  {
63
63
  "label": "Bitbucket", "icon_url": "bitbucket-icon.svg",
64
+ "max_length": AlitaBitbucketToolkit.toolkit_max_length,
64
65
  "categories": ["code repositories"],
65
66
  "extra_categories": ["bitbucket", "git", "repository", "code", "version control"],
66
67
  }
@@ -29,7 +29,7 @@ class SonarToolkit(BaseToolkit):
29
29
  SonarToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
30
30
  return create_model(
31
31
  name,
32
- sonar_project_name=(str, Field(description="Project name of the desired repository", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': SonarToolkit.toolkit_max_length})),
32
+ sonar_project_name=(str, Field(description="Project name of the desired repository")),
33
33
  sonar_configuration=(SonarConfiguration, Field(description="Sonar Configuration", json_schema_extra={'configuration_types': ['sonar']})),
34
34
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
35
35
  __config__=ConfigDict(json_schema_extra=
@@ -67,8 +67,7 @@ class ConfluenceToolkit(BaseToolkit):
67
67
 
68
68
  model = create_model(
69
69
  name,
70
- space=(str, Field(description="Space", json_schema_extra={'toolkit_name': True,
71
- 'max_toolkit_length': ConfluenceToolkit.toolkit_max_length})),
70
+ space=(str, Field(description="Space")),
72
71
  cloud=(bool, Field(description="Hosting Option", json_schema_extra={'configuration': True})),
73
72
  limit=(int, Field(description="Pages limit per request", default=5)),
74
73
  labels=(Optional[str], Field(
@@ -95,6 +94,7 @@ class ConfluenceToolkit(BaseToolkit):
95
94
  'metadata': {
96
95
  "label": "Confluence",
97
96
  "icon_url": None,
97
+ "max_length": ConfluenceToolkit.toolkit_max_length,
98
98
  "categories": ["documentation"],
99
99
  "extra_categories": ["confluence", "wiki", "knowledge base", "documentation", "atlassian"]
100
100
  }
@@ -53,6 +53,7 @@ class AlitaGitHubToolkit(BaseToolkit):
53
53
  'metadata': {
54
54
  "label": "GitHub",
55
55
  "icon_url": None,
56
+ "max_length": AlitaGitHubToolkit.toolkit_max_length,
56
57
  "categories": ["code repositories"],
57
58
  "extra_categories": ["github", "git", "repository", "code", "version control"],
58
59
  },
@@ -62,8 +63,7 @@ class AlitaGitHubToolkit(BaseToolkit):
62
63
  json_schema_extra={'configuration_types': ['github']})),
63
64
  pgvector_configuration=(Optional[PgVectorConfiguration], Field(description="PgVector configuration", default=None,
64
65
  json_schema_extra={'configuration_types': ['pgvector']})),
65
- repository=(str, Field(description="Github repository", json_schema_extra={'toolkit_name': True,
66
- 'max_toolkit_length': AlitaGitHubToolkit.toolkit_max_length})),
66
+ repository=(str, Field(description="Github repository")),
67
67
  active_branch=(Optional[str], Field(description="Active branch", default="main")),
68
68
  base_branch=(Optional[str], Field(description="Github Base branch", default="main")),
69
69
  # embedder settings
@@ -43,7 +43,7 @@ class AlitaGitlabToolkit(BaseToolkit):
43
43
  AlitaGitlabToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
44
44
  return create_model(
45
45
  name,
46
- repository=(str, Field(description="GitLab repository", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': AlitaGitlabToolkit.toolkit_max_length})),
46
+ repository=(str, Field(description="GitLab repository")),
47
47
  gitlab_configuration=(GitlabConfiguration, Field(description="GitLab configuration", json_schema_extra={'configuration_types': ['gitlab']})),
48
48
  branch=(str, Field(description="Main branch", default="main")),
49
49
  # indexer settings
@@ -57,6 +57,7 @@ class AlitaGitlabToolkit(BaseToolkit):
57
57
  'metadata': {
58
58
  "label": "GitLab",
59
59
  "icon_url": None,
60
+ "max_length": AlitaGitlabToolkit.toolkit_max_length,
60
61
  "categories": ["code repositories"],
61
62
  "extra_categories": ["gitlab", "git", "repository", "code", "version control"],
62
63
  }
@@ -30,8 +30,6 @@ class AlitaGitlabSpaceToolkit(BaseToolkit):
30
30
  AlitaGitlabSpaceToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
31
31
  return create_model(
32
32
  name,
33
- name=(str, Field(description="Toolkit name", json_schema_extra={'toolkit_name': True,
34
- 'max_toolkit_length': AlitaGitlabSpaceToolkit.toolkit_max_length})),
35
33
  gitlab_configuration=(GitlabConfiguration, Field(description="GitLab configuration",
36
34
  json_schema_extra={
37
35
  'configuration_types': ['gitlab']})),
@@ -46,6 +44,7 @@ class AlitaGitlabSpaceToolkit(BaseToolkit):
46
44
  'metadata': {
47
45
  "label": "GitLab Org",
48
46
  "icon_url": None,
47
+ "max_length": AlitaGitlabSpaceToolkit.toolkit_max_length,
49
48
  "categories": ["code repositories"],
50
49
  "extra_categories": ["gitlab", "git", "repository", "code", "version control"],
51
50
  }
@@ -30,7 +30,7 @@ class GooglePlacesToolkit(BaseToolkit):
30
30
  GooglePlacesToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
31
31
  return create_model(
32
32
  name,
33
- results_count=(Optional[int], Field(description="Results number to show", default=None, json_schema_extra={'toolkit_name': True, 'max_toolkit_length': GooglePlacesToolkit.toolkit_max_length})),
33
+ results_count=(Optional[int], Field(description="Results number to show", default=None)),
34
34
  google_places_configuration=(GooglePlacesConfiguration, Field(description="Google Places Configuration", json_schema_extra={'configuration_types': ['google_places']})),
35
35
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
36
36
  __config__=ConfigDict(json_schema_extra=
@@ -38,6 +38,7 @@ class GooglePlacesToolkit(BaseToolkit):
38
38
  'metadata':
39
39
  {
40
40
  "label": "Google Places", "icon_url": "gplaces-icon.svg",
41
+ "max_length": GooglePlacesToolkit.toolkit_max_length,
41
42
  "categories": ["other"],
42
43
  "extra_categories": ["google", "places", "maps", "location",
43
44
  "geolocation"],
@@ -89,6 +89,7 @@ class JiraToolkit(BaseToolkit):
89
89
  'metadata': {
90
90
  "label": "Jira",
91
91
  "icon_url": "jira-icon.svg",
92
+ "max_length": JiraToolkit.toolkit_max_length,
92
93
  "categories": ["project management"],
93
94
  "extra_categories": ["jira", "atlassian", "issue tracking", "project management", "task management"],
94
95
  }
@@ -61,7 +61,7 @@ class MemoryToolkit(BaseToolkit):
61
61
 
62
62
  return create_model(
63
63
  'memory',
64
- namespace=(str, Field(description="Memory namespace", json_schema_extra={'toolkit_name': True})),
64
+ namespace=(str, Field(description="Memory namespace")),
65
65
  pgvector_configuration=(PgVectorConfiguration, Field(description="PgVector Configuration",
66
66
  json_schema_extra={
67
67
  'configuration_types': ['pgvector']})),
@@ -29,7 +29,7 @@ class PandasToolkit(BaseToolkit):
29
29
  PandasToolkit.toolkit_max_length = get_max_toolkit_length(selected_tools)
30
30
  return create_model(
31
31
  name,
32
- bucket_name=(str, Field(default=None, title="Bucket name", description="Bucket where the content file is stored", json_schema_extra={'toolkit_name': True, 'max_toolkit_length': PandasToolkit.toolkit_max_length})),
32
+ bucket_name=(str, Field(default=None, title="Bucket name", description="Bucket where the content file is stored")),
33
33
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
34
34
  __config__=ConfigDict(json_schema_extra={'metadata': {"label": "Pandas", "icon_url": "pandas-icon.svg",
35
35
  "categories": ["analysis"],
@@ -62,7 +62,8 @@ class PostmanToolkit(BaseToolkit):
62
62
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(
63
63
  default=[], json_schema_extra={'args_schemas': selected_tools})),
64
64
  __config__=ConfigDict(json_schema_extra={'metadata': {
65
- "label": "Postman", "icon_url": "postman.svg"}})
65
+ "label": "Postman", "icon_url": "postman.svg",
66
+ "max_length": PostmanToolkit.toolkit_max_length,}})
66
67
  )
67
68
 
68
69
  @check_connection_response
@@ -45,13 +45,13 @@ class PPTXToolkit(BaseToolkit):
45
45
 
46
46
  return create_model(
47
47
  name,
48
- bucket_name=(str, Field(description="Bucket name where PPTX files are stored",
49
- json_schema_extra={'toolkit_name': True, 'max_toolkit_length': TOOLKIT_MAX_LENGTH})),
48
+ bucket_name=(str, Field(description="Bucket name where PPTX files are stored")),
50
49
  selected_tools=(List[Literal[tuple(selected_tools)]], Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
51
50
  __config__=ConfigDict(json_schema_extra={
52
51
  'metadata': {
53
52
  "label": "PPTX",
54
53
  "icon_url": "pptx.svg",
54
+ "max_length": TOOLKIT_MAX_LENGTH,
55
55
  "categories": ["office"],
56
56
  "extra_categories": ["presentation", "office automation", "document"]
57
57
  }
@@ -37,14 +37,14 @@ class QtestToolkit(BaseToolkit):
37
37
  name,
38
38
  qtest_configuration=(QtestConfiguration, Field(description="QTest API token", json_schema_extra={
39
39
  'configuration_types': ['qtest']})),
40
- qtest_project_id=(int, Field(default=None, description="QTest project id", json_schema_extra={'toolkit_name': True,
41
- 'max_toolkit_length': QtestToolkit.toolkit_max_length})),
40
+ qtest_project_id=(int, Field(default=None, description="QTest project id")),
42
41
  no_of_tests_shown_in_dql_search=(Optional[int], Field(description="Max number of items returned by dql search",
43
42
  default=10)),
44
43
 
45
44
  selected_tools=(List[Literal[tuple(selected_tools)]],
46
45
  Field(default=[], json_schema_extra={'args_schemas': selected_tools})),
47
46
  __config__=ConfigDict(json_schema_extra={'metadata': {"label": "QTest", "icon_url": "qtest.svg",
47
+ "max_length": QtestToolkit.toolkit_max_length,
48
48
  "categories": ["test management"],
49
49
  "extra_categories": ["quality assurance",
50
50
  "test case management",
@@ -93,4 +93,4 @@ class QtestToolkit(BaseToolkit):
93
93
  return cls(tools=tools)
94
94
 
95
95
  def get_tools(self):
96
- return self.tools
96
+ return self.tools