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
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
-
# SPDX-License-Identifier: MIT
|
|
3
|
-
"""
|
|
4
|
-
Chat Agent Tools - Mixins for RAG, file operations, and shell commands.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from gaia.agents.chat.tools.file_tools import FileToolsMixin
|
|
8
|
-
from gaia.agents.chat.tools.rag_tools import RAGToolsMixin
|
|
9
|
-
from gaia.agents.chat.tools.shell_tools import ShellToolsMixin
|
|
10
|
-
|
|
11
|
-
__all__ = [
|
|
12
|
-
"RAGToolsMixin",
|
|
13
|
-
"FileToolsMixin",
|
|
14
|
-
"ShellToolsMixin",
|
|
15
|
-
]
|
|
1
|
+
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""
|
|
4
|
+
Chat Agent Tools - Mixins for RAG, file operations, and shell commands.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from gaia.agents.chat.tools.file_tools import FileToolsMixin
|
|
8
|
+
from gaia.agents.chat.tools.rag_tools import RAGToolsMixin
|
|
9
|
+
from gaia.agents.chat.tools.shell_tools import ShellToolsMixin
|
|
10
|
+
|
|
11
|
+
__all__ = [
|
|
12
|
+
"RAGToolsMixin",
|
|
13
|
+
"FileToolsMixin",
|
|
14
|
+
"ShellToolsMixin",
|
|
15
|
+
]
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
-
# SPDX-License-Identifier: MIT
|
|
3
|
-
"""
|
|
4
|
-
File Tools Mixin for Chat Agent.
|
|
5
|
-
|
|
6
|
-
Provides directory monitoring for auto-indexing.
|
|
7
|
-
NOTE: File search is handled by shell_tools.run_shell_command for flexibility.
|
|
8
|
-
"""
|
|
9
|
-
|
|
10
|
-
import logging
|
|
11
|
-
import os
|
|
12
|
-
from pathlib import Path
|
|
13
|
-
from typing import Any, Dict
|
|
14
|
-
|
|
15
|
-
logger = logging.getLogger(__name__)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class FileToolsMixin:
|
|
19
|
-
"""
|
|
20
|
-
Mixin providing directory monitoring for auto-indexing.
|
|
21
|
-
|
|
22
|
-
Tools provided:
|
|
23
|
-
- add_watch_directory: Monitor directory for file changes and auto-index
|
|
24
|
-
"""
|
|
25
|
-
|
|
26
|
-
def register_file_tools(self) -> None:
|
|
27
|
-
"""Register file operation tools."""
|
|
28
|
-
from gaia.agents.base.tools import tool
|
|
29
|
-
|
|
30
|
-
@tool(
|
|
31
|
-
name="add_watch_directory",
|
|
32
|
-
description="Add a directory to monitor for new documents. Files will be automatically indexed when created or modified.",
|
|
33
|
-
parameters={
|
|
34
|
-
"directory": {
|
|
35
|
-
"type": "str",
|
|
36
|
-
"description": "Directory path to watch",
|
|
37
|
-
"required": True,
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
)
|
|
41
|
-
def add_watch_directory(directory: str) -> Dict[str, Any]:
|
|
42
|
-
"""Add directory to watch list with path validation and auto-indexing."""
|
|
43
|
-
try:
|
|
44
|
-
# Validate path with PathValidator (handles user prompting and persistence)
|
|
45
|
-
if not self.path_validator.is_path_allowed(directory):
|
|
46
|
-
return {"status": "error", "error": f"Access denied: {directory}"}
|
|
47
|
-
|
|
48
|
-
if not os.path.exists(directory):
|
|
49
|
-
return {
|
|
50
|
-
"status": "error",
|
|
51
|
-
"error": f"Directory not found: {directory}",
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if directory not in self.watch_directories:
|
|
55
|
-
self.watch_directories.append(directory)
|
|
56
|
-
self._watch_directory(directory)
|
|
57
|
-
|
|
58
|
-
# Index existing files in the directory
|
|
59
|
-
path = Path(directory)
|
|
60
|
-
pdf_files = list(path.glob("*.pdf"))
|
|
61
|
-
indexed_count = 0
|
|
62
|
-
|
|
63
|
-
for pdf_file in pdf_files:
|
|
64
|
-
try:
|
|
65
|
-
if self.rag.index_document(str(pdf_file)):
|
|
66
|
-
self.indexed_files.add(str(pdf_file))
|
|
67
|
-
indexed_count += 1
|
|
68
|
-
if hasattr(self, "debug") and self.debug:
|
|
69
|
-
logger.debug(f"Auto-indexed: {pdf_file}")
|
|
70
|
-
except Exception as e:
|
|
71
|
-
logger.warning(f"Failed to index {pdf_file}: {e}")
|
|
72
|
-
|
|
73
|
-
# Auto-save session after adding watch directory
|
|
74
|
-
self._auto_save_session()
|
|
75
|
-
|
|
76
|
-
return {
|
|
77
|
-
"status": "success",
|
|
78
|
-
"message": f"Now watching: {directory}",
|
|
79
|
-
"total_files_found": len(pdf_files),
|
|
80
|
-
"files_indexed": indexed_count,
|
|
81
|
-
}
|
|
82
|
-
else:
|
|
83
|
-
return {
|
|
84
|
-
"status": "success",
|
|
85
|
-
"message": f"Already watching: {directory}",
|
|
86
|
-
}
|
|
87
|
-
except Exception as e:
|
|
88
|
-
logger.error(f"Error adding watch directory: {e}")
|
|
89
|
-
return {
|
|
90
|
-
"status": "error",
|
|
91
|
-
"error": str(e),
|
|
92
|
-
"has_errors": True,
|
|
93
|
-
"operation": "add_watch_directory",
|
|
94
|
-
"directory": directory,
|
|
95
|
-
"hint": "Failed to start watching directory. Check if directory exists and is readable.",
|
|
96
|
-
}
|
|
1
|
+
# Copyright(C) 2025-2026 Advanced Micro Devices, Inc. All rights reserved.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
"""
|
|
4
|
+
File Tools Mixin for Chat Agent.
|
|
5
|
+
|
|
6
|
+
Provides directory monitoring for auto-indexing.
|
|
7
|
+
NOTE: File search is handled by shell_tools.run_shell_command for flexibility.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import logging
|
|
11
|
+
import os
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
from typing import Any, Dict
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class FileToolsMixin:
|
|
19
|
+
"""
|
|
20
|
+
Mixin providing directory monitoring for auto-indexing.
|
|
21
|
+
|
|
22
|
+
Tools provided:
|
|
23
|
+
- add_watch_directory: Monitor directory for file changes and auto-index
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
def register_file_tools(self) -> None:
|
|
27
|
+
"""Register file operation tools."""
|
|
28
|
+
from gaia.agents.base.tools import tool
|
|
29
|
+
|
|
30
|
+
@tool(
|
|
31
|
+
name="add_watch_directory",
|
|
32
|
+
description="Add a directory to monitor for new documents. Files will be automatically indexed when created or modified.",
|
|
33
|
+
parameters={
|
|
34
|
+
"directory": {
|
|
35
|
+
"type": "str",
|
|
36
|
+
"description": "Directory path to watch",
|
|
37
|
+
"required": True,
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
)
|
|
41
|
+
def add_watch_directory(directory: str) -> Dict[str, Any]:
|
|
42
|
+
"""Add directory to watch list with path validation and auto-indexing."""
|
|
43
|
+
try:
|
|
44
|
+
# Validate path with PathValidator (handles user prompting and persistence)
|
|
45
|
+
if not self.path_validator.is_path_allowed(directory):
|
|
46
|
+
return {"status": "error", "error": f"Access denied: {directory}"}
|
|
47
|
+
|
|
48
|
+
if not os.path.exists(directory):
|
|
49
|
+
return {
|
|
50
|
+
"status": "error",
|
|
51
|
+
"error": f"Directory not found: {directory}",
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if directory not in self.watch_directories:
|
|
55
|
+
self.watch_directories.append(directory)
|
|
56
|
+
self._watch_directory(directory)
|
|
57
|
+
|
|
58
|
+
# Index existing files in the directory
|
|
59
|
+
path = Path(directory)
|
|
60
|
+
pdf_files = list(path.glob("*.pdf"))
|
|
61
|
+
indexed_count = 0
|
|
62
|
+
|
|
63
|
+
for pdf_file in pdf_files:
|
|
64
|
+
try:
|
|
65
|
+
if self.rag.index_document(str(pdf_file)):
|
|
66
|
+
self.indexed_files.add(str(pdf_file))
|
|
67
|
+
indexed_count += 1
|
|
68
|
+
if hasattr(self, "debug") and self.debug:
|
|
69
|
+
logger.debug(f"Auto-indexed: {pdf_file}")
|
|
70
|
+
except Exception as e:
|
|
71
|
+
logger.warning(f"Failed to index {pdf_file}: {e}")
|
|
72
|
+
|
|
73
|
+
# Auto-save session after adding watch directory
|
|
74
|
+
self._auto_save_session()
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
"status": "success",
|
|
78
|
+
"message": f"Now watching: {directory}",
|
|
79
|
+
"total_files_found": len(pdf_files),
|
|
80
|
+
"files_indexed": indexed_count,
|
|
81
|
+
}
|
|
82
|
+
else:
|
|
83
|
+
return {
|
|
84
|
+
"status": "success",
|
|
85
|
+
"message": f"Already watching: {directory}",
|
|
86
|
+
}
|
|
87
|
+
except Exception as e:
|
|
88
|
+
logger.error(f"Error adding watch directory: {e}")
|
|
89
|
+
return {
|
|
90
|
+
"status": "error",
|
|
91
|
+
"error": str(e),
|
|
92
|
+
"has_errors": True,
|
|
93
|
+
"operation": "add_watch_directory",
|
|
94
|
+
"directory": directory,
|
|
95
|
+
"hint": "Failed to start watching directory. Check if directory exists and is readable.",
|
|
96
|
+
}
|