amd-gaia 0.14.3__py3-none-any.whl → 0.15.1__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.14.3.dist-info → amd_gaia-0.15.1.dist-info}/METADATA +223 -223
- amd_gaia-0.15.1.dist-info/RECORD +178 -0
- {amd_gaia-0.14.3.dist-info → amd_gaia-0.15.1.dist-info}/entry_points.txt +1 -0
- {amd_gaia-0.14.3.dist-info → amd_gaia-0.15.1.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 +2177 -2177
- gaia/agents/base/api_agent.py +120 -120
- gaia/agents/base/console.py +1841 -1841
- gaia/agents/base/errors.py +237 -237
- gaia/agents/base/mcp_agent.py +86 -86
- gaia/agents/base/tools.py +83 -83
- gaia/agents/blender/agent.py +556 -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 +835 -835
- gaia/agents/chat/app.py +1058 -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 +1729 -1729
- gaia/agents/chat/tools/shell_tools.py +436 -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 +2036 -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 +642 -642
- gaia/agents/emr/__init__.py +8 -8
- gaia/agents/emr/agent.py +1506 -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 +1974 -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 +173 -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 +430 -430
- gaia/chat/prompts.py +522 -522
- gaia/chat/sdk.py +1228 -1225
- gaia/cli.py +5481 -5621
- 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/llm/__init__.py +9 -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 +3236 -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 +120 -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 +163 -163
- gaia/talk/app.py +289 -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.14.3.dist-info/RECORD +0 -168
- gaia/agents/code/app.py +0 -266
- gaia/llm/llm_client.py +0 -729
- {amd_gaia-0.14.3.dist-info → amd_gaia-0.15.1.dist-info}/WHEEL +0 -0
- {amd_gaia-0.14.3.dist-info → amd_gaia-0.15.1.dist-info}/top_level.txt +0 -0
gaia/agents/blender/core/view.py
CHANGED
|
@@ -1,146 +1,146 @@
|
|
|
1
|
-
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
-
# SPDX-License-Identifier: MIT
|
|
3
|
-
|
|
4
|
-
from typing import Dict
|
|
5
|
-
|
|
6
|
-
from gaia.mcp.blender_mcp_client import MCPClient
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class ViewManager:
|
|
10
|
-
"""Manages Blender viewport and display settings."""
|
|
11
|
-
|
|
12
|
-
def __init__(self, mcp: MCPClient):
|
|
13
|
-
self.mcp = mcp
|
|
14
|
-
|
|
15
|
-
def adjust_for_large_scale(
|
|
16
|
-
self, clip_end: float = 100000, orbit_selection: bool = True
|
|
17
|
-
) -> Dict:
|
|
18
|
-
"""Adjust viewport settings to properly view large-scale objects like Earth.
|
|
19
|
-
|
|
20
|
-
Args:
|
|
21
|
-
clip_end: The maximum view distance to set for the 3D viewport (default: 100000)
|
|
22
|
-
orbit_selection: Whether to enable orbit around selection (default: True, but may not work in all Blender versions)
|
|
23
|
-
"""
|
|
24
|
-
|
|
25
|
-
def generate_code():
|
|
26
|
-
return f"""
|
|
27
|
-
import bpy
|
|
28
|
-
|
|
29
|
-
# Adjust clip distance for all 3D viewports
|
|
30
|
-
for area in bpy.context.screen.areas:
|
|
31
|
-
if area.type == 'VIEW_3D':
|
|
32
|
-
for space in area.spaces:
|
|
33
|
-
if space.type == 'VIEW_3D':
|
|
34
|
-
# Adjust clip end distance
|
|
35
|
-
space.clip_end = {clip_end}
|
|
36
|
-
# Keep clip start reasonable
|
|
37
|
-
space.clip_start = 0.1
|
|
38
|
-
print(f"Set view clip end to {clip_end}")
|
|
39
|
-
|
|
40
|
-
# Focus on Earth object if it exists
|
|
41
|
-
earth = bpy.data.objects.get("Earth")
|
|
42
|
-
if earth:
|
|
43
|
-
# Select the Earth
|
|
44
|
-
bpy.ops.object.select_all(action='DESELECT')
|
|
45
|
-
earth.select_set(True)
|
|
46
|
-
bpy.context.view_layer.objects.active = earth
|
|
47
|
-
|
|
48
|
-
# Frame selected (equivalent to Numpad '.') - uses the new context override method
|
|
49
|
-
for area in bpy.context.screen.areas:
|
|
50
|
-
if area.type == 'VIEW_3D':
|
|
51
|
-
for region in area.regions:
|
|
52
|
-
if region.type == 'WINDOW':
|
|
53
|
-
# Get the current context and override it using 'with'
|
|
54
|
-
with bpy.context.temp_override(area=area, region=region):
|
|
55
|
-
# No override dict needed as parameter anymore
|
|
56
|
-
bpy.ops.view3d.view_selected()
|
|
57
|
-
print("Focused view on Earth object")
|
|
58
|
-
break
|
|
59
|
-
|
|
60
|
-
# Return status
|
|
61
|
-
result = {{
|
|
62
|
-
"clip_end_set": {clip_end},
|
|
63
|
-
"focused_on_object": earth is not None
|
|
64
|
-
}}
|
|
65
|
-
|
|
66
|
-
print("View settings adjusted for large-scale objects")
|
|
67
|
-
"""
|
|
68
|
-
|
|
69
|
-
response = self.mcp.execute_code(generate_code())
|
|
70
|
-
# Extract the returned result from the MCP if available
|
|
71
|
-
if response.get("result") and isinstance(response["result"], dict):
|
|
72
|
-
return {"status": "success", **response["result"]}
|
|
73
|
-
# Add stdout to the response for debugging
|
|
74
|
-
if "stdout" in response:
|
|
75
|
-
return {"status": "success", "message": response.get("stdout", "")}
|
|
76
|
-
# Fallback
|
|
77
|
-
return {"status": "success"}
|
|
78
|
-
|
|
79
|
-
def set_shading_tab(self) -> Dict:
|
|
80
|
-
"""Switch to the Shading tab/workspace in Blender."""
|
|
81
|
-
|
|
82
|
-
def generate_code():
|
|
83
|
-
return """
|
|
84
|
-
import bpy
|
|
85
|
-
|
|
86
|
-
# Try to switch to the Shading tab in Blender
|
|
87
|
-
success = False
|
|
88
|
-
|
|
89
|
-
# First attempt: Try using the workspace API (Blender 2.8+)
|
|
90
|
-
try:
|
|
91
|
-
# Get the 'Shading' workspace if it exists
|
|
92
|
-
shading_ws = None
|
|
93
|
-
for ws in bpy.data.workspaces:
|
|
94
|
-
if 'Shading' in ws.name:
|
|
95
|
-
shading_ws = ws
|
|
96
|
-
break
|
|
97
|
-
|
|
98
|
-
# Set active workspace to Shading
|
|
99
|
-
if shading_ws:
|
|
100
|
-
window = bpy.context.window
|
|
101
|
-
window.workspace = shading_ws
|
|
102
|
-
success = True
|
|
103
|
-
print("Switched to Shading workspace")
|
|
104
|
-
else:
|
|
105
|
-
print("Shading workspace not found")
|
|
106
|
-
except Exception as e:
|
|
107
|
-
print(f"Could not switch workspace: {str(e)}")
|
|
108
|
-
|
|
109
|
-
# Second attempt: If workspace API failed, try to switch editor type to NODE_EDITOR
|
|
110
|
-
if not success:
|
|
111
|
-
try:
|
|
112
|
-
# Find a 3D view area to replace with the node editor
|
|
113
|
-
for area in bpy.context.screen.areas:
|
|
114
|
-
if area.type == 'VIEW_3D':
|
|
115
|
-
# Change the area type to node editor (similar to Shading tab)
|
|
116
|
-
area.type = 'NODE_EDITOR'
|
|
117
|
-
|
|
118
|
-
# Set the area to shader nodes
|
|
119
|
-
for space in area.spaces:
|
|
120
|
-
if space.type == 'NODE_EDITOR':
|
|
121
|
-
space.shader_type = 'OBJECT'
|
|
122
|
-
space.show_shading = True
|
|
123
|
-
|
|
124
|
-
success = True
|
|
125
|
-
print("Converted 3D view to Shader editor")
|
|
126
|
-
break
|
|
127
|
-
except Exception as e:
|
|
128
|
-
print(f"Could not switch to node editor: {str(e)}")
|
|
129
|
-
|
|
130
|
-
# Return status
|
|
131
|
-
result = {
|
|
132
|
-
"success": success
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
print("Attempted to switch to Shading tab")
|
|
136
|
-
"""
|
|
137
|
-
|
|
138
|
-
response = self.mcp.execute_code(generate_code())
|
|
139
|
-
# Extract the returned result from the MCP if available
|
|
140
|
-
if response.get("result") and isinstance(response["result"], dict):
|
|
141
|
-
return {"status": "success", **response["result"]}
|
|
142
|
-
# Add stdout to the response for debugging
|
|
143
|
-
if "stdout" in response:
|
|
144
|
-
return {"status": "success", "message": response.get("stdout", "")}
|
|
145
|
-
# Fallback
|
|
146
|
-
return {"status": "success"}
|
|
1
|
+
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
from typing import Dict
|
|
5
|
+
|
|
6
|
+
from gaia.mcp.blender_mcp_client import MCPClient
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ViewManager:
|
|
10
|
+
"""Manages Blender viewport and display settings."""
|
|
11
|
+
|
|
12
|
+
def __init__(self, mcp: MCPClient):
|
|
13
|
+
self.mcp = mcp
|
|
14
|
+
|
|
15
|
+
def adjust_for_large_scale(
|
|
16
|
+
self, clip_end: float = 100000, orbit_selection: bool = True
|
|
17
|
+
) -> Dict:
|
|
18
|
+
"""Adjust viewport settings to properly view large-scale objects like Earth.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
clip_end: The maximum view distance to set for the 3D viewport (default: 100000)
|
|
22
|
+
orbit_selection: Whether to enable orbit around selection (default: True, but may not work in all Blender versions)
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
def generate_code():
|
|
26
|
+
return f"""
|
|
27
|
+
import bpy
|
|
28
|
+
|
|
29
|
+
# Adjust clip distance for all 3D viewports
|
|
30
|
+
for area in bpy.context.screen.areas:
|
|
31
|
+
if area.type == 'VIEW_3D':
|
|
32
|
+
for space in area.spaces:
|
|
33
|
+
if space.type == 'VIEW_3D':
|
|
34
|
+
# Adjust clip end distance
|
|
35
|
+
space.clip_end = {clip_end}
|
|
36
|
+
# Keep clip start reasonable
|
|
37
|
+
space.clip_start = 0.1
|
|
38
|
+
print(f"Set view clip end to {clip_end}")
|
|
39
|
+
|
|
40
|
+
# Focus on Earth object if it exists
|
|
41
|
+
earth = bpy.data.objects.get("Earth")
|
|
42
|
+
if earth:
|
|
43
|
+
# Select the Earth
|
|
44
|
+
bpy.ops.object.select_all(action='DESELECT')
|
|
45
|
+
earth.select_set(True)
|
|
46
|
+
bpy.context.view_layer.objects.active = earth
|
|
47
|
+
|
|
48
|
+
# Frame selected (equivalent to Numpad '.') - uses the new context override method
|
|
49
|
+
for area in bpy.context.screen.areas:
|
|
50
|
+
if area.type == 'VIEW_3D':
|
|
51
|
+
for region in area.regions:
|
|
52
|
+
if region.type == 'WINDOW':
|
|
53
|
+
# Get the current context and override it using 'with'
|
|
54
|
+
with bpy.context.temp_override(area=area, region=region):
|
|
55
|
+
# No override dict needed as parameter anymore
|
|
56
|
+
bpy.ops.view3d.view_selected()
|
|
57
|
+
print("Focused view on Earth object")
|
|
58
|
+
break
|
|
59
|
+
|
|
60
|
+
# Return status
|
|
61
|
+
result = {{
|
|
62
|
+
"clip_end_set": {clip_end},
|
|
63
|
+
"focused_on_object": earth is not None
|
|
64
|
+
}}
|
|
65
|
+
|
|
66
|
+
print("View settings adjusted for large-scale objects")
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
response = self.mcp.execute_code(generate_code())
|
|
70
|
+
# Extract the returned result from the MCP if available
|
|
71
|
+
if response.get("result") and isinstance(response["result"], dict):
|
|
72
|
+
return {"status": "success", **response["result"]}
|
|
73
|
+
# Add stdout to the response for debugging
|
|
74
|
+
if "stdout" in response:
|
|
75
|
+
return {"status": "success", "message": response.get("stdout", "")}
|
|
76
|
+
# Fallback
|
|
77
|
+
return {"status": "success"}
|
|
78
|
+
|
|
79
|
+
def set_shading_tab(self) -> Dict:
|
|
80
|
+
"""Switch to the Shading tab/workspace in Blender."""
|
|
81
|
+
|
|
82
|
+
def generate_code():
|
|
83
|
+
return """
|
|
84
|
+
import bpy
|
|
85
|
+
|
|
86
|
+
# Try to switch to the Shading tab in Blender
|
|
87
|
+
success = False
|
|
88
|
+
|
|
89
|
+
# First attempt: Try using the workspace API (Blender 2.8+)
|
|
90
|
+
try:
|
|
91
|
+
# Get the 'Shading' workspace if it exists
|
|
92
|
+
shading_ws = None
|
|
93
|
+
for ws in bpy.data.workspaces:
|
|
94
|
+
if 'Shading' in ws.name:
|
|
95
|
+
shading_ws = ws
|
|
96
|
+
break
|
|
97
|
+
|
|
98
|
+
# Set active workspace to Shading
|
|
99
|
+
if shading_ws:
|
|
100
|
+
window = bpy.context.window
|
|
101
|
+
window.workspace = shading_ws
|
|
102
|
+
success = True
|
|
103
|
+
print("Switched to Shading workspace")
|
|
104
|
+
else:
|
|
105
|
+
print("Shading workspace not found")
|
|
106
|
+
except Exception as e:
|
|
107
|
+
print(f"Could not switch workspace: {str(e)}")
|
|
108
|
+
|
|
109
|
+
# Second attempt: If workspace API failed, try to switch editor type to NODE_EDITOR
|
|
110
|
+
if not success:
|
|
111
|
+
try:
|
|
112
|
+
# Find a 3D view area to replace with the node editor
|
|
113
|
+
for area in bpy.context.screen.areas:
|
|
114
|
+
if area.type == 'VIEW_3D':
|
|
115
|
+
# Change the area type to node editor (similar to Shading tab)
|
|
116
|
+
area.type = 'NODE_EDITOR'
|
|
117
|
+
|
|
118
|
+
# Set the area to shader nodes
|
|
119
|
+
for space in area.spaces:
|
|
120
|
+
if space.type == 'NODE_EDITOR':
|
|
121
|
+
space.shader_type = 'OBJECT'
|
|
122
|
+
space.show_shading = True
|
|
123
|
+
|
|
124
|
+
success = True
|
|
125
|
+
print("Converted 3D view to Shader editor")
|
|
126
|
+
break
|
|
127
|
+
except Exception as e:
|
|
128
|
+
print(f"Could not switch to node editor: {str(e)}")
|
|
129
|
+
|
|
130
|
+
# Return status
|
|
131
|
+
result = {
|
|
132
|
+
"success": success
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
print("Attempted to switch to Shading tab")
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
response = self.mcp.execute_code(generate_code())
|
|
139
|
+
# Extract the returned result from the MCP if available
|
|
140
|
+
if response.get("result") and isinstance(response["result"], dict):
|
|
141
|
+
return {"status": "success", **response["result"]}
|
|
142
|
+
# Add stdout to the response for debugging
|
|
143
|
+
if "stdout" in response:
|
|
144
|
+
return {"status": "success", "message": response.get("stdout", "")}
|
|
145
|
+
# Fallback
|
|
146
|
+
return {"status": "success"}
|
gaia/agents/chat/__init__.py
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
-
# SPDX-License-Identifier: MIT
|
|
3
|
-
"""
|
|
4
|
-
Chat Agent with RAG and file search capabilities.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from gaia.agents.chat.agent import ChatAgent
|
|
8
|
-
|
|
9
|
-
__all__ = ["ChatAgent"]
|
|
1
|
+
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""
|
|
4
|
+
Chat Agent with RAG and file search capabilities.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from gaia.agents.chat.agent import ChatAgent
|
|
8
|
+
|
|
9
|
+
__all__ = ["ChatAgent"]
|