solace-agent-mesh 1.4.7__py3-none-any.whl → 1.4.9__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 (120) hide show
  1. solace_agent_mesh/agent/sac/app.py +3 -3
  2. solace_agent_mesh/agent/sac/component.py +2 -3
  3. solace_agent_mesh/agent/utils/artifact_helpers.py +23 -7
  4. solace_agent_mesh/assets/docs/404.html +3 -3
  5. solace_agent_mesh/assets/docs/assets/js/{0e682baa.da822665.js → 0e682baa.d054e1d8.js} +1 -1
  6. solace_agent_mesh/assets/docs/assets/js/166ab619.e27886d9.js +1 -0
  7. solace_agent_mesh/assets/docs/assets/js/453a82a6.3c6bb61d.js +1 -0
  8. solace_agent_mesh/assets/docs/assets/js/{75384d09.1e7d7cb7.js → 75384d09.c19e8b51.js} +1 -1
  9. solace_agent_mesh/assets/docs/assets/js/a3a92b25.af35e313.js +1 -0
  10. solace_agent_mesh/assets/docs/assets/js/{bac0be12.bf0181cf.js → bac0be12.17de4316.js} +1 -1
  11. solace_agent_mesh/assets/docs/assets/js/d6a81ee7.829198f1.js +1 -0
  12. solace_agent_mesh/assets/docs/assets/js/f284c35a.ed8dd236.js +1 -0
  13. solace_agent_mesh/assets/docs/assets/js/{main.11f9f9f3.js → main.51e33228.js} +2 -2
  14. solace_agent_mesh/assets/docs/assets/js/runtime~main.0d2ff2b6.js +1 -0
  15. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/installation/index.html +4 -4
  16. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/rbac-setup-guilde/index.html +4 -4
  17. solace_agent_mesh/assets/docs/docs/documentation/Enterprise/single-sign-on/index.html +4 -4
  18. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-gateway-upgrade-to-0.3.0/index.html +4 -4
  19. solace_agent_mesh/assets/docs/docs/documentation/Migrations/A2A Upgrade To 0.3.0/a2a-technical-migration-map/index.html +4 -4
  20. solace_agent_mesh/assets/docs/docs/documentation/concepts/agents/index.html +4 -4
  21. solace_agent_mesh/assets/docs/docs/documentation/concepts/architecture/index.html +4 -4
  22. solace_agent_mesh/assets/docs/docs/documentation/concepts/cli/index.html +4 -4
  23. solace_agent_mesh/assets/docs/docs/documentation/concepts/gateways/index.html +4 -4
  24. solace_agent_mesh/assets/docs/docs/documentation/concepts/orchestrator/index.html +4 -4
  25. solace_agent_mesh/assets/docs/docs/documentation/concepts/plugins/index.html +4 -4
  26. solace_agent_mesh/assets/docs/docs/documentation/deployment/debugging/index.html +4 -4
  27. solace_agent_mesh/assets/docs/docs/documentation/deployment/deploy/index.html +4 -4
  28. solace_agent_mesh/assets/docs/docs/documentation/deployment/observability/index.html +4 -4
  29. solace_agent_mesh/assets/docs/docs/documentation/getting-started/component-overview/index.html +4 -4
  30. solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/index.html +11 -12
  31. solace_agent_mesh/assets/docs/docs/documentation/getting-started/configurations/litellm_models/index.html +49 -0
  32. solace_agent_mesh/assets/docs/docs/documentation/getting-started/installation/index.html +4 -4
  33. solace_agent_mesh/assets/docs/docs/documentation/getting-started/introduction/index.html +4 -4
  34. solace_agent_mesh/assets/docs/docs/documentation/getting-started/quick-start/index.html +4 -4
  35. solace_agent_mesh/assets/docs/docs/documentation/tutorials/bedrock-agents/index.html +4 -4
  36. solace_agent_mesh/assets/docs/docs/documentation/tutorials/custom-agent/index.html +4 -4
  37. solace_agent_mesh/assets/docs/docs/documentation/tutorials/event-mesh-gateway/index.html +5 -5
  38. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mcp-integration/index.html +5 -5
  39. solace_agent_mesh/assets/docs/docs/documentation/tutorials/mongodb-integration/index.html +4 -4
  40. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rag-integration/index.html +6 -6
  41. solace_agent_mesh/assets/docs/docs/documentation/tutorials/rest-gateway/index.html +4 -4
  42. solace_agent_mesh/assets/docs/docs/documentation/tutorials/slack-integration/index.html +4 -4
  43. solace_agent_mesh/assets/docs/docs/documentation/tutorials/sql-database/index.html +4 -4
  44. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/artifact-management/index.html +4 -4
  45. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/audio-tools/index.html +4 -4
  46. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/data-analysis-tools/index.html +4 -4
  47. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/embeds/index.html +4 -4
  48. solace_agent_mesh/assets/docs/docs/documentation/user-guide/builtin-tools/index.html +4 -4
  49. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-agents/index.html +4 -4
  50. solace_agent_mesh/assets/docs/docs/documentation/user-guide/create-gateways/index.html +4 -4
  51. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-python-tools/index.html +4 -4
  52. solace_agent_mesh/assets/docs/docs/documentation/user-guide/creating-service-providers/index.html +4 -4
  53. solace_agent_mesh/assets/docs/docs/documentation/user-guide/solace-ai-connector/index.html +4 -4
  54. solace_agent_mesh/assets/docs/docs/documentation/user-guide/structure/index.html +4 -4
  55. solace_agent_mesh/assets/docs/lunr-index-1759254374040.json +1 -0
  56. solace_agent_mesh/assets/docs/lunr-index.json +1 -1
  57. solace_agent_mesh/assets/docs/search-doc-1759254374040.json +1 -0
  58. solace_agent_mesh/assets/docs/search-doc.json +1 -1
  59. solace_agent_mesh/assets/docs/sitemap.xml +1 -1
  60. solace_agent_mesh/cli/__init__.py +1 -1
  61. solace_agent_mesh/cli/commands/add_cmd/agent_cmd.py +6 -3
  62. solace_agent_mesh/cli/commands/init_cmd/__init__.py +3 -3
  63. solace_agent_mesh/cli/commands/init_cmd/broker_step.py +1 -1
  64. solace_agent_mesh/cli/commands/init_cmd/env_step.py +1 -1
  65. solace_agent_mesh/cli/commands/init_cmd/init_cmd_llm.txt +4 -4
  66. solace_agent_mesh/cli/commands/init_cmd/orchestrator_step.py +12 -1
  67. solace_agent_mesh/cli/commands/plugin_cmd/install_cmd.py +5 -5
  68. solace_agent_mesh/client/webui/frontend/static/assets/main-B0PHV3hm.js +339 -0
  69. solace_agent_mesh/client/webui/frontend/static/index.html +1 -1
  70. solace_agent_mesh/common/constants.py +2 -0
  71. solace_agent_mesh/config_portal/backend/common.py +1 -1
  72. solace_agent_mesh/config_portal/frontend/static/client/assets/{_index-bFMKlzKf.js → _index-BNuqpWDc.js} +1 -1
  73. solace_agent_mesh/config_portal/frontend/static/client/assets/{manifest-89db7c30.js → manifest-44d62be6.js} +1 -1
  74. solace_agent_mesh/config_portal/frontend/static/client/index.html +1 -1
  75. solace_agent_mesh/gateway/http_sse/component.py +21 -15
  76. solace_agent_mesh/gateway/http_sse/dependencies.py +84 -88
  77. solace_agent_mesh/gateway/http_sse/main.py +8 -2
  78. solace_agent_mesh/gateway/http_sse/repository/entities/message.py +3 -1
  79. solace_agent_mesh/gateway/http_sse/repository/entities/session.py +3 -1
  80. solace_agent_mesh/gateway/http_sse/repository/interfaces.py +5 -0
  81. solace_agent_mesh/gateway/http_sse/repository/message_repository.py +25 -23
  82. solace_agent_mesh/gateway/http_sse/repository/models/__init__.py +12 -4
  83. solace_agent_mesh/gateway/http_sse/repository/models/message_model.py +19 -1
  84. solace_agent_mesh/gateway/http_sse/repository/models/session_model.py +19 -1
  85. solace_agent_mesh/gateway/http_sse/repository/session_repository.py +46 -42
  86. solace_agent_mesh/gateway/http_sse/routers/artifacts.py +199 -59
  87. solace_agent_mesh/gateway/http_sse/routers/dto/requests/__init__.py +1 -6
  88. solace_agent_mesh/gateway/http_sse/routers/dto/requests/session_requests.py +3 -17
  89. solace_agent_mesh/gateway/http_sse/routers/people.py +4 -37
  90. solace_agent_mesh/gateway/http_sse/routers/sessions.py +33 -68
  91. solace_agent_mesh/gateway/http_sse/routers/tasks.py +54 -28
  92. solace_agent_mesh/gateway/http_sse/services/session_service.py +60 -28
  93. solace_agent_mesh/gateway/http_sse/shared/__init__.py +122 -1
  94. solace_agent_mesh/gateway/http_sse/shared/base_repository.py +278 -0
  95. solace_agent_mesh/gateway/http_sse/shared/database_exceptions.py +274 -0
  96. solace_agent_mesh/gateway/http_sse/shared/database_helpers.py +43 -0
  97. solace_agent_mesh/gateway/http_sse/shared/error_dto.py +107 -0
  98. solace_agent_mesh/gateway/http_sse/shared/exception_handlers.py +192 -0
  99. solace_agent_mesh/gateway/http_sse/shared/exceptions.py +192 -0
  100. solace_agent_mesh/gateway/http_sse/shared/pagination.py +138 -0
  101. solace_agent_mesh/gateway/http_sse/shared/response_utils.py +134 -0
  102. solace_agent_mesh/gateway/http_sse/shared/utils.py +22 -0
  103. solace_agent_mesh/templates/plugin_agent_config_template.yaml +1 -1
  104. solace_agent_mesh/templates/plugin_custom_config_template.yaml +1 -1
  105. solace_agent_mesh/templates/plugin_gateway_config_template.yaml +1 -1
  106. solace_agent_mesh/templates/shared_config.yaml +1 -1
  107. {solace_agent_mesh-1.4.7.dist-info → solace_agent_mesh-1.4.9.dist-info}/METADATA +34 -35
  108. {solace_agent_mesh-1.4.7.dist-info → solace_agent_mesh-1.4.9.dist-info}/RECORD +112 -101
  109. solace_agent_mesh/assets/docs/assets/js/166ab619.bdddc63a.js +0 -1
  110. solace_agent_mesh/assets/docs/assets/js/a3a92b25.6def8980.js +0 -1
  111. solace_agent_mesh/assets/docs/assets/js/beecea0d.ce915979.js +0 -1
  112. solace_agent_mesh/assets/docs/assets/js/f284c35a.525933db.js +0 -1
  113. solace_agent_mesh/assets/docs/assets/js/runtime~main.5922bcf0.js +0 -1
  114. solace_agent_mesh/assets/docs/lunr-index-1759151175744.json +0 -1
  115. solace_agent_mesh/assets/docs/search-doc-1759151175744.json +0 -1
  116. solace_agent_mesh/client/webui/frontend/static/assets/main-BKIoiLSu.js +0 -339
  117. /solace_agent_mesh/assets/docs/assets/js/{main.11f9f9f3.js.LICENSE.txt → main.51e33228.js.LICENSE.txt} +0 -0
  118. {solace_agent_mesh-1.4.7.dist-info → solace_agent_mesh-1.4.9.dist-info}/WHEEL +0 -0
  119. {solace_agent_mesh-1.4.7.dist-info → solace_agent_mesh-1.4.9.dist-info}/entry_points.txt +0 -0
  120. {solace_agent_mesh-1.4.7.dist-info → solace_agent_mesh-1.4.9.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,134 @@
1
+ """
2
+ Standardized Response Utilities
3
+
4
+ Provides consistent response formatting across all API endpoints.
5
+ Ensures uniform {data: ...} and {data: [...], meta: ...} response structure.
6
+ """
7
+
8
+ from typing import TypeVar, Generic, Any, Dict, List
9
+ from pydantic import BaseModel
10
+ from .pagination import PaginationParams, PaginatedResponse, DataResponse
11
+
12
+
13
+ T = TypeVar('T')
14
+
15
+
16
+ def create_data_response(data: T) -> DataResponse[T]:
17
+ """
18
+ Create a standardized data response.
19
+
20
+ Args:
21
+ data: The response data
22
+
23
+ Returns:
24
+ DataResponse with format: {data: T}
25
+
26
+ Example:
27
+ create_data_response({"id": 1, "name": "test"})
28
+ # Returns: {"data": {"id": 1, "name": "test"}}
29
+ """
30
+ return DataResponse.create(data)
31
+
32
+
33
+ def create_paginated_response(
34
+ data: List[T],
35
+ total_count: int,
36
+ pagination_params: PaginationParams
37
+ ) -> PaginatedResponse[T]:
38
+ """
39
+ Create a standardized paginated response.
40
+
41
+ Args:
42
+ data: List of items for current page
43
+ total_count: Total number of items across all pages
44
+ pagination_params: Pagination parameters used for the request
45
+
46
+ Returns:
47
+ PaginatedResponse with format: {data: [T], meta: {pagination: {...}}}
48
+
49
+ Example:
50
+ create_paginated_response([{"id": 1}, {"id": 2}], 50, params)
51
+ # Returns: {
52
+ # "data": [{"id": 1}, {"id": 2}],
53
+ # "meta": {
54
+ # "pagination": {
55
+ # "pageNumber": 1,
56
+ # "pageSize": 20,
57
+ # "totalPages": 3,
58
+ # "count": 50,
59
+ # "nextPage": 2
60
+ # }
61
+ # }
62
+ # }
63
+ """
64
+ return PaginatedResponse.create(data, total_count, pagination_params)
65
+
66
+
67
+ def create_empty_data_response() -> DataResponse[None]:
68
+ """
69
+ Create a standardized empty data response.
70
+
71
+ Returns:
72
+ DataResponse with format: {data: null}
73
+ """
74
+ return DataResponse.create(None)
75
+
76
+
77
+ def create_success_response(message: str = "Success") -> DataResponse[Dict[str, str]]:
78
+ """
79
+ Create a standardized success response.
80
+
81
+ Args:
82
+ message: Success message
83
+
84
+ Returns:
85
+ DataResponse with format: {data: {message: "Success"}}
86
+ """
87
+ return DataResponse.create({"message": message})
88
+
89
+
90
+ def create_list_response(items: List[T]) -> DataResponse[List[T]]:
91
+ """
92
+ Create a standardized list response (non-paginated).
93
+
94
+ Args:
95
+ items: List of items
96
+
97
+ Returns:
98
+ DataResponse with format: {data: [T]}
99
+
100
+ Example:
101
+ create_list_response([{"id": 1}, {"id": 2}])
102
+ # Returns: {"data": [{"id": 1}, {"id": 2}]}
103
+ """
104
+ return DataResponse.create(items)
105
+
106
+
107
+ class StandardResponseMixin:
108
+ """
109
+ Mixin class to add standard response methods to services or controllers.
110
+ """
111
+
112
+ @staticmethod
113
+ def data_response(data: T) -> DataResponse[T]:
114
+ """Create a data response."""
115
+ return create_data_response(data)
116
+
117
+ @staticmethod
118
+ def paginated_response(
119
+ data: List[T],
120
+ total_count: int,
121
+ pagination_params: PaginationParams
122
+ ) -> PaginatedResponse[T]:
123
+ """Create a paginated response."""
124
+ return create_paginated_response(data, total_count, pagination_params)
125
+
126
+ @staticmethod
127
+ def success_response(message: str = "Success") -> DataResponse[Dict[str, str]]:
128
+ """Create a success response."""
129
+ return create_success_response(message)
130
+
131
+ @staticmethod
132
+ def list_response(items: List[T]) -> DataResponse[List[T]]:
133
+ """Create a list response."""
134
+ return create_list_response(items)
@@ -0,0 +1,22 @@
1
+ """
2
+ Shared utility functions.
3
+
4
+ Contains generic utility functions used across the application.
5
+ """
6
+
7
+ import uuid
8
+
9
+
10
+ def generate_uuid() -> str:
11
+ """Generate a UUID string for database storage."""
12
+ return str(uuid.uuid4())
13
+
14
+
15
+ def to_snake_case(name: str) -> str:
16
+ """Convert a string to snake_case."""
17
+ return name.replace(" ", "_").lower()
18
+
19
+
20
+ def to_pascal_case(name: str) -> str:
21
+ """Convert a string to PascalCase."""
22
+ return "".join(word.capitalize() for word in name.split())
@@ -21,7 +21,7 @@ log:
21
21
  shared_config:
22
22
  - broker_connection: &broker_connection
23
23
  dev_mode: ${SOLACE_DEV_MODE, false}
24
- broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
24
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8008}
25
25
  broker_username: ${SOLACE_BROKER_USERNAME, default}
