From 1690364549e12aeb14e2ab5c56502a3f15092702 Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 4 Mar 2026 13:22:39 +1030 Subject: [PATCH 1/6] chore: enhance CI for samples with build, test, and smoke tests --- .github/workflows/lit_samples_build.yml | 4 ++++ .github/workflows/ng_build_and_test.yml | 20 ++++++++------------ .github/workflows/python_samples_build.yml | 14 ++++++++++---- samples/client/lit/package.json | 1 + 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/.github/workflows/lit_samples_build.yml b/.github/workflows/lit_samples_build.yml index 4dc55bd23..1fa493ab1 100644 --- a/.github/workflows/lit_samples_build.yml +++ b/.github/workflows/lit_samples_build.yml @@ -47,4 +47,8 @@ jobs: working-directory: ./samples/client/lit run: npm run build --workspaces + - name: Test all lit samples workspaces + working-directory: ./samples/client/lit + run: npm run test --workspaces --if-present + diff --git a/.github/workflows/ng_build_and_test.yml b/.github/workflows/ng_build_and_test.yml index e0fb336e0..8d9b8b9ad 100644 --- a/.github/workflows/ng_build_and_test.yml +++ b/.github/workflows/ng_build_and_test.yml @@ -43,18 +43,14 @@ jobs: working-directory: ./samples/client/angular run: npm run build:renderer - - name: Build contact sample + - name: Build all Angular projects working-directory: ./samples/client/angular - run: npm run build contact + run: | + for project in a2a-chat-canvas lib gallery contact restaurant rizzcharts orchestrator; do + echo "Building $project..." + npm run build $project + done - - name: Build restaurant sample + - name: Run Angular tests working-directory: ./samples/client/angular - run: npm run build restaurant - - - name: Build Rizzchart sample - working-directory: ./samples/client/angular - run: npm run build rizzcharts - - - name: Build Orchestrator - working-directory: ./samples/client/angular - run: npm run build orchestrator + run: npm run test -- --watch=false --browsers=ChromeHeadless diff --git a/.github/workflows/python_samples_build.yml b/.github/workflows/python_samples_build.yml index 6435adc28..fcb5f8b5f 100644 --- a/.github/workflows/python_samples_build.yml +++ b/.github/workflows/python_samples_build.yml @@ -20,11 +20,13 @@ on: - main paths: - 'samples/agent/adk/**' + - 'samples/agent/mcp/**' - 'agent_sdks/python/**' - 'specification/**/json/**' pull_request: paths: - 'samples/agent/adk/**' + - 'samples/agent/mcp/**' - 'agent_sdks/python/**' - 'specification/**/json/**' @@ -53,16 +55,20 @@ jobs: - name: Build contact_lookup working-directory: samples/agent/adk/contact_lookup - run: uv build . + run: uv build . && uv run . --help - name: Build orchestrator working-directory: samples/agent/adk/orchestrator - run: uv build . + run: uv build . && uv run . --help - name: Build restaurant_finder working-directory: samples/agent/adk/restaurant_finder - run: uv build . + run: uv build . && uv run . --help - name: Build rizzcharts working-directory: samples/agent/adk/rizzcharts - run: uv build . + run: uv build . && uv run . --help + + - name: Build mcp demo + working-directory: samples/agent/mcp + run: uv build . && uv run . --help diff --git a/samples/client/lit/package.json b/samples/client/lit/package.json index 90f6cc2e6..8cad85f40 100644 --- a/samples/client/lit/package.json +++ b/samples/client/lit/package.json @@ -4,6 +4,7 @@ "version": "0.8.1", "description": "A2UI Lit Samples", "workspaces": [ + "component_gallery", "contact", "shell" ], From 7bede161caff74f1021c9ffcd17426d9af97ad18 Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 4 Mar 2026 13:26:25 +1030 Subject: [PATCH 2/6] chore: add lit smoke tests, explicit typechecking, and python agent validation --- .github/workflows/lit_samples_build.yml | 4 ++++ .github/workflows/ng_build_and_test.yml | 8 +++++++ .github/workflows/python_samples_build.yml | 24 +++++++++++++++---- .../client/lit/component_gallery/package.json | 2 +- .../lit/component_gallery/tests/smoke.test.ts | 8 +++++++ samples/client/lit/contact/package.json | 2 +- .../client/lit/contact/tests/smoke.test.ts | 8 +++++++ samples/client/lit/shell/package.json | 2 +- samples/client/lit/shell/tests/smoke.test.ts | 8 +++++++ 9 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 samples/client/lit/component_gallery/tests/smoke.test.ts create mode 100644 samples/client/lit/contact/tests/smoke.test.ts create mode 100644 samples/client/lit/shell/tests/smoke.test.ts diff --git a/.github/workflows/lit_samples_build.yml b/.github/workflows/lit_samples_build.yml index 1fa493ab1..8a18b5df9 100644 --- a/.github/workflows/lit_samples_build.yml +++ b/.github/workflows/lit_samples_build.yml @@ -43,6 +43,10 @@ jobs: working-directory: ./samples/client/lit run: npm install --workspaces + - name: Typecheck all lit samples workspaces + working-directory: ./samples/client/lit + run: npm run build:tsc --workspaces + - name: Build all lit samples workspaces working-directory: ./samples/client/lit run: npm run build --workspaces diff --git a/.github/workflows/ng_build_and_test.yml b/.github/workflows/ng_build_and_test.yml index 8d9b8b9ad..fc430a55c 100644 --- a/.github/workflows/ng_build_and_test.yml +++ b/.github/workflows/ng_build_and_test.yml @@ -43,6 +43,14 @@ jobs: working-directory: ./samples/client/angular run: npm run build:renderer + - name: Typecheck all Angular projects + working-directory: ./samples/client/angular + run: | + for project in a2a-chat-canvas lib gallery contact restaurant rizzcharts orchestrator; do + echo "Typechecking $project..." + npx ng build $project --no-build-optimizer --no-optimization --no-extract-licenses --no-source-map --no-aot --no-stats-json + done + - name: Build all Angular projects working-directory: ./samples/client/angular run: | diff --git a/.github/workflows/python_samples_build.yml b/.github/workflows/python_samples_build.yml index fcb5f8b5f..cc90f3911 100644 --- a/.github/workflows/python_samples_build.yml +++ b/.github/workflows/python_samples_build.yml @@ -55,20 +55,34 @@ jobs: - name: Build contact_lookup working-directory: samples/agent/adk/contact_lookup - run: uv build . && uv run . --help + run: | + uv build . + uv run . --help + uv run python -c "from agent import ContactAgent; a = ContactAgent(base_url='http://localhost', use_ui=True); print(f'Agent card validated: {a.get_agent_card().name}')" - name: Build orchestrator working-directory: samples/agent/adk/orchestrator - run: uv build . && uv run . --help + run: | + uv build . + uv run . --help + uv run python -c "from agent import OrchestratorAgent; a = OrchestratorAgent(base_url='http://localhost', use_ui=True); print(f'Agent card validated: {a.get_agent_card().name}')" - name: Build restaurant_finder working-directory: samples/agent/adk/restaurant_finder - run: uv build . && uv run . --help + run: | + uv build . + uv run . --help + uv run python -c "from agent import RestaurantAgent; a = RestaurantAgent(base_url='http://localhost', use_ui=True); print(f'Agent card validated: {a.get_agent_card().name}')" - name: Build rizzcharts working-directory: samples/agent/adk/rizzcharts - run: uv build . && uv run . --help + run: | + uv build . + uv run . --help + uv run python -c "from agent import RizzchartsAgent; a = RizzchartsAgent(base_url='http://localhost', use_ui=True); print(f'Agent card validated: {a.get_agent_card().name}')" - name: Build mcp demo working-directory: samples/agent/mcp - run: uv build . && uv run . --help + run: | + uv build . + uv run . --help diff --git a/samples/client/lit/component_gallery/package.json b/samples/client/lit/component_gallery/package.json index db7b663c7..6720d11bd 100644 --- a/samples/client/lit/component_gallery/package.json +++ b/samples/client/lit/component_gallery/package.json @@ -23,7 +23,7 @@ "service": true }, "test": { - "command": "node --test --enable-source-maps --test-reporter spec dist/src/0.8/tests/**/*.test.js", + "command": "node --test --enable-source-maps --test-reporter spec dist/tests/**/*.test.js", "dependencies": [ "build" ] diff --git a/samples/client/lit/component_gallery/tests/smoke.test.ts b/samples/client/lit/component_gallery/tests/smoke.test.ts new file mode 100644 index 000000000..8b343565c --- /dev/null +++ b/samples/client/lit/component_gallery/tests/smoke.test.ts @@ -0,0 +1,8 @@ +import { test } from 'node:test'; +import assert from 'node:assert'; +import '../component-gallery.js'; +import '../client.js'; + +test('smoke test: component_gallery imports resolve', () => { + assert.ok(true); +}); diff --git a/samples/client/lit/contact/package.json b/samples/client/lit/contact/package.json index 58da6a441..e111dc1da 100644 --- a/samples/client/lit/contact/package.json +++ b/samples/client/lit/contact/package.json @@ -23,7 +23,7 @@ "service": true }, "test": { - "command": "node --test --enable-source-maps --test-reporter spec dist/src/0.8/tests/**/*.test.js", + "command": "node --test --enable-source-maps --test-reporter spec dist/tests/**/*.test.js", "dependencies": [ "build" ] diff --git a/samples/client/lit/contact/tests/smoke.test.ts b/samples/client/lit/contact/tests/smoke.test.ts new file mode 100644 index 000000000..4a9a0f706 --- /dev/null +++ b/samples/client/lit/contact/tests/smoke.test.ts @@ -0,0 +1,8 @@ +import { test } from 'node:test'; +import assert from 'node:assert'; +import '../contact.js'; +import '../client.js'; + +test('smoke test: contact imports resolve', () => { + assert.ok(true); +}); diff --git a/samples/client/lit/shell/package.json b/samples/client/lit/shell/package.json index a8f3b197d..8f50c4d9e 100644 --- a/samples/client/lit/shell/package.json +++ b/samples/client/lit/shell/package.json @@ -25,7 +25,7 @@ "service": true }, "test": { - "command": "node --test --enable-source-maps --test-reporter spec dist/src/0.8/tests/**/*.test.js", + "command": "node --test --enable-source-maps --test-reporter spec dist/tests/**/*.test.js", "dependencies": [ "build" ] diff --git a/samples/client/lit/shell/tests/smoke.test.ts b/samples/client/lit/shell/tests/smoke.test.ts new file mode 100644 index 000000000..9a2df438d --- /dev/null +++ b/samples/client/lit/shell/tests/smoke.test.ts @@ -0,0 +1,8 @@ +import { test } from 'node:test'; +import assert from 'node:assert'; +import '../app.js'; +import '../client.js'; + +test('smoke test: shell imports resolve', () => { + assert.ok(true); +}); From 0bd542ff68f1b7a4bb8eb11505767e7e257ae9a4 Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 4 Mar 2026 13:36:04 +1030 Subject: [PATCH 3/6] fix(ci): fix lit smoke tests by using tsx and fix angular typecheck arguments --- .github/workflows/ng_build_and_test.yml | 2 +- samples/client/lit/component_gallery/package.json | 2 +- samples/client/lit/component_gallery/tests/smoke.test.ts | 4 ++-- samples/client/lit/contact/package.json | 2 +- samples/client/lit/contact/tests/smoke.test.ts | 4 ++-- samples/client/lit/shell/package.json | 2 +- samples/client/lit/shell/tests/smoke.test.ts | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ng_build_and_test.yml b/.github/workflows/ng_build_and_test.yml index fc430a55c..ba89be5e2 100644 --- a/.github/workflows/ng_build_and_test.yml +++ b/.github/workflows/ng_build_and_test.yml @@ -48,7 +48,7 @@ jobs: run: | for project in a2a-chat-canvas lib gallery contact restaurant rizzcharts orchestrator; do echo "Typechecking $project..." - npx ng build $project --no-build-optimizer --no-optimization --no-extract-licenses --no-source-map --no-aot --no-stats-json + npx ng build $project --configuration development --no-progress done - name: Build all Angular projects diff --git a/samples/client/lit/component_gallery/package.json b/samples/client/lit/component_gallery/package.json index 6720d11bd..6abcb1a0f 100644 --- a/samples/client/lit/component_gallery/package.json +++ b/samples/client/lit/component_gallery/package.json @@ -23,7 +23,7 @@ "service": true }, "test": { - "command": "node --test --enable-source-maps --test-reporter spec dist/tests/**/*.test.js", + "command": "npx tsx --test --test-reporter spec tests/**/*.test.ts", "dependencies": [ "build" ] diff --git a/samples/client/lit/component_gallery/tests/smoke.test.ts b/samples/client/lit/component_gallery/tests/smoke.test.ts index 8b343565c..3b654a87f 100644 --- a/samples/client/lit/component_gallery/tests/smoke.test.ts +++ b/samples/client/lit/component_gallery/tests/smoke.test.ts @@ -1,7 +1,7 @@ import { test } from 'node:test'; import assert from 'node:assert'; -import '../component-gallery.js'; -import '../client.js'; +import '../component-gallery.ts'; +import '../client.ts'; test('smoke test: component_gallery imports resolve', () => { assert.ok(true); diff --git a/samples/client/lit/contact/package.json b/samples/client/lit/contact/package.json index e111dc1da..cebee9860 100644 --- a/samples/client/lit/contact/package.json +++ b/samples/client/lit/contact/package.json @@ -23,7 +23,7 @@ "service": true }, "test": { - "command": "node --test --enable-source-maps --test-reporter spec dist/tests/**/*.test.js", + "command": "npx tsx --test --test-reporter spec tests/**/*.test.ts", "dependencies": [ "build" ] diff --git a/samples/client/lit/contact/tests/smoke.test.ts b/samples/client/lit/contact/tests/smoke.test.ts index 4a9a0f706..7174daeb6 100644 --- a/samples/client/lit/contact/tests/smoke.test.ts +++ b/samples/client/lit/contact/tests/smoke.test.ts @@ -1,7 +1,7 @@ import { test } from 'node:test'; import assert from 'node:assert'; -import '../contact.js'; -import '../client.js'; +import '../contact.ts'; +import '../client.ts'; test('smoke test: contact imports resolve', () => { assert.ok(true); diff --git a/samples/client/lit/shell/package.json b/samples/client/lit/shell/package.json index 8f50c4d9e..780fdaf30 100644 --- a/samples/client/lit/shell/package.json +++ b/samples/client/lit/shell/package.json @@ -25,7 +25,7 @@ "service": true }, "test": { - "command": "node --test --enable-source-maps --test-reporter spec dist/tests/**/*.test.js", + "command": "npx tsx --test --test-reporter spec tests/**/*.test.ts", "dependencies": [ "build" ] diff --git a/samples/client/lit/shell/tests/smoke.test.ts b/samples/client/lit/shell/tests/smoke.test.ts index 9a2df438d..55f6e3d16 100644 --- a/samples/client/lit/shell/tests/smoke.test.ts +++ b/samples/client/lit/shell/tests/smoke.test.ts @@ -1,7 +1,7 @@ import { test } from 'node:test'; import assert from 'node:assert'; -import '../app.js'; -import '../client.js'; +import '../app.ts'; +import '../client.ts'; test('smoke test: shell imports resolve', () => { assert.ok(true); From 829b8631063649f453307a5fd97be464ef6076ed Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 4 Mar 2026 13:38:28 +1030 Subject: [PATCH 4/6] fix(ci): add tsx to devDeps for lit samples and remove invalid ng arg --- .github/workflows/ng_build_and_test.yml | 2 +- samples/client/lit/component_gallery/package.json | 1 + samples/client/lit/contact/package.json | 1 + samples/client/lit/shell/package.json | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ng_build_and_test.yml b/.github/workflows/ng_build_and_test.yml index ba89be5e2..a8d5eed06 100644 --- a/.github/workflows/ng_build_and_test.yml +++ b/.github/workflows/ng_build_and_test.yml @@ -48,7 +48,7 @@ jobs: run: | for project in a2a-chat-canvas lib gallery contact restaurant rizzcharts orchestrator; do echo "Typechecking $project..." - npx ng build $project --configuration development --no-progress + npx ng build $project --configuration development done - name: Build all Angular projects diff --git a/samples/client/lit/component_gallery/package.json b/samples/client/lit/component_gallery/package.json index 6abcb1a0f..92626d691 100644 --- a/samples/client/lit/component_gallery/package.json +++ b/samples/client/lit/component_gallery/package.json @@ -62,6 +62,7 @@ "devDependencies": { "dotenv": "^17.2.3", "typescript": "^5.8.3", + "tsx": "^4.19.0", "uuid": "^13.0.0", "vite": "^7.1.11", "wireit": "^0.15.0-pre.2" diff --git a/samples/client/lit/contact/package.json b/samples/client/lit/contact/package.json index cebee9860..4c040f9e9 100644 --- a/samples/client/lit/contact/package.json +++ b/samples/client/lit/contact/package.json @@ -70,6 +70,7 @@ "devDependencies": { "dotenv": "^17.2.3", "typescript": "^5.8.3", + "tsx": "^4.19.0", "uuid": "^13.0.0", "vite": "^7.1.11", "wireit": "^0.15.0-pre.2" diff --git a/samples/client/lit/shell/package.json b/samples/client/lit/shell/package.json index 780fdaf30..753a452f0 100644 --- a/samples/client/lit/shell/package.json +++ b/samples/client/lit/shell/package.json @@ -72,6 +72,7 @@ "devDependencies": { "dotenv": "^17.2.3", "typescript": "^5.8.3", + "tsx": "^4.19.0", "uuid": "^13.0.0", "vite": "^7.1.11", "wireit": "^0.15.0-pre.2" From 6aed950f017b07a3b5ec3613ceba81854a0538f9 Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 4 Mar 2026 13:42:27 +1030 Subject: [PATCH 5/6] fix(ci): fix CI failures by adding missing tsx dep and simplifying angular build --- .github/workflows/ng_build_and_test.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/ng_build_and_test.yml b/.github/workflows/ng_build_and_test.yml index a8d5eed06..be22fe683 100644 --- a/.github/workflows/ng_build_and_test.yml +++ b/.github/workflows/ng_build_and_test.yml @@ -43,18 +43,10 @@ jobs: working-directory: ./samples/client/angular run: npm run build:renderer - - name: Typecheck all Angular projects - working-directory: ./samples/client/angular - run: | - for project in a2a-chat-canvas lib gallery contact restaurant rizzcharts orchestrator; do - echo "Typechecking $project..." - npx ng build $project --configuration development - done - - name: Build all Angular projects working-directory: ./samples/client/angular run: | - for project in a2a-chat-canvas lib gallery contact restaurant rizzcharts orchestrator; do + for project in gallery contact restaurant rizzcharts orchestrator; do echo "Building $project..." npm run build $project done From 1574ebeaccd80c63e9f4545035c471b4ecb88adc Mon Sep 17 00:00:00 2001 From: Jacob Simionato Date: Wed, 4 Mar 2026 13:49:05 +1030 Subject: [PATCH 6/6] fix(ci): add missing tsconfig.spec.json for gallery and further fix CI --- .../angular/projects/gallery/tsconfig.spec.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 samples/client/angular/projects/gallery/tsconfig.spec.json diff --git a/samples/client/angular/projects/gallery/tsconfig.spec.json b/samples/client/angular/projects/gallery/tsconfig.spec.json new file mode 100644 index 000000000..39f6a19e3 --- /dev/null +++ b/samples/client/angular/projects/gallery/tsconfig.spec.json @@ -0,0 +1,12 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.ts" + ] +}