google-adk-extras 0.2.3__tar.gz → 0.2.5__tar.gz
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.
- {google_adk_extras-0.2.3/src/google_adk_extras.egg-info → google_adk_extras-0.2.5}/PKG-INFO +1 -1
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/pyproject.toml +1 -1
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/__init__.py +1 -1
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/custom_agent_loader.py +15 -1
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/enhanced_fastapi.py +41 -4
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5/src/google_adk_extras.egg-info}/PKG-INFO +1 -1
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/LICENSE +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/MANIFEST.in +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/README.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/agent-loading.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/credentials.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/examples.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/fastapi.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/getting-started.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/index.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/quickstarts.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/services.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/troubleshooting.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/docs/uris.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/README.md +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/consume_remote_a2a.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/credentials/google_oauth2.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/custom_loader.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/fastapi_app.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/programmatic_a2a_expose.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/runner_basic.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/services/artifacts_local.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/services/memory_yaml.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/examples/services/sessions_sql.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/mkdocs.yml +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/setup.cfg +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/setup.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/adk_builder.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/__init__.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/base_custom_artifact_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/local_folder_artifact_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/mongo_artifact_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/s3_artifact_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/sql_artifact_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/__init__.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/base_custom_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/github_oauth2_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/google_oauth2_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/http_basic_auth_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/jwt_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/microsoft_oauth2_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/x_oauth2_credential_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/enhanced_adk_web_server.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/enhanced_runner.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/__init__.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/base_custom_memory_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/mongo_memory_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/redis_memory_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/sql_memory_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/yaml_file_memory_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/__init__.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/base_custom_session_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/mongo_session_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/redis_session_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/sql_session_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/yaml_file_session_service.py +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/SOURCES.txt +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/dependency_links.txt +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/requires.txt +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/top_level.txt +0 -0
- {google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/tests/test_a2a_helpers.py +0 -0
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/custom_agent_loader.py
RENAMED
@@ -146,6 +146,20 @@ class CustomAgentLoader(BaseAgentLoader):
|
|
146
146
|
sorted_agents = sorted(agent_names)
|
147
147
|
logger.debug("Total registered agents: %d", len(sorted_agents))
|
148
148
|
return sorted_agents
|
149
|
+
|
150
|
+
# Compatibility with ADK's AgentLoader API used by AgentChangeEventHandler
|
151
|
+
def remove_agent_from_cache(self, name: str) -> None:
|
152
|
+
"""No-op cache invalidation for compatibility with ADK hot reload.
|
153
|
+
|
154
|
+
ADK's file-watcher calls `agent_loader.remove_agent_from_cache(current_app)`
|
155
|
+
when files change. Our loader does not cache filesystem-loaded agents,
|
156
|
+
but we provide this method to satisfy the expected interface.
|
157
|
+
|
158
|
+
Args:
|
159
|
+
name: Agent name to invalidate (ignored here).
|
160
|
+
"""
|
161
|
+
# Nothing to do; present for interface compatibility.
|
162
|
+
logger.debug("CustomAgentLoader.remove_agent_from_cache(%s) - no-op", name)
|
149
163
|
|
150
164
|
|
151
165
|
def __repr__(self) -> str:
|
@@ -153,4 +167,4 @@ class CustomAgentLoader(BaseAgentLoader):
|
|
153
167
|
with self._lock:
|
154
168
|
registered_count = len(self._registered_agents)
|
155
169
|
|
156
|
-
return f"CustomAgentLoader(registered={registered_count})"
|
170
|
+
return f"CustomAgentLoader(registered={registered_count})"
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/enhanced_fastapi.py
RENAMED
@@ -151,7 +151,7 @@ def get_enhanced_fast_api_app(
|
|
151
151
|
agent_engine_id = agent_engine_id_or_resource_name
|
152
152
|
return project, location, agent_engine_id
|
153
153
|
|
154
|
-
# Build the Memory service (
|
154
|
+
# Build the Memory service (enhanced to recognize extras URIs)
|
155
155
|
if memory_service_uri:
|
156
156
|
if memory_service_uri.startswith("rag://"):
|
157
157
|
from google.adk.memory.vertex_ai_rag_memory_service import VertexAiRagMemoryService
|
@@ -172,6 +172,19 @@ def get_enhanced_fast_api_app(
|
|
172
172
|
location=location,
|
173
173
|
agent_engine_id=agent_engine_id,
|
174
174
|
)
|
175
|
+
elif memory_service_uri.startswith("yaml://"):
|
176
|
+
from .memory.yaml_file_memory_service import YamlFileMemoryService
|
177
|
+
base_directory = memory_service_uri.split("://")[1]
|
178
|
+
memory_service = YamlFileMemoryService(base_directory=base_directory)
|
179
|
+
elif memory_service_uri.startswith("redis://"):
|
180
|
+
from .memory.redis_memory_service import RedisMemoryService
|
181
|
+
memory_service = RedisMemoryService(connection_string=memory_service_uri) # type: ignore[arg-type]
|
182
|
+
elif memory_service_uri.startswith(("sqlite://", "postgresql://", "mysql://")):
|
183
|
+
from .memory.sql_memory_service import SQLMemoryService
|
184
|
+
memory_service = SQLMemoryService(database_url=memory_service_uri)
|
185
|
+
elif memory_service_uri.startswith("mongodb://"):
|
186
|
+
from .memory.mongo_memory_service import MongoMemoryService
|
187
|
+
memory_service = MongoMemoryService(connection_string=memory_service_uri)
|
175
188
|
else:
|
176
189
|
raise click.ClickException(
|
177
190
|
"Unsupported memory service URI: %s" % memory_service_uri
|
@@ -179,7 +192,7 @@ def get_enhanced_fast_api_app(
|
|
179
192
|
else:
|
180
193
|
memory_service = InMemoryMemoryService()
|
181
194
|
|
182
|
-
# Build the Session service (
|
195
|
+
# Build the Session service (enhanced to recognize extras URIs)
|
183
196
|
if session_service_uri:
|
184
197
|
if session_service_uri.startswith("agentengine://"):
|
185
198
|
agent_engine_id_or_resource_name = session_service_uri.split("://")[1]
|
@@ -191,8 +204,18 @@ def get_enhanced_fast_api_app(
|
|
191
204
|
location=location,
|
192
205
|
agent_engine_id=agent_engine_id,
|
193
206
|
)
|
207
|
+
elif session_service_uri.startswith("yaml://"):
|
208
|
+
from .sessions.yaml_file_session_service import YamlFileSessionService
|
209
|
+
base_directory = session_service_uri.split("://")[1]
|
210
|
+
session_service = YamlFileSessionService(base_directory=base_directory)
|
211
|
+
elif session_service_uri.startswith("redis://"):
|
212
|
+
from .sessions.redis_session_service import RedisSessionService
|
213
|
+
session_service = RedisSessionService(connection_string=session_service_uri) # type: ignore[arg-type]
|
214
|
+
elif session_service_uri.startswith("mongodb://"):
|
215
|
+
from .sessions.mongo_session_service import MongoSessionService
|
216
|
+
session_service = MongoSessionService(connection_string=session_service_uri)
|
194
217
|
else:
|
195
|
-
#
|
218
|
+
# Treat remaining schemes as database URLs (sqlite/postgres/mysql)
|
196
219
|
if session_db_kwargs is None:
|
197
220
|
session_db_kwargs = {}
|
198
221
|
session_service = DatabaseSessionService(
|
@@ -201,11 +224,25 @@ def get_enhanced_fast_api_app(
|
|
201
224
|
else:
|
202
225
|
session_service = InMemorySessionService()
|
203
226
|
|
204
|
-
# Build the Artifact service (
|
227
|
+
# Build the Artifact service (enhanced to recognize extras URIs)
|
205
228
|
if artifact_service_uri:
|
206
229
|
if artifact_service_uri.startswith("gs://"):
|
207
230
|
gcs_bucket = artifact_service_uri.split("://")[1]
|
208
231
|
artifact_service = GcsArtifactService(bucket_name=gcs_bucket)
|
232
|
+
elif artifact_service_uri.startswith("local://"):
|
233
|
+
from .artifacts.local_folder_artifact_service import LocalFolderArtifactService
|
234
|
+
base_directory = artifact_service_uri.split("://")[1]
|
235
|
+
artifact_service = LocalFolderArtifactService(base_directory=base_directory)
|
236
|
+
elif artifact_service_uri.startswith("s3://"):
|
237
|
+
from .artifacts.s3_artifact_service import S3ArtifactService
|
238
|
+
bucket_name = artifact_service_uri.split("://")[1]
|
239
|
+
artifact_service = S3ArtifactService(bucket_name=bucket_name)
|
240
|
+
elif artifact_service_uri.startswith(("sqlite://", "postgresql://", "mysql://")):
|
241
|
+
from .artifacts.sql_artifact_service import SQLArtifactService
|
242
|
+
artifact_service = SQLArtifactService(database_url=artifact_service_uri)
|
243
|
+
elif artifact_service_uri.startswith("mongodb://"):
|
244
|
+
from .artifacts.mongo_artifact_service import MongoArtifactService
|
245
|
+
artifact_service = MongoArtifactService(connection_string=artifact_service_uri)
|
209
246
|
else:
|
210
247
|
raise click.ClickException(
|
211
248
|
"Unsupported artifact service URI: %s" % artifact_service_uri
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/artifacts/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/credentials/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/enhanced_adk_web_server.py
RENAMED
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/enhanced_runner.py
RENAMED
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/memory/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras/sessions/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/requires.txt
RENAMED
File without changes
|
{google_adk_extras-0.2.3 → google_adk_extras-0.2.5}/src/google_adk_extras.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|