26
26
  broker_password: ${SOLACE_BROKER_PASSWORD, default}
27
27
  broker_vpn: ${SOLACE_BROKER_VPN, default}
@@ -17,7 +17,7 @@
17
17
  shared_config:
18
18
  - broker_connection: &broker_connection
19
19
  dev_mode: ${SOLACE_DEV_MODE, false}
20
- broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
20
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8008}
21
21
  broker_username: ${SOLACE_BROKER_USERNAME, default}
22
22
  broker_password: ${SOLACE_BROKER_PASSWORD, default}
23
23
  broker_vpn: ${SOLACE_BROKER_VPN, default}
@@ -22,7 +22,7 @@ log:
22
22
  shared_config:
23
23
  - broker_connection: &broker_connection
24
24
  dev_mode: ${SOLACE_DEV_MODE, false}
25
- broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
25
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8008}
26
26
  broker_username: ${SOLACE_BROKER_USERNAME, default}
27
27
  broker_password: ${SOLACE_BROKER_PASSWORD, default}
28
28
  broker_vpn: ${SOLACE_BROKER_VPN, default}
@@ -1,7 +1,7 @@
1
1
  shared_config:
2
2
  - broker_connection: &broker_connection
3
3
  dev_mode: ${SOLACE_DEV_MODE, false}
