Skip to content

chore: import ADK plugin#6

Merged
mislavivanda merged 1 commit into
mainfrom
chore/import-adk-plugin
Jun 26, 2026
Merged

chore: import ADK plugin#6
mislavivanda merged 1 commit into
mainfrom
chore/import-adk-plugin

Conversation

@mislavivanda

@mislavivanda mislavivanda commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Introduce daytona-adk v0.1.0 to let Google ADK agents run code and commands in Daytona sandboxes. Adds a plugin, tools, examples, and tests for the first Apache-licensed release.

  • New Features

    • New Python package daytona-adk (packages/adk-plugin) with pyproject.toml, Apache 2.0 LICENSE, README, and version 0.1.0.
    • DaytonaPlugin creates one sandbox and provides tools to run code (Python/JS/TS), execute commands, upload/read files, and start long-running processes; includes lifecycle hooks and cleanup.
    • Config: api_key, sandbox_name, env_vars, labels, auto_stop_interval, auto_delete_interval. Examples for App/Runner patterns, multi-language execution, file operations, and long-running processes. Unit tests included. Depends on google-adk and daytona.
  • Migration

    • Install: pip install daytona-adk.
    • Set env vars: DAYTONA_API_KEY, GOOGLE_API_KEY.
    • Use: create DaytonaPlugin(), pass tools=plugin.get_tools() to your agent and plugins=[plugin] to your App or InMemoryRunner.

Written for commit 8f663e9. Summary will update on new commits.

Review in cubic

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

14 issues found across 14 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/adk-plugin/tests/test_tools.py">

<violation number="1" location="packages/adk-plugin/tests/test_tools.py:21">
P2: Tests are coupled to real Daytona infrastructure without a credential/availability gate, so default test runs can fail when `DAYTONA_API_KEY` or backend access is missing.</violation>

<violation number="2" location="packages/adk-plugin/tests/test_tools.py:330">
P3: `test_execute_command_tool_declaration` verifies `command`, `cwd`, and `env` in properties but omits `timeout` — the declaration does include `timeout`. A change that removes or renames `timeout` from the declaration would go undetected.</violation>

<violation number="3" location="packages/adk-plugin/tests/test_tools.py:339">
P3: Only `test_execute_code_tool_declaration` asserts on `required`. The other four declaration tests (`ExecuteCommandTool`, `UploadFileTool`, `ReadFileTool`, `StartLongRunningCommandTool`) skip `required` verification entirely, making them unable to catch regressions where a required field is accidentally made optional.</violation>
</file>

<file name="packages/adk-plugin/daytona_adk/tools.py">

<violation number="1" location="packages/adk-plugin/daytona_adk/tools.py:60">
P2: `language` is incorrectly marked required despite having a default. Calls relying on default python will be rejected by schema validation.</violation>

<violation number="2" location="packages/adk-plugin/daytona_adk/tools.py:90">
P2: Temporary script path is not unique per execution, so concurrent JS/TS runs can race on the same file.</violation>
</file>

<file name="packages/adk-plugin/examples/file_operations.py">

<violation number="1" location="packages/adk-plugin/examples/file_operations.py:38">
P2: The embedded Python script content is indented, which can make the uploaded `/tmp/analysis.py` invalid at top level (`unexpected indent`).</violation>
</file>

Tip: instead of fixing issues one by one fix them all with cubic

Re-trigger cubic

Comment thread packages/adk-plugin/daytona_adk/tools.py
Comment thread packages/adk-plugin/daytona_adk/tools.py
Comment thread packages/adk-plugin/examples/long_running_process.py
Comment thread packages/adk-plugin/examples/long_running_process.py
Comment thread packages/adk-plugin/tests/test_tools.py
Comment thread packages/adk-plugin/daytona_adk/tools.py
Comment thread packages/adk-plugin/tests/test_tools.py
Comment thread packages/adk-plugin/tests/test_tools.py
Comment thread packages/adk-plugin/examples/file_operations.py
Comment thread packages/adk-plugin/pyproject.toml
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
@mislavivanda mislavivanda force-pushed the chore/import-adk-plugin branch from e047cb8 to 8f663e9 Compare June 26, 2026 23:34
@mislavivanda mislavivanda merged commit f419232 into main Jun 26, 2026
9 checks passed
@mislavivanda mislavivanda deleted the chore/import-adk-plugin branch June 26, 2026 23:44
mislavivanda added a commit that referenced this pull request Jul 6, 2026
Signed-off-by: Mislav Ivanda <mislavivanda454@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant