solace-agent-mesh 1.0.2__py3-none-any.whl → 1.0.3__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 solace-agent-mesh might be problematic. Click here for more details.

Files changed (97) hide show
  1. solace_agent_mesh/agent/adk/filesystem_artifact_service.py +32 -39
  2. solace_agent_mesh/agent/adk/services.py +140 -59
  3. solace_agent_mesh/agent/protocol/event_handlers.py +70 -116
  4. solace_agent_mesh/agent/sac/app.py +12 -2
  5. solace_agent_mesh/agent/sac/component.py +37 -1
  6. solace_agent_mesh/agent/tools/builtin_artifact_tools.py +8 -1
  7. solace_agent_mesh/agent/tools/peer_agent_tool.py +92 -84
  8. solace_agent_mesh/agent/utils/artifact_helpers.py +148 -14
  9. solace_agent_mesh/assets/docs/404.html +3 -3
  10. solace_agent_mesh/assets/docs/assets/js/{04989206.674a8007.js → 04989206.da8246cd.js} +1 -1
  11. solace_agent_mesh/assets/docs/assets/js/1023fc19.8e6d174c.js +1 -0
  12. solace_agent_mesh/assets/docs/assets/js/{3d406171.f722eaf5.js → 3d406171.9b081d5f.js} +1 -1
  13. solace_agent_mesh/assets/docs/assets/js/75384d09.c3991823.js +1 -0
  14. solace_agent_mesh/assets/docs/assets/js/9eff14a2.036c35ea.js +1 -0
  15. solace_agent_mesh/assets/docs/assets/js/{aba87c2f.d3e2dcc3.js → aba87c2f.a6b84da6.js} +1 -1
  16. solace_agent_mesh/assets/docs/assets/js/{ae4415af.8e279b5d.js → ae4415af.96189a93.js} +1 -1
  17. solace_agent_mesh/assets/docs/assets/js/b7006a3a.38c0cf3d.js +1 -0
  18. solace_agent_mesh/assets/docs/assets/js/bb2ef573.56931473.js +1 -0
  19. solace_agent_mesh/assets/docs/assets/js/{cc969b05.954186d4.js → cc969b05.bd3e0d6c.js} +1 -1
  20. solace_agent_mesh/assets/docs/assets/js/f284c35a.5aff74ab.js +1 -0
  21. solace_agent_mesh/assets/docs/assets/js/{f897a61a.f8c53b0f.js → f897a61a.862b0514.js} +1 -1
  22. solace_agent_mesh/assets/docs/assets/js/main.dc7db184.js +2 -0
  23. solace_agent_mesh/assets/docs/assets/js/runtime~main.aa687c82.js +1 -0
  24. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +3 -3
  25. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +3 -3
  26. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +8 -6
  27. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +4 -4
  28. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +3 -3
  29. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +3 -3
  30. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +3 -3
  31. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +3 -3
  32. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +3 -3
  33. solace_agent_mesh/assets/docs/docs/documentation/enterprise/index.html +3 -3
  34. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +3 -3
  35. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +3 -3
  36. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +3 -3
  37. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +9 -9
  38. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +4 -4
  39. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +5 -5
  40. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +4 -4
  41. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +4 -4
  42. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +5 -5
  43. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +140 -0
  44. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +4 -4
  45. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +4 -4
  46. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +4 -4
  47. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +4 -4
  48. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +3 -3
  49. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +5 -5
  50. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +3 -3
  51. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +3 -3
  52. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +3 -3
  53. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +3 -3
  54. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +3 -3
  55. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +3 -3
  56. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +3 -3
  57. solace_agent_mesh/assets/docs/img/solace-logo-text.svg +18 -0
  58. solace_agent_mesh/assets/docs/lunr-index-1755120326601.json +1 -0
  59. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  60. solace_agent_mesh/assets/docs/search-doc-1755120326601.json +1 -0
  61. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  62. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  63. solace_agent_mesh/cli/__init__.py +1 -1
  64. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +1 -1
  65. solace_agent_mesh/cli/commands/run_cmd.py +42 -3
  66. solace_agent_mesh/cli/main.py +1 -3
  67. solace_agent_mesh/client/webui/frontend/static/assets/main-BCpII1-0.css +1 -0
  68. solace_agent_mesh/client/webui/frontend/static/assets/main-DzKPMTRs.js +673 -0
  69. solace_agent_mesh/client/webui/frontend/static/index.html +2 -2
  70. solace_agent_mesh/common/exceptions.py +25 -0
  71. solace_agent_mesh/common/utils/initializer.py +3 -3
  72. solace_agent_mesh/common/utils/message_utils.py +79 -0
  73. solace_agent_mesh/config_portal/backend/common.py +1 -1
  74. solace_agent_mesh/config_portal/frontend/static/client/assets/{_index-_7yox_eh.js → _index-xSu2leR8.js} +1 -1
  75. solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-e5c3acfe.js → manifest-950eb3be.js} +1 -1
  76. solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
  77. solace_agent_mesh/gateway/base/component.py +15 -2
  78. solace_agent_mesh/gateway/http_sse/sse_manager.py +23 -1
  79. solace_agent_mesh/templates/plugin_agent_config_template.yaml +1 -1
  80. {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.3.dist-info}/METADATA +55 -45
  81. {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.3.dist-info}/RECORD +85 -81
  82. solace_agent_mesh/assets/docs/assets/js/1023fc19.015679ca.js +0 -1
  83. solace_agent_mesh/assets/docs/assets/js/9eff14a2.1bf8f61c.js +0 -1
  84. solace_agent_mesh/assets/docs/assets/js/b7006a3a.40b10c9d.js +0 -1
  85. solace_agent_mesh/assets/docs/assets/js/bb2ef573.207e6990.js +0 -1
  86. solace_agent_mesh/assets/docs/assets/js/f284c35a.ecc3d195.js +0 -1
  87. solace_agent_mesh/assets/docs/assets/js/main.c6286d7c.js +0 -2
  88. solace_agent_mesh/assets/docs/assets/js/runtime~main.d5133813.js +0 -1
  89. solace_agent_mesh/assets/docs/img/Solace_AI_Framework_README.png +0 -0
  90. solace_agent_mesh/assets/docs/lunr-index-1754075282978.json +0 -1
  91. solace_agent_mesh/assets/docs/search-doc-1754075282978.json +0 -1
  92. solace_agent_mesh/client/webui/frontend/static/assets/main-D11Lmy9p.css +0 -1
  93. solace_agent_mesh/client/webui/frontend/static/assets/main-Gfk3BYn5.js +0 -663
  94. /solace_agent_mesh/assets/docs/assets/js/{main.c6286d7c.js.LICENSE.txt → main.dc7db184.js.LICENSE.txt} +0 -0
  95. {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.3.dist-info}/WHEEL +0 -0
  96. {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.3.dist-info}/entry_points.txt +0 -0
  97. {solace_agent_mesh-1.0.2.dist-info → solace_agent_mesh-1.0.3.dist-info}/licenses/LICENSE +0 -0
@@ -5,9 +5,9 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/assets/favicon-BLgzUch9.ico" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Solace Agent Mesh</title>
8
- <script type="module" crossorigin src="/assets/main-Gfk3BYn5.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-DzKPMTRs.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/client-bp6u3qVZ.js">
10
- <link rel="stylesheet" crossorigin href="/assets/main-D11Lmy9p.css">
10
+ <link rel="stylesheet" crossorigin href="/assets/main-BCpII1-0.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
@@ -0,0 +1,25 @@
1
+ """Custom exceptions for Solace Agent Mesh."""
2
+
3
+
4
+ class MessageSizeExceededError(Exception):
5
+ """Raised when a message exceeds the maximum allowed size."""
6
+
7
+ def __init__(self, actual_size: int, max_size: int, message: str = None):
8
+ """Initialize the MessageSizeExceededError.
9
+
10
+ Args:
11
+ actual_size: The actual size of the message in bytes.
12
+ max_size: The maximum allowed size in bytes.
13
+ message: Optional custom error message. If None, a default message
14
+ will be generated.
15
+ """
16
+ self.actual_size = actual_size
17
+ self.max_size = max_size
18
+
19
+ if message is None:
20
+ message = (
21
+ f"Message size {actual_size} bytes exceeds maximum limit of "
22
+ f"{max_size} bytes"
23
+ )
24
+
25
+ super().__init__(message)
@@ -2,6 +2,7 @@ import os
2
2
  import json
3
3
  import yaml
4
4
  from solace_ai_connector.common.log import log
5
+ from solace_ai_connector.main import load_config
5
6
 
6
7
  _has_initialized_system = False
7
8
 
@@ -13,7 +14,7 @@ def initialize():
13
14
  return
14
15
 
15
16
  try:
