diff --git a/core/src/main/java/com/google/adk/agents/CallbackContext.java b/core/src/main/java/com/google/adk/agents/CallbackContext.java index 49298451b..a29783769 100644 --- a/core/src/main/java/com/google/adk/agents/CallbackContext.java +++ b/core/src/main/java/com/google/adk/agents/CallbackContext.java @@ -92,14 +92,20 @@ public Single> listArtifacts() { .map(ListArtifactsResponse::filenames); } + /** Loads the latest version of an artifact from the service. */ + public Maybe loadArtifact(String filename) { + return loadArtifact(filename, Optional.empty()); + } + + /** Loads a specific version of an artifact from the service. */ + public Maybe loadArtifact(String filename, int version) { + return loadArtifact(filename, Optional.of(version)); + } + /** - * Loads an artifact from the artifact service associated with the current session. - * - * @param filename Artifact file name. - * @param version Artifact version (optional). - * @return loaded part, or empty if not found. - * @throws IllegalStateException if the artifact service is not initialized. + * @deprecated Use {@link #loadArtifact(String)} or {@link #loadArtifact(String, int)} instead. */ + @Deprecated public Maybe loadArtifact(String filename, Optional version) { if (invocationContext.artifactService() == null) { throw new IllegalStateException("Artifact service is not initialized."); diff --git a/core/src/main/java/com/google/adk/artifacts/BaseArtifactService.java b/core/src/main/java/com/google/adk/artifacts/BaseArtifactService.java index b6a3cee23..32ef9ff4d 100644 --- a/core/src/main/java/com/google/adk/artifacts/BaseArtifactService.java +++ b/core/src/main/java/com/google/adk/artifacts/BaseArtifactService.java @@ -55,22 +55,26 @@ Single saveArtifact( default Single saveAndReloadArtifact( String appName, String userId, String sessionId, String filename, Part artifact) { return saveArtifact(appName, userId, sessionId, filename, artifact) - .flatMap( - version -> - loadArtifact(appName, userId, sessionId, filename, Optional.of(version)) - .toSingle()); + .flatMap(version -> loadArtifact(appName, userId, sessionId, filename, version).toSingle()); + } + + /** Loads the latest version of an artifact from the service. */ + default Maybe loadArtifact( + String appName, String userId, String sessionId, String filename) { + return loadArtifact(appName, userId, sessionId, filename, Optional.empty()); + } + + /** Loads a specific version of an artifact from the service. */ + default Maybe loadArtifact( + String appName, String userId, String sessionId, String filename, int version) { + return loadArtifact(appName, userId, sessionId, filename, Optional.of(version)); } /** - * Gets an artifact. - * - * @param appName the app name - * @param userId the user ID - * @param sessionId the session ID - * @param filename the filename - * @param version Optional version number. If null, loads the latest version. - * @return the artifact or empty if not found + * @deprecated Use {@link #loadArtifact(String, String, String, String)} or {@link + * #loadArtifact(String, String, String, String, int)} instead. */ + @Deprecated Maybe loadArtifact( String appName, String userId, String sessionId, String filename, Optional version); diff --git a/core/src/main/java/com/google/adk/artifacts/InMemoryArtifactService.java b/core/src/main/java/com/google/adk/artifacts/InMemoryArtifactService.java index 5808f7083..8c8ec2af8 100644 --- a/core/src/main/java/com/google/adk/artifacts/InMemoryArtifactService.java +++ b/core/src/main/java/com/google/adk/artifacts/InMemoryArtifactService.java @@ -129,10 +129,7 @@ public Single> listVersions( public Single saveAndReloadArtifact( String appName, String userId, String sessionId, String filename, Part artifact) { return saveArtifact(appName, userId, sessionId, filename, artifact) - .flatMap( - version -> - loadArtifact(appName, userId, sessionId, filename, Optional.of(version)) - .toSingle()); + .flatMap(version -> loadArtifact(appName, userId, sessionId, filename, version).toSingle()); } private Map> getArtifactsMap(String appName, String userId, String sessionId) {