feat(adk-agent): standalone Google-ADK agent that listens + responds in the console#149
Open
ivanmkc wants to merge 1 commit into
Open
feat(adk-agent): standalone Google-ADK agent that listens + responds in the console#149ivanmkc wants to merge 1 commit into
ivanmkc wants to merge 1 commit into
Conversation
…in the console Adds integrations/adk-agent/ — a standalone Python (Google ADK) agent that long-polls one termchart viewer console scope and, on each human message, renders/updates the diagram AND posts a short text reply into the log. An alternative to driving termchart from a coding harness via the CLI. - Speaks the existing viewer HTTP API only (no changes under packages/*): GET/POST /inbox, push/patch/suggest/status/focus. - Loop-back guard: records the seq of each posted reply and skips it on read (mirrors the browser console's seenSeqs) so the agent never answers itself. - CLI-parity resilience: long-poll from cursor, backoff 1s->15s on transient errors, exit on 4xx, forward-progress guard, clean SIGINT. - Real (non-peek) reads, so the human sees "Read by the agent ✓". - Vertex AI via ADC by default; GCP project read from env only, never hardcoded. - Tests are hermetic (mocked HTTP + scripted runner; no network/LLM/sleep): 43 passing, ruff + mypy clean. New path-filtered CI workflow.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
integrations/adk-agent/— a standalone Python (Google ADK) agent that listens to one termchart viewer console scope and responds by rendering/updating the diagram AND posting a short text reply in the console log. It's an alternative to driving termchart from a coding harness (Claude Code / agy) via the CLI.This is purely additive — nothing under
packages/*changes. The agent speaks the existing viewer HTTP API (GET/POST /inbox,push/patch/suggest/status/focus).How it works
seqand skips it on the next read (mirrors the browser console'sseenSeqs) — it never answers itself.peek) reads, so the human sees "Read by the agent ✓".project/agent.Layout
config.py·models.py·client.py·prompts.py(compact, self-contained diagram cheat-sheet) ·tools.py·agent.py·loop.py·main.py, pluspyproject.toml,README.md,.env.example, and a path-filtered CI workflow. RootREADME.md+AGENTS.mdgained one-line pointers.Verification
uv run pytest→ 43 passed (hermetic:httpx.MockTransport+ a scripted runner; no network, no LLM, notime.sleep).uv run ruff check .clean ·uv run mypy srcclean.google-adk 1.34.3(caught + fixedApp.nameidentifier requirement).acked=1) → flow rendered into the store → text reply posted into the console → PASS; no self-reply loop.The live Gemini-inference leg is for the maintainer to run (
uv run termchart-adkwith ADC) — it's environment/credential-dependent and intentionally not exercised in CI.