amd-gaia 0.15.0__py3-none-any.whl → 0.15.2__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.
- {amd_gaia-0.15.0.dist-info → amd_gaia-0.15.2.dist-info}/METADATA +222 -223
- amd_gaia-0.15.2.dist-info/RECORD +182 -0
- {amd_gaia-0.15.0.dist-info → amd_gaia-0.15.2.dist-info}/WHEEL +1 -1
- {amd_gaia-0.15.0.dist-info → amd_gaia-0.15.2.dist-info}/entry_points.txt +1 -0
- {amd_gaia-0.15.0.dist-info → amd_gaia-0.15.2.dist-info}/licenses/LICENSE.md +20 -20
- gaia/__init__.py +29 -29
- gaia/agents/__init__.py +19 -19
- gaia/agents/base/__init__.py +9 -9
- gaia/agents/base/agent.py +2132 -2177
- gaia/agents/base/api_agent.py +119 -120
- gaia/agents/base/console.py +1967 -1841
- gaia/agents/base/errors.py +237 -237
- gaia/agents/base/mcp_agent.py +86 -86
- gaia/agents/base/tools.py +88 -83
- gaia/agents/blender/__init__.py +7 -0
- gaia/agents/blender/agent.py +553 -556
- gaia/agents/blender/agent_simple.py +133 -135
- gaia/agents/blender/app.py +211 -211
- gaia/agents/blender/app_simple.py +41 -41
- gaia/agents/blender/core/__init__.py +16 -16
- gaia/agents/blender/core/materials.py +506 -506
- gaia/agents/blender/core/objects.py +316 -316
- gaia/agents/blender/core/rendering.py +225 -225
- gaia/agents/blender/core/scene.py +220 -220
- gaia/agents/blender/core/view.py +146 -146
- gaia/agents/chat/__init__.py +9 -9
- gaia/agents/chat/agent.py +809 -835
- gaia/agents/chat/app.py +1065 -1058
- gaia/agents/chat/session.py +508 -508
- gaia/agents/chat/tools/__init__.py +15 -15
- gaia/agents/chat/tools/file_tools.py +96 -96
- gaia/agents/chat/tools/rag_tools.py +1744 -1729
- gaia/agents/chat/tools/shell_tools.py +437 -436
- gaia/agents/code/__init__.py +7 -7
- gaia/agents/code/agent.py +549 -549
- gaia/agents/code/cli.py +377 -0
- gaia/agents/code/models.py +135 -135
- gaia/agents/code/orchestration/__init__.py +24 -24
- gaia/agents/code/orchestration/checklist_executor.py +1763 -1763
- gaia/agents/code/orchestration/checklist_generator.py +713 -713
- gaia/agents/code/orchestration/factories/__init__.py +9 -9
- gaia/agents/code/orchestration/factories/base.py +63 -63
- gaia/agents/code/orchestration/factories/nextjs_factory.py +118 -118
- gaia/agents/code/orchestration/factories/python_factory.py +106 -106
- gaia/agents/code/orchestration/orchestrator.py +841 -841
- gaia/agents/code/orchestration/project_analyzer.py +391 -391
- gaia/agents/code/orchestration/steps/__init__.py +67 -67
- gaia/agents/code/orchestration/steps/base.py +188 -188
- gaia/agents/code/orchestration/steps/error_handler.py +314 -314
- gaia/agents/code/orchestration/steps/nextjs.py +828 -828
- gaia/agents/code/orchestration/steps/python.py +307 -307
- gaia/agents/code/orchestration/template_catalog.py +469 -469
- gaia/agents/code/orchestration/workflows/__init__.py +14 -14
- gaia/agents/code/orchestration/workflows/base.py +80 -80
- gaia/agents/code/orchestration/workflows/nextjs.py +186 -186
- gaia/agents/code/orchestration/workflows/python.py +94 -94
- gaia/agents/code/prompts/__init__.py +11 -11
- gaia/agents/code/prompts/base_prompt.py +77 -77
- gaia/agents/code/prompts/code_patterns.py +2034 -2036
- gaia/agents/code/prompts/nextjs_prompt.py +40 -40
- gaia/agents/code/prompts/python_prompt.py +109 -109
- gaia/agents/code/schema_inference.py +365 -365
- gaia/agents/code/system_prompt.py +41 -41
- gaia/agents/code/tools/__init__.py +42 -42
- gaia/agents/code/tools/cli_tools.py +1138 -1138
- gaia/agents/code/tools/code_formatting.py +319 -319
- gaia/agents/code/tools/code_tools.py +769 -769
- gaia/agents/code/tools/error_fixing.py +1347 -1347
- gaia/agents/code/tools/external_tools.py +180 -180
- gaia/agents/code/tools/file_io.py +845 -845
- gaia/agents/code/tools/prisma_tools.py +190 -190
- gaia/agents/code/tools/project_management.py +1016 -1016
- gaia/agents/code/tools/testing.py +321 -321
- gaia/agents/code/tools/typescript_tools.py +122 -122
- gaia/agents/code/tools/validation_parsing.py +461 -461
- gaia/agents/code/tools/validation_tools.py +806 -806
- gaia/agents/code/tools/web_dev_tools.py +1758 -1758
- gaia/agents/code/validators/__init__.py +16 -16
- gaia/agents/code/validators/antipattern_checker.py +241 -241
- gaia/agents/code/validators/ast_analyzer.py +197 -197
- gaia/agents/code/validators/requirements_validator.py +145 -145
- gaia/agents/code/validators/syntax_validator.py +171 -171
- gaia/agents/docker/__init__.py +7 -7
- gaia/agents/docker/agent.py +643 -642
- gaia/agents/emr/__init__.py +8 -8
- gaia/agents/emr/agent.py +1504 -1506
- gaia/agents/emr/cli.py +1322 -1322
- gaia/agents/emr/constants.py +475 -475
- gaia/agents/emr/dashboard/__init__.py +4 -4
- gaia/agents/emr/dashboard/server.py +1972 -1974
- gaia/agents/jira/__init__.py +11 -11
- gaia/agents/jira/agent.py +894 -894
- gaia/agents/jira/jql_templates.py +299 -299
- gaia/agents/routing/__init__.py +7 -7
- gaia/agents/routing/agent.py +567 -570
- gaia/agents/routing/system_prompt.py +75 -75
- gaia/agents/summarize/__init__.py +11 -0
- gaia/agents/summarize/agent.py +885 -0
- gaia/agents/summarize/prompts.py +129 -0
- gaia/api/__init__.py +23 -23
- gaia/api/agent_registry.py +238 -238
- gaia/api/app.py +305 -305
- gaia/api/openai_server.py +575 -575
- gaia/api/schemas.py +186 -186
- gaia/api/sse_handler.py +373 -373
- gaia/apps/__init__.py +4 -4
- gaia/apps/llm/__init__.py +6 -6
- gaia/apps/llm/app.py +184 -169
- gaia/apps/summarize/app.py +116 -633
- gaia/apps/summarize/html_viewer.py +133 -133
- gaia/apps/summarize/pdf_formatter.py +284 -284
- gaia/audio/__init__.py +2 -2
- gaia/audio/audio_client.py +439 -439
- gaia/audio/audio_recorder.py +269 -269
- gaia/audio/kokoro_tts.py +599 -599
- gaia/audio/whisper_asr.py +432 -432
- gaia/chat/__init__.py +16 -16
- gaia/chat/app.py +428 -430
- gaia/chat/prompts.py +522 -522
- gaia/chat/sdk.py +1228 -1225
- gaia/cli.py +5659 -5632
- gaia/database/__init__.py +10 -10
- gaia/database/agent.py +176 -176
- gaia/database/mixin.py +290 -290
- gaia/database/testing.py +64 -64
- gaia/eval/batch_experiment.py +2332 -2332
- gaia/eval/claude.py +542 -542
- gaia/eval/config.py +37 -37
- gaia/eval/email_generator.py +512 -512
- gaia/eval/eval.py +3179 -3179
- gaia/eval/groundtruth.py +1130 -1130
- gaia/eval/transcript_generator.py +582 -582
- gaia/eval/webapp/README.md +167 -167
- gaia/eval/webapp/package-lock.json +875 -875
- gaia/eval/webapp/package.json +20 -20
- gaia/eval/webapp/public/app.js +3402 -3402
- gaia/eval/webapp/public/index.html +87 -87
- gaia/eval/webapp/public/styles.css +3661 -3661
- gaia/eval/webapp/server.js +415 -415
- gaia/eval/webapp/test-setup.js +72 -72
- gaia/installer/__init__.py +23 -0
- gaia/installer/init_command.py +1275 -0
- gaia/installer/lemonade_installer.py +619 -0
- gaia/llm/__init__.py +10 -2
- gaia/llm/base_client.py +60 -0
- gaia/llm/exceptions.py +12 -0
- gaia/llm/factory.py +70 -0
- gaia/llm/lemonade_client.py +3421 -3221
- gaia/llm/lemonade_manager.py +294 -294
- gaia/llm/providers/__init__.py +9 -0
- gaia/llm/providers/claude.py +108 -0
- gaia/llm/providers/lemonade.py +118 -0
- gaia/llm/providers/openai_provider.py +79 -0
- gaia/llm/vlm_client.py +382 -382
- gaia/logger.py +189 -189
- gaia/mcp/agent_mcp_server.py +245 -245
- gaia/mcp/blender_mcp_client.py +138 -138
- gaia/mcp/blender_mcp_server.py +648 -648
- gaia/mcp/context7_cache.py +332 -332
- gaia/mcp/external_services.py +518 -518
- gaia/mcp/mcp_bridge.py +811 -550
- gaia/mcp/servers/__init__.py +6 -6
- gaia/mcp/servers/docker_mcp.py +83 -83
- gaia/perf_analysis.py +361 -0
- gaia/rag/__init__.py +10 -10
- gaia/rag/app.py +293 -293
- gaia/rag/demo.py +304 -304
- gaia/rag/pdf_utils.py +235 -235
- gaia/rag/sdk.py +2194 -2194
- gaia/security.py +183 -163
- gaia/talk/app.py +287 -289
- gaia/talk/sdk.py +538 -538
- gaia/testing/__init__.py +87 -87
- gaia/testing/assertions.py +330 -330
- gaia/testing/fixtures.py +333 -333
- gaia/testing/mocks.py +493 -493
- gaia/util.py +46 -46
- gaia/utils/__init__.py +33 -33
- gaia/utils/file_watcher.py +675 -675
- gaia/utils/parsing.py +223 -223
- gaia/version.py +100 -100
- amd_gaia-0.15.0.dist-info/RECORD +0 -168
- gaia/agents/code/app.py +0 -266
- gaia/llm/llm_client.py +0 -723
- {amd_gaia-0.15.0.dist-info → amd_gaia-0.15.2.dist-info}/top_level.txt +0 -0
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
-
# SPDX-License-Identifier: MIT
|
|
3
|
-
"""TypeScript runtime tools for Code Agent."""
|
|
4
|
-
|
|
5
|
-
import json
|
|
6
|
-
import logging
|
|
7
|
-
import subprocess
|
|
8
|
-
from pathlib import Path
|
|
9
|
-
from typing import Any, Dict
|
|
10
|
-
|
|
11
|
-
from gaia.agents.base.tools import tool
|
|
12
|
-
|
|
13
|
-
logger = logging.getLogger(__name__)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class TypeScriptToolsMixin:
|
|
17
|
-
"""Mixin providing TypeScript runtime tools for the Code Agent.
|
|
18
|
-
|
|
19
|
-
This mixin provides essential TypeScript development tools including:
|
|
20
|
-
- Package manager operations (npm/yarn/pnpm)
|
|
21
|
-
- TypeScript compilation validation
|
|
22
|
-
- Dependency installation with type definitions
|
|
23
|
-
"""
|
|
24
|
-
|
|
25
|
-
def register_typescript_tools(self) -> None:
|
|
26
|
-
"""Register TypeScript runtime tools with the agent."""
|
|
27
|
-
|
|
28
|
-
@tool
|
|
29
|
-
def validate_typescript(project_path: str) -> Dict[str, Any]:
|
|
30
|
-
"""Validate TypeScript code compilation and linting.
|
|
31
|
-
|
|
32
|
-
Args:
|
|
33
|
-
project_path: Path to the TypeScript project
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
Dictionary with validation results and any errors found
|
|
37
|
-
"""
|
|
38
|
-
try:
|
|
39
|
-
proj_path = Path(project_path)
|
|
40
|
-
|
|
41
|
-
if not proj_path.exists():
|
|
42
|
-
return {
|
|
43
|
-
"success": False,
|
|
44
|
-
"error": f"Project path does not exist: {project_path}",
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
# Check for tsconfig.json
|
|
48
|
-
tsconfig = proj_path / "tsconfig.json"
|
|
49
|
-
if not tsconfig.exists():
|
|
50
|
-
return {
|
|
51
|
-
"success": False,
|
|
52
|
-
"error": "tsconfig.json not found in project",
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
results = {
|
|
56
|
-
"success": True,
|
|
57
|
-
"typescript_valid": True,
|
|
58
|
-
"typescript_errors": [],
|
|
59
|
-
"eslint_valid": True,
|
|
60
|
-
"eslint_errors": [],
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
# Run TypeScript compiler check
|
|
64
|
-
logger.info(f"Running TypeScript validation in {project_path}")
|
|
65
|
-
|
|
66
|
-
tsc_result = subprocess.run(
|
|
67
|
-
["npx", "tsc", "--noEmit"],
|
|
68
|
-
cwd=project_path,
|
|
69
|
-
capture_output=True,
|
|
70
|
-
text=True,
|
|
71
|
-
timeout=120,
|
|
72
|
-
check=False,
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
if tsc_result.returncode != 0:
|
|
76
|
-
results["typescript_valid"] = False
|
|
77
|
-
results["typescript_errors"] = tsc_result.stdout.split("\n")
|
|
78
|
-
logger.warning(f"TypeScript validation failed: {tsc_result.stdout}")
|
|
79
|
-
|
|
80
|
-
# Run ESLint check (if .eslintrc or eslint config exists)
|
|
81
|
-
eslint_configs = [
|
|
82
|
-
".eslintrc",
|
|
83
|
-
".eslintrc.js",
|
|
84
|
-
".eslintrc.json",
|
|
85
|
-
"eslint.config.js",
|
|
86
|
-
]
|
|
87
|
-
|
|
88
|
-
has_eslint_config = any(
|
|
89
|
-
(proj_path / config).exists() for config in eslint_configs
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
if has_eslint_config:
|
|
93
|
-
logger.info("Running ESLint validation")
|
|
94
|
-
|
|
95
|
-
eslint_result = subprocess.run(
|
|
96
|
-
["npx", "eslint", "src/**/*.{ts,tsx}", "--format=json"],
|
|
97
|
-
cwd=project_path,
|
|
98
|
-
capture_output=True,
|
|
99
|
-
text=True,
|
|
100
|
-
timeout=60,
|
|
101
|
-
check=False,
|
|
102
|
-
)
|
|
103
|
-
|
|
104
|
-
if eslint_result.returncode != 0:
|
|
105
|
-
try:
|
|
106
|
-
eslint_output = json.loads(eslint_result.stdout)
|
|
107
|
-
results["eslint_valid"] = False
|
|
108
|
-
results["eslint_errors"] = eslint_output
|
|
109
|
-
except json.JSONDecodeError:
|
|
110
|
-
results["eslint_errors"] = [eslint_result.stdout]
|
|
111
|
-
|
|
112
|
-
results["success"] = (
|
|
113
|
-
results["typescript_valid"] and results["eslint_valid"]
|
|
114
|
-
)
|
|
115
|
-
|
|
116
|
-
return results
|
|
117
|
-
|
|
118
|
-
except subprocess.TimeoutExpired:
|
|
119
|
-
return {"success": False, "error": "Validation timed out"}
|
|
120
|
-
except Exception as e:
|
|
121
|
-
logger.error(f"Error validating TypeScript: {e}")
|
|
122
|
-
return {"success": False, "error": str(e)}
|
|
1
|
+
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""TypeScript runtime tools for Code Agent."""
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
import logging
|
|
7
|
+
import subprocess
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Any, Dict
|
|
10
|
+
|
|
11
|
+
from gaia.agents.base.tools import tool
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TypeScriptToolsMixin:
|
|
17
|
+
"""Mixin providing TypeScript runtime tools for the Code Agent.
|
|
18
|
+
|
|
19
|
+
This mixin provides essential TypeScript development tools including:
|
|
20
|
+
- Package manager operations (npm/yarn/pnpm)
|
|
21
|
+
- TypeScript compilation validation
|
|
22
|
+
- Dependency installation with type definitions
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
def register_typescript_tools(self) -> None:
|
|
26
|
+
"""Register TypeScript runtime tools with the agent."""
|
|
27
|
+
|
|
28
|
+
@tool
|
|
29
|
+
def validate_typescript(project_path: str) -> Dict[str, Any]:
|
|
30
|
+
"""Validate TypeScript code compilation and linting.
|
|
31
|
+
|
|
32
|
+
Args:
|
|
33
|
+
project_path: Path to the TypeScript project
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
Dictionary with validation results and any errors found
|
|
37
|
+
"""
|
|
38
|
+
try:
|
|
39
|
+
proj_path = Path(project_path)
|
|
40
|
+
|
|
41
|
+
if not proj_path.exists():
|
|
42
|
+
return {
|
|
43
|
+
"success": False,
|
|
44
|
+
"error": f"Project path does not exist: {project_path}",
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# Check for tsconfig.json
|
|
48
|
+
tsconfig = proj_path / "tsconfig.json"
|
|
49
|
+
if not tsconfig.exists():
|
|
50
|
+
return {
|
|
51
|
+
"success": False,
|
|
52
|
+
"error": "tsconfig.json not found in project",
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
results = {
|
|
56
|
+
"success": True,
|
|
57
|
+
"typescript_valid": True,
|
|
58
|
+
"typescript_errors": [],
|
|
59
|
+
"eslint_valid": True,
|
|
60
|
+
"eslint_errors": [],
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
# Run TypeScript compiler check
|
|
64
|
+
logger.info(f"Running TypeScript validation in {project_path}")
|
|
65
|
+
|
|
66
|
+
tsc_result = subprocess.run(
|
|
67
|
+
["npx", "tsc", "--noEmit"],
|
|
68
|
+
cwd=project_path,
|
|
69
|
+
capture_output=True,
|
|
70
|
+
text=True,
|
|
71
|
+
timeout=120,
|
|
72
|
+
check=False,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
if tsc_result.returncode != 0:
|
|
76
|
+
results["typescript_valid"] = False
|
|
77
|
+
results["typescript_errors"] = tsc_result.stdout.split("\n")
|
|
78
|
+
logger.warning(f"TypeScript validation failed: {tsc_result.stdout}")
|
|
79
|
+
|
|
80
|
+
# Run ESLint check (if .eslintrc or eslint config exists)
|
|
81
|
+
eslint_configs = [
|
|
82
|
+
".eslintrc",
|
|
83
|
+
".eslintrc.js",
|
|
84
|
+
".eslintrc.json",
|
|
85
|
+
"eslint.config.js",
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
has_eslint_config = any(
|
|
89
|
+
(proj_path / config).exists() for config in eslint_configs
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
if has_eslint_config:
|
|
93
|
+
logger.info("Running ESLint validation")
|
|
94
|
+
|
|
95
|
+
eslint_result = subprocess.run(
|
|
96
|
+
["npx", "eslint", "src/**/*.{ts,tsx}", "--format=json"],
|
|
97
|
+
cwd=project_path,
|
|
98
|
+
capture_output=True,
|
|
99
|
+
text=True,
|
|
100
|
+
timeout=60,
|
|
101
|
+
check=False,
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
if eslint_result.returncode != 0:
|
|
105
|
+
try:
|
|
106
|
+
eslint_output = json.loads(eslint_result.stdout)
|
|
107
|
+
results["eslint_valid"] = False
|
|
108
|
+
results["eslint_errors"] = eslint_output
|
|
109
|
+
except json.JSONDecodeError:
|
|
110
|
+
results["eslint_errors"] = [eslint_result.stdout]
|
|
111
|
+
|
|
112
|
+
results["success"] = (
|
|
113
|
+
results["typescript_valid"] and results["eslint_valid"]
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
return results
|
|
117
|
+
|
|
118
|
+
except subprocess.TimeoutExpired:
|
|
119
|
+
return {"success": False, "error": "Validation timed out"}
|
|
120
|
+
except Exception as e:
|
|
121
|
+
logger.error(f"Error validating TypeScript: {e}")
|
|
122
|
+
return {"success": False, "error": str(e)}
|