16
- from solace_a2a_agent_enterprise.init_enterprise import initialize_enterprise_features
17
+ from solace_agent_mesh_enterprise.init_enterprise import initialize_enterprise_features
17
18
  except ImportError:
18
19
  # Community edition
19
20
  # Contact Solace support for enterprise features
@@ -23,8 +24,7 @@ def initialize():
23
24
  if enterprise_config and isinstance(enterprise_config, str):
24
25
  if enterprise_config.endswith('.yaml') or enterprise_config.endswith('.yml'):
25
26
  try:
26
- with open(enterprise_config, 'r', encoding='utf-8') as file:
27
- enterprise_config = yaml.safe_load(file)
27
+ enterprise_config = load_config(enterprise_config)
28
28
  except Exception as e:
29
29
  log.error("Failed to load YAML config from SAM_ENTERPRISE_CONFIG: %s", e, exc_info=True)
30
30
  raise
@@ -0,0 +1,79 @@
1
+ """Message utility functions for size calculation and validation.
2
+
3
+ This module provides utilities for calculating and validating message sizes
4
+ to ensure they don't exceed configured limits. The size calculation matches
5
+ the exact serialization format used by the Solace AI Connector (JSON + UTF-8).
6
+ """
7
+
8
+ import json
9
+ from typing import Any, Dict, Tuple
10
+
11
+ from solace_ai_connector.common.log import log
12
+
13
+ # Maximum bytes per character in UTF-8 encoding (4 bytes for full Unicode range)
14
+ MAX_UTF8_BYTES_PER_CHARACTER = 4
15
+
16
+
17
+ def calculate_message_size(payload: Dict[str, Any]) -> int:
18
+ """Calculate the exact size of a message payload in bytes.
19
+
20
+ Uses JSON serialization followed by UTF-8 encoding to match the exact
21
+ format used by the Solace AI Connector.
22
+
23
+ Args:
24
+ payload: The message payload dictionary to calculate size for.
25
+
26
+ Returns:
27
+ The size of the payload in bytes.
28
+
29
+ Note:
30
+ If JSON serialization fails, falls back to string representation
31
+ for size estimation.
32
+ """
33
+ try:
34
+ # Use JSON serialization + UTF-8 encoding to match Solace AI Connector
35
+ json_str = json.dumps(payload, separators=(",", ":"), ensure_ascii=False)
36
+ return len(json_str.encode("utf-8"))
37
+ except (TypeError, ValueError) as e:
38
+ # Graceful fallback if JSON serialization fails
39
+ log.warning(
40
+ f"Failed to serialize payload to JSON for size calculation: {e}. "
41
+ f"Using string representation fallback."
42
+ )
43
+ try:
44
+ return len(str(payload).encode("utf-8"))
45
+ except Exception as fallback_error:
46
+ log.error(
47
+ f"Fallback size calculation also failed: {fallback_error}. "
48
+ f"Returning conservative estimate."
49
+ )
50
+ # Conservative estimate using maximum UTF-8 bytes per character
51
+ return len(str(payload)) * MAX_UTF8_BYTES_PER_CHARACTER
52
+
53
+
54
+ def validate_message_size(
55
+ payload: Dict[str, Any], max_size_bytes: int, component_identifier: str = "Unknown"
56
+ ) -> Tuple[bool, int]:
57
+ """Validate that a message payload doesn't exceed the maximum size limit.
58
+
59
+ Args:
60
+ payload: The message payload dictionary to validate.
61
+ max_size_bytes: The maximum allowed size in bytes.
62
+ component_identifier: Identifier for the component performing validation
63
+ (used in log messages).
64
+
65
+ Returns:
66
+ A tuple containing:
67
+ - bool: True if the payload is within size limits, False otherwise
68
+ - int: The actual size of the payload in bytes
69
+
70
+ Note:
71
+ Logs an error if size exceeds the limit.
72
+ """
73
+ actual_size = calculate_message_size(payload)
74
+
75
+ # Check if size exceeds the limit
76
+ if actual_size > max_size_bytes:
77
+ return False, actual_size
78
+
79
+ return True, actual_size
@@ -30,7 +30,7 @@ AGENT_DEFAULTS = {
30
30
  "supports_streaming": True,
31
31
  "model_type": "general",
32
32
  "instruction": "You are a helpful AI assistant named __AGENT_NAME__.",
33
- "artifact_handling_mode": "embed",
33
+ "artifact_handling_mode": "reference",
34
34
  "enable_embed_resolution": True,
35
35
  "enable_artifact_content_instruction": True,
36
36
  "tools": "[]",