4
- broker_url: ${SOLACE_BROKER_URL, ws://localhost:8080}
4
+ broker_url: ${SOLACE_BROKER_URL, ws://localhost:8008}
5
5
  broker_username: ${SOLACE_BROKER_USERNAME, default}
6
6
  broker_password: ${SOLACE_BROKER_PASSWORD, default}
7
7
  broker_vpn: ${SOLACE_BROKER_VPN, default}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: solace-agent-mesh
3
- Version: 1.4.7
3
+ Version: 1.4.9
4
4
  Summary: Solace Agent Mesh is an open-source framework for building event-driven, multi-agent AI systems where specialized agents collaborate on complex tasks.
5
5
  Project-URL: Homepage, https://github.com/SolaceLabs/solace-agent-mesh
6
6
  Project-URL: Repository, https://github.com/SolaceLabs/solace-agent-mesh
@@ -214,47 +214,46 @@ Classifier: Programming Language :: Python :: 3.11
214
214
  Classifier: Programming Language :: Python :: 3.13
215
215
  Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
216
216
  Requires-Python: >=3.10.16
217
- Requires-Dist: a2a-sdk[http-server]>=0.3.1
218
- Requires-Dist: alembic>=1.13.1
219
- Requires-Dist: asteval>=1.0.6
220
- Requires-Dist: asteval~=1.0.0
221
- Requires-Dist: beautifulsoup4>=4.12.0
222
- Requires-Dist: click~=8.1.7
223
- Requires-Dist: fastapi>=0.100
224
- Requires-Dist: flask-cors>=5.0.0
217
+ Requires-Dist: a2a-sdk[http-server]==0.3.7
218
+ Requires-Dist: alembic==1.16.5
219
+ Requires-Dist: asteval==1.0.6
220
+ Requires-Dist: beautifulsoup4==4.13.5
221
+ Requires-Dist: click==8.1.8
222
+ Requires-Dist: fastapi==0.117.1
223
+ Requires-Dist: flask-cors==6.0.1
225
224
  Requires-Dist: flask==3.0.3
226
- Requires-Dist: gitpython~=3.1.44
225
+ Requires-Dist: gitpython==3.1.45
227
226
  Requires-Dist: google-adk==1.7.0
228
- Requires-Dist: google-genai>=1.16.0
229
- Requires-Dist: holidays>=0.24
230
- Requires-Dist: httpx>=0.25
231
- Requires-Dist: itsdangerous>=2.0
232
- Requires-Dist: jmespath>=1.0.1
233
- Requires-Dist: jsonpath-ng>=1.7.0
234
- Requires-Dist: jwcrypto>=1.5
227
+ Requires-Dist: google-genai==1.39.0
228
+ Requires-Dist: holidays==0.81.0
229
+ Requires-Dist: httpx==0.28.1
230
+ Requires-Dist: itsdangerous==2.2.0
231
+ Requires-Dist: jmespath==1.0.1
232
+ Requires-Dist: jsonpath-ng==1.7.0
233
+ Requires-Dist: jwcrypto==1.5.6
235
234
  Requires-Dist: kaleido==0.2.1
236
235
  Requires-Dist: litellm==1.76.3
237
- Requires-Dist: markdownify>=1.1.0
236
+ Requires-Dist: markdownify==1.2.0
238
237
  Requires-Dist: markitdown[all]==0.1.1
239
- Requires-Dist: mermaid-cli
240
- Requires-Dist: numpy>=2.2.5
238
+ Requires-Dist: mermaid-cli==0.1.2
239
+ Requires-Dist: numpy==2.2.6
241
240
  Requires-Dist: openai==1.99.9
242
- Requires-Dist: pandas>=2.2.3
243
- Requires-Dist: playwright>=1.54.0
244
- Requires-Dist: plotly>=6.0.1
245
- Requires-Dist: pydantic>=2.0
246
- Requires-Dist: pydub>=0.25.1
247
- Requires-Dist: pystache>=0.6.8
248
- Requires-Dist: python-dotenv>=1.0
249
- Requires-Dist: python-jwt>=3.3
250
- Requires-Dist: python-multipart>=0.0.7
251
- Requires-Dist: pyyaml>=6.0
252
- Requires-Dist: rouge~=1.0.1
241
+ Requires-Dist: pandas==2.3.2
242
+ Requires-Dist: playwright==1.55.0
243
+ Requires-Dist: plotly==6.3.0
244
+ Requires-Dist: pydantic==2.11.9
245
+ Requires-Dist: pydub==0.25.1
246
+ Requires-Dist: pystache==0.6.8
247
+ Requires-Dist: python-dotenv==1.1.1
248
+ Requires-Dist: python-jwt==4.1.0
249
+ Requires-Dist: python-multipart==0.0.20
250
+ Requires-Dist: pyyaml==6.0.2
251
+ Requires-Dist: rouge==1.0.1
253
252
  Requires-Dist: solace-ai-connector==1.2.0
254
- Requires-Dist: sqlalchemy>=2.0
255
- Requires-Dist: sse-starlette>=1.6
256
- Requires-Dist: toml~=0.10.2
257
- Requires-Dist: uvicorn[standard]>=0.20
253
+ Requires-Dist: sqlalchemy==2.0.40
254
+ Requires-Dist: sse-starlette==3.0.2
255
+ Requires-Dist: toml==0.10.2
256
+ Requires-Dist: uvicorn[standard]==0.37.0
258
257
  Provides-Extra: cli
259
258
  Requires-Dist: click>=8.0; extra == 'cli'
260
259
  Requires-Dist: prompt-toolkit>=3.0; extra == 'cli'