-
Notifications
You must be signed in to change notification settings - Fork 1.3k
feat: add support for flat structure remote templates #676
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add support for remote templates where agent code is in the root directory rather than a subdirectory (e.g., adk-python samples). - Add _detect_flat_structure() to auto-detect flat templates - Update _infer_agent_directory_for_adk() to handle flat structures - Add copy_flat_structure_agent_files() for proper file placement - Allow -dir . flag to explicitly indicate flat structure - Derive target directory name from template folder name This enables using templates like: https://github.com/google/adk-python/tree/main/contributing/samples/bigquery
Summary of ChangesHello @eliasecchig, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds support for flat-structured remote templates, where agent code resides in the root directory rather than a subdirectory. This is a valuable feature that increases flexibility. The implementation includes auto-detection of the flat structure, an explicit -dir . flag for manual override, and logic to correctly place files in the new project structure. The changes are well-tested with both new unit tests and integration tests, which is excellent. I have a couple of minor suggestions to improve code clarity and remove some redundancy, but overall, this is a solid contribution.
- Simplify is_flat_structure check by removing redundant condition - Remove redundant dirs_exist_ok=True from shutil.copytree
Summary
-dir .flag to explicitly indicate flat structureProblem
Remote templates like adk-python samples have a "flat" structure where agent code is directly in the template root, not in a subdirectory:
But agent-starter-pack expected a nested structure:
Solution
_detect_flat_structure(): Auto-detects when agent.py is in root with no agent subdirectorycopy_flat_structure_agent_files(): Copies Python files to agent directory, other files to project root-dir .flag: Explicitly indicate flat structure when auto-detection might not triggerbigquery→bigquery/)Usage
Auto-detection (works automatically):
uvx agent-starter-pack create -a "https://github.com/google/adk-python/tree/main/contributing/samples/bigquery" -p -s -y -d agent_engine --output-dir target myprojectExplicit flag: