alita-sdk 0.3.554__py3-none-any.whl → 0.3.602__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.
- alita_sdk/cli/agent_executor.py +2 -1
- alita_sdk/cli/agent_loader.py +34 -4
- alita_sdk/cli/agents.py +433 -203
- alita_sdk/configurations/openapi.py +227 -15
- alita_sdk/runtime/clients/client.py +4 -2
- alita_sdk/runtime/langchain/_constants_bkup.py +1318 -0
- alita_sdk/runtime/langchain/assistant.py +61 -11
- alita_sdk/runtime/langchain/constants.py +419 -171
- alita_sdk/runtime/langchain/document_loaders/AlitaJSONLoader.py +4 -2
- alita_sdk/runtime/langchain/document_loaders/AlitaTextLoader.py +5 -2
- alita_sdk/runtime/langchain/langraph_agent.py +106 -21
- alita_sdk/runtime/langchain/utils.py +30 -14
- alita_sdk/runtime/toolkits/__init__.py +3 -0
- alita_sdk/runtime/toolkits/artifact.py +2 -1
- alita_sdk/runtime/toolkits/mcp.py +6 -3
- alita_sdk/runtime/toolkits/mcp_config.py +1048 -0
- alita_sdk/runtime/toolkits/skill_router.py +2 -2
- alita_sdk/runtime/toolkits/tools.py +64 -2
- alita_sdk/runtime/toolkits/vectorstore.py +1 -1
- alita_sdk/runtime/tools/artifact.py +15 -0
- alita_sdk/runtime/tools/data_analysis.py +183 -0
- alita_sdk/runtime/tools/llm.py +30 -11
- alita_sdk/runtime/tools/mcp_server_tool.py +6 -3
- alita_sdk/runtime/tools/router.py +2 -4
- alita_sdk/runtime/tools/sandbox.py +9 -6
- alita_sdk/runtime/utils/constants.py +5 -1
- alita_sdk/runtime/utils/mcp_client.py +1 -1
- alita_sdk/runtime/utils/mcp_sse_client.py +1 -1
- alita_sdk/runtime/utils/toolkit_utils.py +2 -0
- alita_sdk/tools/__init__.py +3 -1
- alita_sdk/tools/ado/repos/__init__.py +26 -8
- alita_sdk/tools/ado/repos/repos_wrapper.py +78 -52
- alita_sdk/tools/ado/test_plan/__init__.py +3 -2
- alita_sdk/tools/ado/test_plan/test_plan_wrapper.py +23 -1
- alita_sdk/tools/ado/utils.py +1 -18
- alita_sdk/tools/ado/wiki/__init__.py +2 -1
- alita_sdk/tools/ado/wiki/ado_wrapper.py +23 -1
- alita_sdk/tools/ado/work_item/__init__.py +3 -2
- alita_sdk/tools/ado/work_item/ado_wrapper.py +23 -1
- alita_sdk/tools/advanced_jira_mining/__init__.py +2 -1
- alita_sdk/tools/aws/delta_lake/__init__.py +2 -1
- alita_sdk/tools/azure_ai/search/__init__.py +2 -1
- alita_sdk/tools/azure_ai/search/api_wrapper.py +1 -1
- alita_sdk/tools/base_indexer_toolkit.py +15 -6
- alita_sdk/tools/bitbucket/__init__.py +2 -1
- alita_sdk/tools/bitbucket/api_wrapper.py +1 -1
- alita_sdk/tools/bitbucket/cloud_api_wrapper.py +3 -3
- alita_sdk/tools/browser/__init__.py +1 -1
- alita_sdk/tools/carrier/__init__.py +1 -1
- alita_sdk/tools/chunkers/code/treesitter/treesitter.py +37 -13
- alita_sdk/tools/cloud/aws/__init__.py +2 -1
- alita_sdk/tools/cloud/azure/__init__.py +2 -1
- alita_sdk/tools/cloud/gcp/__init__.py +2 -1
- alita_sdk/tools/cloud/k8s/__init__.py +2 -1
- alita_sdk/tools/code/linter/__init__.py +2 -1
- alita_sdk/tools/code/sonar/__init__.py +2 -1
- alita_sdk/tools/code_indexer_toolkit.py +19 -2
- alita_sdk/tools/confluence/__init__.py +7 -6
- alita_sdk/tools/confluence/api_wrapper.py +2 -2
- alita_sdk/tools/custom_open_api/__init__.py +2 -1
- alita_sdk/tools/elastic/__init__.py +2 -1
- alita_sdk/tools/elitea_base.py +28 -9
- alita_sdk/tools/figma/__init__.py +52 -6
- alita_sdk/tools/figma/api_wrapper.py +1158 -123
- alita_sdk/tools/figma/figma_client.py +73 -0
- alita_sdk/tools/figma/toon_tools.py +2748 -0
- alita_sdk/tools/github/__init__.py +2 -1
- alita_sdk/tools/github/github_client.py +56 -92
- alita_sdk/tools/github/schemas.py +4 -4
- alita_sdk/tools/gitlab/__init__.py +2 -1
- alita_sdk/tools/gitlab/api_wrapper.py +118 -38
- alita_sdk/tools/gitlab_org/__init__.py +2 -1
- alita_sdk/tools/gitlab_org/api_wrapper.py +60 -62
- alita_sdk/tools/google/bigquery/__init__.py +2 -1
- alita_sdk/tools/google_places/__init__.py +2 -1
- alita_sdk/tools/jira/__init__.py +2 -1
- alita_sdk/tools/keycloak/__init__.py +2 -1
- alita_sdk/tools/localgit/__init__.py +2 -1
- alita_sdk/tools/memory/__init__.py +1 -1
- alita_sdk/tools/ocr/__init__.py +2 -1
- alita_sdk/tools/openapi/__init__.py +227 -15
- alita_sdk/tools/openapi/api_wrapper.py +1287 -802
- alita_sdk/tools/pandas/__init__.py +11 -5
- alita_sdk/tools/pandas/api_wrapper.py +38 -25
- alita_sdk/tools/postman/__init__.py +2 -1
- alita_sdk/tools/pptx/__init__.py +2 -1
- alita_sdk/tools/qtest/__init__.py +21 -2
- alita_sdk/tools/qtest/api_wrapper.py +430 -13
- alita_sdk/tools/rally/__init__.py +2 -1
- alita_sdk/tools/rally/api_wrapper.py +1 -1
- alita_sdk/tools/report_portal/__init__.py +2 -1
- alita_sdk/tools/salesforce/__init__.py +2 -1
- alita_sdk/tools/servicenow/__init__.py +2 -1
- alita_sdk/tools/sharepoint/__init__.py +2 -1
- alita_sdk/tools/sharepoint/api_wrapper.py +2 -2
- alita_sdk/tools/slack/__init__.py +3 -2
- alita_sdk/tools/slack/api_wrapper.py +2 -2
- alita_sdk/tools/sql/__init__.py +3 -2
- alita_sdk/tools/testio/__init__.py +2 -1
- alita_sdk/tools/testrail/__init__.py +2 -1
- alita_sdk/tools/utils/content_parser.py +77 -3
- alita_sdk/tools/utils/text_operations.py +163 -71
- alita_sdk/tools/xray/__init__.py +3 -2
- alita_sdk/tools/yagmail/__init__.py +2 -1
- alita_sdk/tools/zephyr/__init__.py +2 -1
- alita_sdk/tools/zephyr_enterprise/__init__.py +2 -1
- alita_sdk/tools/zephyr_essential/__init__.py +2 -1
- alita_sdk/tools/zephyr_scale/__init__.py +3 -2
- alita_sdk/tools/zephyr_scale/api_wrapper.py +2 -2
- alita_sdk/tools/zephyr_squad/__init__.py +2 -1
- {alita_sdk-0.3.554.dist-info → alita_sdk-0.3.602.dist-info}/METADATA +7 -6
- {alita_sdk-0.3.554.dist-info → alita_sdk-0.3.602.dist-info}/RECORD +116 -111
- {alita_sdk-0.3.554.dist-info → alita_sdk-0.3.602.dist-info}/WHEEL +0 -0
- {alita_sdk-0.3.554.dist-info → alita_sdk-0.3.602.dist-info}/entry_points.txt +0 -0
- {alita_sdk-0.3.554.dist-info → alita_sdk-0.3.602.dist-info}/licenses/LICENSE +0 -0
- {alita_sdk-0.3.554.dist-info → alita_sdk-0.3.602.dist-info}/top_level.txt +0 -0
alita_sdk/cli/agent_executor.py
CHANGED
alita_sdk/cli/agent_loader.py
CHANGED
|
@@ -5,6 +5,7 @@ Handles loading agent definitions from various file formats (YAML, JSON, Markdow
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
import json
|
|
8
|
+
import locale
|
|
8
9
|
import yaml
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
from typing import Dict, Any
|
|
@@ -13,6 +14,33 @@ from pydantic import SecretStr
|
|
|
13
14
|
from .config import substitute_env_vars
|
|
14
15
|
|
|
15
16
|
|
|
17
|
+
def _read_text_with_fallbacks(path: Path) -> str:
|
|
18
|
+
"""Read a text file using robust, cross-platform defaults.
|
|
19
|
+
|
|
20
|
+
Why this exists:
|
|
21
|
+
- On Windows, `Path.read_text()` defaults to the system code page (often cp1252).
|
|
22
|
+
Agent definition files are commonly authored as UTF-8 and may include smart quotes
|
|
23
|
+
(e.g. ”) whose UTF-8 byte sequence contains 0x9D, which is *undefined* in cp1252.
|
|
24
|
+
That combination triggers: UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
# 1) Prefer UTF-8 (most common for repo files)
|
|
28
|
+
try:
|
|
29
|
+
return path.read_text(encoding="utf-8")
|
|
30
|
+
except UnicodeDecodeError:
|
|
31
|
+
pass
|
|
32
|
+
|
|
33
|
+
# 2) UTF-8 with BOM (common on Windows)
|
|
34
|
+
try:
|
|
35
|
+
return path.read_text(encoding="utf-8-sig")
|
|
36
|
+
except UnicodeDecodeError:
|
|
37
|
+
pass
|
|
38
|
+
|
|
39
|
+
# 3) Fall back to the platform preferred encoding, but never crash.
|
|
40
|
+
# This keeps the CLI usable even if a file was authored in a legacy encoding.
|
|
41
|
+
return path.read_text(encoding=locale.getpreferredencoding(False), errors="replace")
|
|
42
|
+
|
|
43
|
+
|
|
16
44
|
def load_agent_definition(file_path: str) -> Dict[str, Any]:
|
|
17
45
|
"""
|
|
18
46
|
Load agent definition from file.
|
|
@@ -32,8 +60,8 @@ def load_agent_definition(file_path: str) -> Dict[str, Any]:
|
|
|
32
60
|
|
|
33
61
|
if not path.exists():
|
|
34
62
|
raise FileNotFoundError(f"Agent definition not found: {file_path}")
|
|
35
|
-
|
|
36
|
-
content = path
|
|
63
|
+
|
|
64
|
+
content = _read_text_with_fallbacks(path)
|
|
37
65
|
|
|
38
66
|
# Handle markdown with YAML frontmatter
|
|
39
67
|
if path.suffix == '.md':
|
|
@@ -58,7 +86,8 @@ def load_agent_definition(file_path: str) -> Dict[str, Any]:
|
|
|
58
86
|
'filesystem_tools_preset': frontmatter.get('filesystem_tools_preset'),
|
|
59
87
|
'filesystem_tools_include': frontmatter.get('filesystem_tools_include'),
|
|
60
88
|
'filesystem_tools_exclude': frontmatter.get('filesystem_tools_exclude'),
|
|
61
|
-
'mcps': frontmatter.get('mcps', [])
|
|
89
|
+
'mcps': frontmatter.get('mcps', []),
|
|
90
|
+
'persona': frontmatter.get('persona')
|
|
62
91
|
}
|
|
63
92
|
|
|
64
93
|
# Plain markdown - use content as system prompt
|
|
@@ -211,5 +240,6 @@ def build_agent_data_structure(agent_def: Dict[str, Any], toolkit_configs: list,
|
|
|
211
240
|
}
|
|
212
241
|
}
|
|
213
242
|
},
|
|
214
|
-
'agent_type': agent_def.get('agent_type', 'react')
|
|
243
|
+
'agent_type': agent_def.get('agent_type', 'react'),
|
|
244
|
+
'persona': agent_def.get('persona', 'quirky')
|
|
215
245
|
}
|