solace-agent-mesh 1.1.0__py3-none-any.whl → 1.3.0__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.
- solace_agent_mesh/agent/adk/runner.py +18 -12
- solace_agent_mesh/agent/adk/services.py +3 -3
- solace_agent_mesh/agent/protocol/event_handlers.py +27 -21
- solace_agent_mesh/agent/sac/app.py +1 -1
- solace_agent_mesh/agent/sac/component.py +0 -1
- solace_agent_mesh/assets/docs/404.html +2 -2
- solace_agent_mesh/assets/docs/assets/js/{main.a75ecc0d.js → main.08d30374.js} +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/migration-guides/a2a-upgrade-to-0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/migration-guides/a2a-upgrade-to-0.3.0/a2a-technical-migration-map/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +2 -2
- solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +2 -2
- solace_agent_mesh/assets/docs/lunr-index-1757433031159.json +1 -0
- solace_agent_mesh/assets/docs/lunr-index.json +1 -1
- solace_agent_mesh/assets/docs/search-doc-1757433031159.json +1 -0
- solace_agent_mesh/assets/docs/search-doc.json +1 -1
- solace_agent_mesh/cli/__init__.py +1 -1
- solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +125 -48
- solace_agent_mesh/cli/commands/eval_cmd.py +14 -0
- solace_agent_mesh/cli/commands/init_cmd/__init__.py +53 -31
- solace_agent_mesh/cli/commands/init_cmd/database_step.py +91 -0
- solace_agent_mesh/cli/commands/init_cmd/env_step.py +19 -8
- solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +80 -25
- solace_agent_mesh/cli/commands/init_cmd/web_init_step.py +32 -10
- solace_agent_mesh/cli/commands/init_cmd/webui_gateway_step.py +74 -15
- solace_agent_mesh/cli/commands/plugin_cmd/create_cmd.py +0 -2
- solace_agent_mesh/cli/commands/run_cmd.py +5 -3
- solace_agent_mesh/cli/utils.py +68 -12
- solace_agent_mesh/client/webui/frontend/static/assets/authCallback-vY5eu2lI.js +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/client-BeBkzgWW.js +25 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-Bjys1KQs.js +339 -0
- solace_agent_mesh/client/webui/frontend/static/assets/main-C03yrETa.css +1 -0
- solace_agent_mesh/client/webui/frontend/static/assets/vendor-CE0AeXyK.js +395 -0
- solace_agent_mesh/client/webui/frontend/static/auth-callback.html +3 -2
- solace_agent_mesh/client/webui/frontend/static/index.html +4 -3
- solace_agent_mesh/common/utils/embeds/resolver.py +1 -0
- solace_agent_mesh/config_portal/backend/common.py +2 -2
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-bFMKlzKf.js +98 -0
- solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-d845808d.js → manifest-89db7c30.js} +1 -1
- solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
- solace_agent_mesh/evaluation/message_organizer.py +35 -56
- solace_agent_mesh/evaluation/run.py +26 -5
- solace_agent_mesh/evaluation/subscriber.py +35 -10
- solace_agent_mesh/evaluation/summary_builder.py +27 -34
- solace_agent_mesh/gateway/http_sse/ARCHITECTURE_GUIDE.md +676 -0
- solace_agent_mesh/gateway/http_sse/alembic/env.py +85 -0
- solace_agent_mesh/gateway/http_sse/alembic/script.py.mako +28 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/b1c2d3e4f5g6_add_database_indexes.py +83 -0
- solace_agent_mesh/gateway/http_sse/alembic/versions/d5b3f8f2e9a0_create_initial_database.py +58 -0
- solace_agent_mesh/gateway/http_sse/alembic.ini +147 -0
- solace_agent_mesh/gateway/http_sse/api/__init__.py +11 -0
- solace_agent_mesh/gateway/http_sse/api/controllers/__init__.py +9 -0
- solace_agent_mesh/gateway/http_sse/api/controllers/session_controller.py +355 -0
- solace_agent_mesh/gateway/http_sse/api/controllers/task_controller.py +279 -0
- solace_agent_mesh/gateway/http_sse/api/controllers/user_controller.py +35 -0
- solace_agent_mesh/gateway/http_sse/api/dto/__init__.py +10 -0
- solace_agent_mesh/gateway/http_sse/api/dto/requests/__init__.py +37 -0
- solace_agent_mesh/gateway/http_sse/api/dto/requests/session_requests.py +49 -0
- solace_agent_mesh/gateway/http_sse/api/dto/requests/task_requests.py +66 -0
- solace_agent_mesh/gateway/http_sse/api/dto/responses/__init__.py +43 -0
- solace_agent_mesh/gateway/http_sse/api/dto/responses/session_responses.py +68 -0
- solace_agent_mesh/gateway/http_sse/api/dto/responses/task_responses.py +74 -0
- solace_agent_mesh/gateway/http_sse/app.py +31 -1
- solace_agent_mesh/gateway/http_sse/application/__init__.py +3 -0
- solace_agent_mesh/gateway/http_sse/application/services/__init__.py +3 -0
- solace_agent_mesh/gateway/http_sse/application/services/session_service.py +135 -0
- solace_agent_mesh/gateway/http_sse/component.py +224 -62
- solace_agent_mesh/gateway/http_sse/dependencies.py +142 -39
- solace_agent_mesh/gateway/http_sse/domain/entities/__init__.py +3 -0
- solace_agent_mesh/gateway/http_sse/domain/entities/session.py +90 -0
- solace_agent_mesh/gateway/http_sse/domain/repositories/__init__.py +3 -0
- solace_agent_mesh/gateway/http_sse/domain/repositories/session_repository.py +54 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/__init__.py +4 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/dependency_injection/__init__.py +3 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/dependency_injection/container.py +123 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/persistence/__init__.py +4 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/persistence/database_persistence_service.py +16 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/persistence/database_service.py +119 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/persistence/models.py +31 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/persistence_service.py +12 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/repositories/__init__.py +3 -0
- solace_agent_mesh/gateway/http_sse/infrastructure/repositories/session_repository.py +174 -0
- solace_agent_mesh/gateway/http_sse/main.py +289 -85
- solace_agent_mesh/gateway/http_sse/routers/artifacts.py +121 -54
- solace_agent_mesh/gateway/http_sse/routers/config.py +3 -1
- solace_agent_mesh/gateway/http_sse/routers/tasks.py +83 -2
- solace_agent_mesh/gateway/http_sse/routers/visualization.py +7 -7
- solace_agent_mesh/gateway/http_sse/session_manager.py +64 -30
- solace_agent_mesh/gateway/http_sse/shared/__init__.py +9 -0
- solace_agent_mesh/gateway/http_sse/shared/auth_utils.py +29 -0
- solace_agent_mesh/gateway/http_sse/shared/enums.py +45 -0
- solace_agent_mesh/gateway/http_sse/shared/types.py +45 -0
- solace_agent_mesh/templates/shared_config.yaml +4 -5
- solace_agent_mesh/templates/webui.yaml +8 -10
- {solace_agent_mesh-1.1.0.dist-info → solace_agent_mesh-1.3.0.dist-info}/METADATA +5 -3
- {solace_agent_mesh-1.1.0.dist-info → solace_agent_mesh-1.3.0.dist-info}/RECORD +130 -91
- solace_agent_mesh/assets/docs/lunr-index-1756992446316.json +0 -1
- solace_agent_mesh/assets/docs/search-doc-1756992446316.json +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/authCallback-BmF2l6vg.js +0 -1
- solace_agent_mesh/client/webui/frontend/static/assets/client-D881Dttc.js +0 -49
- solace_agent_mesh/client/webui/frontend/static/assets/main-C0jZjYa8.js +0 -699
- solace_agent_mesh/client/webui/frontend/static/assets/main-CCeG324-.css +0 -1
- solace_agent_mesh/config_portal/frontend/static/client/assets/_index-Bym6YkMd.js +0 -98
- solace_agent_mesh/gateway/http_sse/routers/sessions.py +0 -85
- solace_agent_mesh/gateway/http_sse/routers/users.py +0 -59
- /solace_agent_mesh/assets/docs/assets/js/{main.a75ecc0d.js.LICENSE.txt → main.08d30374.js.LICENSE.txt} +0 -0
- {solace_agent_mesh-1.1.0.dist-info → solace_agent_mesh-1.3.0.dist-info}/WHEEL +0 -0
- {solace_agent_mesh-1.1.0.dist-info → solace_agent_mesh-1.3.0.dist-info}/entry_points.txt +0 -0
- {solace_agent_mesh-1.1.0.dist-info → solace_agent_mesh-1.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
API Router for managing user sessions.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
from fastapi import APIRouter, Depends, HTTPException, Request as FastAPIRequest, status
|
|
6
|
-
from typing import TYPE_CHECKING
|
|
7
|
-
|
|
8
|
-
from solace_ai_connector.common.log import log
|
|
9
|
-
from ....gateway.http_sse.session_manager import SessionManager
|
|
10
|
-
from ....gateway.http_sse.dependencies import get_session_manager
|
|
11
|
-
from a2a.types import JSONRPCSuccessResponse
|
|
12
|
-
from ....common import a2a
|
|
13
|
-
|
|
14
|
-
if TYPE_CHECKING:
|
|
15
|
-
from ....gateway.http_sse.component import WebUIBackendComponent
|
|
16
|
-
|
|
17
|
-
router = APIRouter()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@router.post("/new", response_model=JSONRPCSuccessResponse)
|
|
21
|
-
async def create_new_session(
|
|
22
|
-
request: FastAPIRequest,
|
|
23
|
-
session_manager: SessionManager = Depends(get_session_manager),
|
|
24
|
-
):
|
|
25
|
-
"""
|
|
26
|
-
Forces creation of a new A2A session, replacing any existing one.
|
|
27
|
-
Returns the new session ID.
|
|
28
|
-
"""
|
|
29
|
-
log_prefix = "[POST /api/v1/sessions/new] "
|
|
30
|
-
log.info("%sReceived new session creation request", log_prefix)
|
|
31
|
-
|
|
32
|
-
try:
|
|
33
|
-
new_session_id = session_manager.start_new_a2a_session(request)
|
|
34
|
-
|
|
35
|
-
log.info("%sCreated new A2A session: %s", log_prefix, new_session_id)
|
|
36
|
-
|
|
37
|
-
return a2a.create_generic_success_response(
|
|
38
|
-
result={
|
|
39
|
-
"sessionId": new_session_id,
|
|
40
|
-
"message": "New A2A session created successfully",
|
|
41
|
-
}
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
except Exception as e:
|
|
45
|
-
log.exception("%sError creating new session: %s", log_prefix, e)
|
|
46
|
-
error_resp = a2a.create_internal_error(
|
|
47
|
-
message=f"Failed to create new session: {e}"
|
|
48
|
-
)
|
|
49
|
-
raise HTTPException(
|
|
50
|
-
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
|
51
|
-
detail=error_resp.model_dump(exclude_none=True),
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
@router.get("/current", response_model=JSONRPCSuccessResponse)
|
|
56
|
-
async def get_current_session(
|
|
57
|
-
request: FastAPIRequest,
|
|
58
|
-
session_manager: SessionManager = Depends(get_session_manager),
|
|
59
|
-
):
|
|
60
|
-
"""
|
|
61
|
-
Returns information about the current session.
|
|
62
|
-
"""
|
|
63
|
-
log_prefix = "[GET /api/v1/sessions/current] "
|
|
64
|
-
|
|
65
|
-
try:
|
|
66
|
-
client_id = session_manager.get_a2a_client_id(request)
|
|
67
|
-
session_id = session_manager.get_a2a_session_id(request)
|
|
68
|
-
|
|
69
|
-
return a2a.create_generic_success_response(
|
|
70
|
-
result={
|
|
71
|
-
"clientId": client_id,
|
|
72
|
-
"sessionId": session_id,
|
|
73
|
-
"hasActiveSession": session_id is not None,
|
|
74
|
-
}
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
except Exception as e:
|
|
78
|
-
log.exception("%sError getting current session info: %s", log_prefix, e)
|
|
79
|
-
error_resp = a2a.create_internal_error(
|
|
80
|
-
message=f"Failed to get session info: {e}"
|
|
81
|
-
)
|
|
82
|
-
raise HTTPException(
|
|
83
|
-
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
|
84
|
-
detail=error_resp.model_dump(exclude_none=True),
|
|
85
|
-
)
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Router for user-related endpoints.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
from fastapi import APIRouter, Depends, Request as FastAPIRequest
|
|
6
|
-
from typing import Dict, Any
|
|
7
|
-
|
|
8
|
-
from ....gateway.http_sse.dependencies import get_session_manager
|
|
9
|
-
from ....gateway.http_sse.session_manager import SessionManager
|
|
10
|
-
from solace_ai_connector.common.log import log
|
|
11
|
-
|
|
12
|
-
router = APIRouter()
|
|
13
|
-
|
|
14
|
-
@router.get("/me", response_model=Dict[str, Any])
|
|
15
|
-
async def get_current_user(
|
|
16
|
-
request: FastAPIRequest,
|
|
17
|
-
session_manager: SessionManager = Depends(get_session_manager)
|
|
18
|
-
):
|
|
19
|
-
"""
|
|
20
|
-
Retrieves information about the currently authenticated user.
|
|
21
|
-
Uses request.state.user (set by AuthMiddleware) when available,
|
|
22
|
-
falls back to SessionManager for legacy compatibility.
|
|
23
|
-
"""
|
|
24
|
-
log.info("[GET /api/v1/users/me] Request received.")
|
|
25
|
-
|
|
26
|
-
if hasattr(request.state, 'user') and request.state.user:
|
|
27
|
-
user_info = request.state.user
|
|
28
|
-
log.debug("Using user info from AuthMiddleware")
|
|
29
|
-
return {
|
|
30
|
-
"username": user_info.get("email") or user_info.get("id") or user_info.get("user_id") or user_info.get("username"),
|
|
31
|
-
"authenticated": user_info["authenticated"],
|
|
32
|
-
"auth_method": user_info["auth_method"]
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
try:
|
|
36
|
-
user_id = session_manager.get_a2a_client_id(request)
|
|
37
|
-
access_token = session_manager.get_access_token(request)
|
|
38
|
-
is_authenticated = bool(access_token) or bool(session_manager.force_user_identity)
|
|
39
|
-
|
|
40
|
-
auth_method = "none"
|
|
41
|
-
if session_manager.force_user_identity:
|
|
42
|
-
auth_method = "forced"
|
|
43
|
-
elif is_authenticated:
|
|
44
|
-
auth_method = "oidc"
|
|
45
|
-
|
|
46
|
-
log.debug(f"Using SessionManager fallback: {user_id}, authenticated: {is_authenticated}")
|
|
47
|
-
|
|
48
|
-
return {
|
|
49
|
-
"username": user_id,
|
|
50
|
-
"authenticated": is_authenticated,
|
|
51
|
-
"auth_method": auth_method
|
|
52
|
-
}
|
|
53
|
-
except Exception as e:
|
|
54
|
-
log.error(f"Error accessing session in /users/me: {e}")
|
|
55
|
-
return {
|
|
56
|
-
"username": "anonymous",
|
|
57
|
-
"authenticated": False,
|
|
58
|
-
"auth_method": "none"
|
|
59
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|