Skip to content

feat(cli): add governed Google ADK Python and TypeScript adapters - #71

Merged
Baziar merged 5 commits into
mainfrom
feature/google-adk-agent-framework-adapter
Sep 23, 2026
Merged

Baziar merged 5 commits into
mainfrom
feature/google-adk-agent-framework-adapter

Conversation

@Baziar

@Baziar Baziar commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Thank you for contributing to Workspai

Please make sure:

  • The related issue is linked (if applicable)
  • Repository validation passes locally (npm run validate)
  • Documentation validation passes for doc changes (npm --workspace workspai run validate:docs)
  • Contract validation passes for contract changes (npm --workspace workspai run contracts:validate)
  • Documentation was updated when behavior changed
  • Changes are focused and backward-compatible

What changed

  • Added governed Google ADK adapters and preview project kits for Python and TypeScript, with pinned SDK baselines, bounded Workspai context tools, provider validation, session continuity, timeouts, and credential-safe defaults.
  • Implemented streaming using the official ADK partial and final-response semantics. Partial fragments are emitted exactly as yielded, intermediate metadata preserves the fragment window, tool events create explicit boundaries, and final aggregates are not re-emitted.
  • Disabled OpenTelemetry by default before importing ADK. Credentialless conformance verifies a non-recording span without opt-in and a recording span in a separate process started with WORKSPAI_AGENT_TRACING=1.
  • Kept Create fail-closed for adapters absent from release-admissions.v2.json, including before --dry-run or filesystem mutation. Preview kits are labeled awaiting release admission.
  • Moved shared context loaders into agent-frameworks/context-loaders/, expanded Create/Doctor/planner workflow coverage, and added Linux conformance evidence without promoting Google ADK into the release admission inventory.
  • Compared GitHub API mock URLs by hostname instead of substring matching so CodeQL no longer flags the version-policy tests.

Why this change

Workspai needs first-class Google ADK support without bypassing its ownership, mutation, security, and release-admission boundaries. These adapters provide usable Python and TypeScript starters while keeping unpublished kits unavailable through Create until the full qualification matrix has been reviewed.

The streaming implementation also removes text-prefix heuristics that corrupted repeated or prefix-shaped fragments. Both runtimes now follow the SDK’s official event semantics.

Validation

  • corepack npm run typecheck — passed
  • Targeted Vitest suites — 15/15 passed
  • Generated Python tests — 13 passed
  • Generated TypeScript tests — 12/12 passed
  • Python Linux conformance — 18/18 passed
    • google-adk 2.9.2
    • CPython 3.10.21
  • TypeScript Linux conformance — 18/18 passed
    • @google/adk 2.1.0
    • Node 24.20.0
  • Streaming and telemetry markers observed:
    • WORKSPAI_AGENT_STREAMING_OK
    • WORKSPAI_AGENT_TELEMETRY_OK
  • Prettier check — passed
  • git diff --check — passed

Full qualification still requires Python and TypeScript conformance on Linux, macOS, and Windows for the same commit. release-admissions.v2.json remains unchanged.

Checklist (maintainer-friendly)

  • No unrelated refactors
  • No sensitive data introduced
  • Release notes/changelog updated

Register independent google-adk runtimes in the existing agent-framework
registry with registry/GitHub-proved pins, provider-profile credentials,
and fail-closed Create until cross-platform admission.
Comment thread packages/cli/src/__tests__/agent-framework-version-policy.test.ts Fixed
@Baziar
Baziar merged commit e382ee7 into main Sep 23, 2026
51 checks passed
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.

2 participants