From a63648f0a276361bf73f3d46718a7962db0610f8 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Fri, 17 Apr 2026 09:24:43 -0700 Subject: [PATCH 1/5] Update README.md --- examples/verdure/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/examples/verdure/README.md b/examples/verdure/README.md index 0156bc82d..8d686a95f 100644 --- a/examples/verdure/README.md +++ b/examples/verdure/README.md @@ -36,7 +36,13 @@ c. Install dependencies and run the server using UV: uv run . ``` -The server will start on `http://localhost:10002` by default. + The server will start on `http://localhost:10002` by default. + +d. Verify the server is responding as expected: + + ```bash + curl http://localhost:10002/.well-known/agent-card.json + ``` ### 2. Run the Client From 01dab0867219e9ebbcc48cf2ded287c832096ee1 Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Sat, 18 Apr 2026 14:09:47 -0700 Subject: [PATCH 2/5] - --- examples/simple_chat/macos/Podfile.lock | 6 --- .../macos/Runner.xcodeproj/project.pbxproj | 42 +++++++++++-------- .../xcshareddata/xcschemes/Runner.xcscheme | 18 ++++++++ 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/examples/simple_chat/macos/Podfile.lock b/examples/simple_chat/macos/Podfile.lock index ed05ac66c..0a5fc2c30 100644 --- a/examples/simple_chat/macos/Podfile.lock +++ b/examples/simple_chat/macos/Podfile.lock @@ -1,21 +1,15 @@ PODS: - FlutterMacOS (1.0.0) - - url_launcher_macos (0.0.1): - - FlutterMacOS DEPENDENCIES: - FlutterMacOS (from `Flutter/ephemeral`) - - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) EXTERNAL SOURCES: FlutterMacOS: :path: Flutter/ephemeral - url_launcher_macos: - :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos SPEC CHECKSUMS: FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 - url_launcher_macos: f87a979182d112f911de6820aefddaf56ee9fbfd PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009 diff --git a/examples/simple_chat/macos/Runner.xcodeproj/project.pbxproj b/examples/simple_chat/macos/Runner.xcodeproj/project.pbxproj index d7ad0fdcd..8bd6a051b 100644 --- a/examples/simple_chat/macos/Runner.xcodeproj/project.pbxproj +++ b/examples/simple_chat/macos/Runner.xcodeproj/project.pbxproj @@ -28,6 +28,7 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; F11A3C6CCBEE37426C146C43 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE242B4E6EAF01C24056F2F7 /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ @@ -82,6 +83,7 @@ 3E04E509BAB54C12D0CB3C89 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; 592EA936871A3FFDC0018EA3 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 5CF3A4C5899CF552200E8CBC /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 87D75098A6499C97DA68E6EE /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 96934E673176E47665E60D9F /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; @@ -103,6 +105,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, 3194601105D167D63F955843 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -164,6 +167,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -240,7 +244,6 @@ 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, - AE820D9490D3D680B90E3496 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -248,6 +251,9 @@ 33CC11202044C79F0003C045 /* PBXTargetDependency */, ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 33CC10ED2044A3C60003C045 /* simple_chat.app */; productType = "com.apple.product-type.application"; @@ -292,6 +298,9 @@ Base, ); mainGroup = 33CC10E42044A3C60003C045; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -383,23 +392,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - AE820D9490D3D680B90E3496 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; B1571D5ABC89ECCBDDAC7D0F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -796,6 +788,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/examples/simple_chat/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/simple_chat/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 57e7eb10f..bb91c8cb8 100644 --- a/examples/simple_chat/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/simple_chat/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -5,6 +5,24 @@ + + + + + + + + + + Date: Sun, 19 Apr 2026 15:38:25 -0700 Subject: [PATCH 3/5] Update README.md --- examples/verdure/README.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/verdure/README.md b/examples/verdure/README.md index 8d686a95f..b5828cd8b 100644 --- a/examples/verdure/README.md +++ b/examples/verdure/README.md @@ -38,11 +38,19 @@ c. Install dependencies and run the server using UV: The server will start on `http://localhost:10002` by default. -d. Verify the server is responding as expected: +d. In another terminal window: - ```bash - curl http://localhost:10002/.well-known/agent-card.json - ``` + * verify that the agent is available via A2A: + + ```bash + curl http://localhost:10002/.well-known/agent-card.json + ``` + + * send a message to the agent: + + ```bash + curl localhost:10002 -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"role":"user","parts":[{"text":"Please, help me with my project. I have a small backyard and I would like to plant some flowers and vegetables."}],"messageId":"1"}}}' + ``` ### 2. Run the Client From 5d054c07a82a7ee601bbc3733ca41789d5f3d85c Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Sun, 19 Apr 2026 15:47:14 -0700 Subject: [PATCH 4/5] Update agent.py --- examples/verdure/server/verdure/agent.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/verdure/server/verdure/agent.py b/examples/verdure/server/verdure/agent.py index c9334a32f..97dc8789e 100644 --- a/examples/verdure/server/verdure/agent.py +++ b/examples/verdure/server/verdure/agent.py @@ -111,7 +111,7 @@ def get_processing_message(self) -> str: def _build_agent(self, use_ui: bool) -> LlmAgent: """Builds the LLM agent for the landscape agent.""" - LITELLM_MODEL = os.getenv("LITELLM_MODEL", "gemini-2.5-flash") + LITELLM_MODEL = os.getenv("LITELLM_MODEL", "gemini/gemini-2.5-flash") if use_ui: # Construct the full prompt with UI instructions, examples, and schema From dab21ad66d153b499fc3b2c2d0a0c55337beb77e Mon Sep 17 00:00:00 2001 From: Polina Cherkasova Date: Sun, 19 Apr 2026 16:25:08 -0700 Subject: [PATCH 5/5] Update README.md --- examples/verdure/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/verdure/README.md b/examples/verdure/README.md index b5828cd8b..8bab00498 100644 --- a/examples/verdure/README.md +++ b/examples/verdure/README.md @@ -20,7 +20,7 @@ To run this example, you need to start both the server and the client applicatio a. Navigate to the server directory: ```bash - cd server/verdure + cd examples/verdure/server/verdure ``` b. Create a `.env` file with your Gemini API key: @@ -59,7 +59,7 @@ a. Open a new terminal window. b. Navigate to the client directory: ```bash - cd client + cd examples/verdure/client ``` c. Run the Flutter application on your desired device: