The site rendered one language under two names. Tab labels were split
137 `TypeScript` / 53 `Typescript`, with three pages carrying both
spellings at once (custom-agents.md 7/7, patterns.md 1/7,
function-tools.md 4/1), and the language-support badges were split 67/18
the same way. Because pymdownx.tabbed slugifies tab labels to lowercase,
both variants rendered and linked fine, so no link check or build warning
ever flagged it -- it was visible only to readers, as two names for one
SDK.
Every user-visible occurrence is normalized to `TypeScript`, plus the two
inconsistencies that turned up while doing it. 80 changed lines, accounted
for exactly:
53 tab label === "Typescript" -> === "TypeScript"
18 badge span lst-typescript">Typescript -> TypeScript
3 prose mention cloud-run.md, mcp-tools.md, workflows/patterns.md
2 api-reference/index.md card heading and link text
1 badge div attr title="...Python and Typescript."
1 mkdocs.yml nav Typescript ADK -> TypeScript ADK
1 code fence ```javascript -> ```typescript on a .ts include
1 artifacts/index.md closing summary sentence
---
80
The first six rows are pure casing: 78 lines that differ from their
originals by nothing but `Typescript` -> `TypeScript`. The last two are
not, and are the reason this is not a `sed`:
llm-agents.md:872 fenced `--8<-- ".../capital_agent.ts"` as ```javascript.
It was the only javascript-fenced `.ts` include in docs/ (the other 189
TypeScript fences are correct), and it cost that one snippet its
TypeScript highlighting.
artifacts/index.md:1084 closed the page by naming languages and got the
list wrong. It described reaching the artifact methods "using Python's
context objects or directly interacting with the `BaseArtifactService` in
Java" -- a two-language enumeration at the end of a page that carries
Python, TypeScript, Go, Java and Kotlin tabs (11/10/10/10/11), and one
that contradicts :556, which correctly names four of them. The
enumeration is dropped rather than extended: the sentence now describes
the two ways to reach these methods -- through the context object, or
through `BaseArtifactService` -- which is what the page actually teaches
and does not rot when a sixth language is added.
docs/api-reference/index.md is included even though the rest of
docs/api-reference/ is generated output that must not be touched. That
tree holds 3,140 generated HTML files and exactly one hand-authored page:
this one. It is Markdown, it is the only api-reference entry mkdocs.yml
lists as `.md` rather than `index.html` (:272, :441), it uses Material
`grid cards` and `:fontawesome-*:` shortcodes, and it carries a
`CONTRIBUTORS:` note citing issues #1716 and #1717. Its TypeScript card
already said "TypeScript" twice in its body text while its heading and
link text said "Typescript"; those two are now consistent with the body.
No generated file is modified.
Not in this change: the broken `SseConnectionParams` sample in
mcp-tools.md (docs-ts/p6c-mcp-ts-sample) and the `@google/adk` example
version bumps (docs-ts/p6b-example-versions). Only the casing of the
prose line above that sample is touched here.
Verified: `mkdocs build` exits 0 with an empty warning set on both main
and this branch, and the two warning sets are identical. A rendered
before/after diff of the whole site shows every `__tabbed_*` id, every
tab radio id and every heading anchor unchanged. Zero `=== "Typescript"`
and zero `lst-typescript">Typescript` remain anywhere in the repo.
Co-authored-by: Amaad Martin <amaadmartin@google.com>
* Enhance BigQuery Agent Analytics documentation
Updated documentation to clarify Java and Python plugin differences, added details on dropped-event observability, and improved explanations of event types and attributes.
* Address review: use language support tags and a single drop-reasons table
- Replace the inline Java version callouts in prose with language-support-tag
blocks on the relevant sections (Built-in redaction, Dropped-event
observability; ADK 2.0 workflow events already carried one).
- Collapse the duplicated 'Drop reasons (Python)' / 'Drop reasons (Java)'
tables into a single table with a per-language column.
- Trim the duplicated Java scope prose in the intro and the ADK 2.0 note.
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* Create slack runner integration page #1521 - 4
Adds the official integration documentation for `SlackRunner`.
- Created `docs/integrations/slack.md` following the Plugin template.
- Added Socket Mode installation and initialization instructions (`google-adk[slack]`).
- Checked against the integration-review and integration-create instructions.
* Update slack.md
* Update slack.md
Worked on feedback
* docs: remove experimental banner from data agent tools
* Update data-agent.md
also remove "Experimental" tag subheader
---------
Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
* Update custom_metadata per Issue 1292 - 8
Rendered page:
Agent PR: #1306
Original Issue: #1292
-Polished the explanation of how and why custom_metadata works. It now clearly outlines how developers can pass service-specific configurations (like ttl and revision_ttl) directly to the underlying Agent Platform.
- I found that the add_events_to_memory(events=...) section that the agent was proposing was already documented in the site.
* Update memory.md
Worked on feedback. Updated the custom metadata documentation to use a generic BaseMemoryService example instead of platform-specific services. The code snippet was also revised to use generic key-value pairs rather than prescriptive TTL keys.
* Update Spanner Toolset per issue #1521 - 6
Rendered page:
PR: #1525
Original Issue #1521
---
- Updated the page to add the Spanner admin toolset info with examples.
- Added configuration details for environment variables.
- Added alias for gemini-flash-latest to the bot's original snippet.
- Added contextual system instruction for the agent.
* Update spanner.md
* docs(integrations): refresh e2a page for the hosted-only MCP server
The e2a integration page has drifted from the service since it landed in
May. Corrections:
- Drop both Local MCP Server tabs. The `@e2a/mcp-server` npm package is
retired and the current server has no stdio transport, so `npx -y
@e2a/mcp-server` installs an abandoned build.
- Point the remote examples at `https://api.e2a.dev/mcp`, the endpoint
published in the MCP Registry, instead of the older `mcp.e2a.dev`.
- Remove `E2A_AGENT_EMAIL`, which no longer exists; `whoami` takes no
inputs and resolves identity from the credential.
- Remove the `E2A_BASE_URL` config table (renamed, and unused now that
the page is hosted-only).
- Fix the held-send status: `pending_review`, not `pending_approval`.
- Drop the `agent_mode: local|cloud` guidance. There is no delivery mode
to choose; inbound is available by polling or webhook subscription.
- Refresh the tool surface (~60 tools, was 18) and group it by credential
scope, since an agent-scoped key sees only the runtime tools.
- Update repository links for the tokencanopy org rename.
* docs(integrations): recommend the e2a SDK for production ADK agents
The MCP toolset gives the model the inbox, which is the wrong layer for
the deterministic parts of a deployment: webhook signature verification,
at-least-once delivery handling, and idempotent sends. Add a section
recommending the SDK own that boundary, with the MCP toolset kept for
model-driven actions inside a turn, and point at the working example.
* docs(integrations): add WebSocket delivery and future-proof the tool count
Two corrections after checking the page against the running service:
- Receiving mail listed only polling and webhooks. WebSocket delivery via
the SDK's listen() needs no public URL, which makes it the practical
choice while developing an ADK agent or for a long-running agent that
isn't a web service.
- The tool surface grows; state 60+ rather than a number that dates.
* docs(integrations): restructure e2a page to the integration template
Address review feedback. Drop the four added top-level sections ('For
production', 'Key scope', 'Receiving mail', 'Sending and review holds')
and fold only the load-bearing facts back into the template's existing
shape:
- Key scope becomes two sentences introducing Available tools, since an
agent-scoped key genuinely cannot see the admin tools listed there.
- The SDK recommendation becomes a short tip after the code sample,
keeping the inline links.
- Delivery options and OAuth become one sentence each in Configuration.
- accepted/pending_review moves into the send_message table row.
Additional resources trimmed to four: dropped the MCP Registry link (a
raw JSON API) and the two SDK links, which remain linked inline.
Page is now intro / use cases / prerequisites / one sample / tools /
configuration / resources, 186 lines.
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
* OpenAPI tool execution section per Issue #1227 - 11
Rendered view
PRs> #1245#1246
Original Issue> #1227
---
- Updated the execution section of the OpenAPI tool and improved language.
- Did minor edits to format and headers
* Update openapi-tools.md
* Update include_plugins per Issue #1173 - 9
Rendered page>
PRs> #1190#1192
Original Issue> #1173
- Changed the proposed note format into a bullet point.
- Made the explanation shorter and more direct so it matches Google's writing style guide.
- Fixed and replaced the undefined agent variable with a concrete MyImageAgent placeholder class to make the Python snippet self-contained.
- Added comments inside the code to explain exactly what happens when you turn plugins on or off (like how it affects things like tracing and events).
- Did light formatting in the rest of the page
* Update function-tools.md
* Update function-tools.md
fixed rendering mistakes
* Update function-tools.md
Adding a bullet did not work, I created a sub topic to stop the snippet from breaking in the rendering.
* Update function-tools.md
* Stop publishing homepage partials as standalone pages
The homepage is assembled from partials in docs/_includes/homepage/ via the
macros plugin. mkdocs.yml listed `/_includes/**` under `not_in_nav`, which only
suppresses the "not in nav" warning -- the partials were still built, published,
and indexed. All ten had live URLs, e.g. https://adk.dev/_includes/homepage/_eval/.
These pages are broken in isolation: the partials use paths relative to the site
root, so on their own URL links like `href="evaluate/"` resolve to
/_includes/homepage/_eval/evaluate/ (404) and images fail to load.
Move the pattern to `exclude_docs` so the partials are skipped by the build,
and delete _eval.md and _ai-dev-tools.md, which were dropped from index.md in
#1772 and are no longer included anywhere.
Verified with a local build: site/index.html is byte-identical before and after,
and the only difference across the entire output tree is the removal of the ten
_includes/ pages, which also disappear from sitemap.xml and the search index.
* Update mkdocs.yml
remove extended comments from config file; PR and blame records are sufficient explanation.
---------
Co-authored-by: Joe Fernandez <931947+joefernandez@users.noreply.github.com>
* Update external access tokens per issue 1292 - 7
- Reviewed original PR and added some corrections to the agent's draft.
- Added more info about authentication warnings.
- Added documentation for the external_access_token_key feature in authentication.md.
- Reviewed against python repository.
Links:
- Rendered page:
- Original PRs: #1303 and #1304
- Issue: #1292
* Update authentication.md
* Updating skilltoolset page per issue #1350 - 4
- Added a note so the developer checks for the files in their working directory.
- Removed redundant and not useful information for the developer on the agent's original
pr.
- Small formatting to headers.
Add a featured "Looker Block" subsection to "Build a dashboard" pointing to the
ready-to-use BigQuery Agent Analytics Looker Block on the Looker Marketplace,
and move the existing example-notebook guidance under a "Custom dashboard from a
notebook" subsection.
* Create SKILL.md
Skill page to review adk bot PRs
* Update SKILL.md
Worked on feedback and also I added a step instructing the bot to search closed issues and past PRs.
* Update adk-bot-review skill and tidy skill formatting
---------
Co-authored-by: Kristopher Overholt <koverholt@google.com>
InMemorySessionService.create_session is async, so calls without await
return unawaited coroutines and the sessions are never created, causing
SessionNotFoundError on subsequent runner.run_async() calls.
Co-authored-by: Kristopher Overholt <koverholt@google.com>
Variables app_name and user_id were defined lowercase but referenced as
APP_NAME and USER_ID (uppercase), causing NameError at runtime.
Co-authored-by: Kristopher Overholt <koverholt@google.com>