Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
479 commits
Select commit Hold shift + click to select a range
6d32e5d
Updated google merge
Sandeep-BA Nov 25, 2025
76d30ef
Merge pull request #95 from google/main
Sandeep-BA Nov 25, 2025
9636622
Merge pull request #97 from google/main
Sandeep-BA Nov 26, 2025
7456f94
Merge pull request #98 from google/main
Sandeep-BA Nov 28, 2025
41f0cd4
Merge pull request #99 from google/main
Sandeep-BA Nov 30, 2025
9dfb000
Merge pull request #100 from google/main
Sandeep-BA Dec 5, 2025
272817e
Merge pull request #101 from google/main
Sandeep-BA Dec 8, 2025
6240c5e
Merge pull request #102 from google/main
Sandeep-BA Dec 11, 2025
324438b
Merge pull request #103 from google/main
Sandeep-BA Dec 12, 2025
48d4cf5
Add PostgresHelper and update Postgres artifact/runner components
Dec 12, 2025
d5ea53b
Agent Config Changes modified as per adk python
Dec 12, 2025
4179253
Merge pull request #105 from google/main
Sandeep-BA Dec 17, 2025
9a9ada6
memory chnages in adk
pawankumarsha Dec 18, 2025
13fb248
Merge remote-tracking branch 'upstream/main'
Dec 18, 2025
5e4f5f9
pevent temp events from getting persisted.
Dec 18, 2025
255f211
added a readme for postgressartifactservice
Dec 18, 2025
6abc128
Merge remote-tracking branch 'upstream/main'
Dec 18, 2025
76c8ff7
removed commented line in postgressartifactservice
Dec 18, 2025
69c2c41
rm comment
Dec 18, 2025
80c5ef6
Merge pull request #106 from google/main
Sandeep-BA Dec 19, 2025
26e2d60
Merge pull request #96 from vaidyanath-b/main
Sandeep-BA Dec 19, 2025
871d849
add : version file
Dec 19, 2025
d04c072
Merge pull request #109 from google/main
Sandeep-BA Dec 21, 2025
34df2bd
Gemma model support init
manojkumarredbus Dec 23, 2025
bcf7e04
Merge pull request #104 from chhitiz-t/main
manojkumarredbus Dec 23, 2025
a2826f5
Merge branch 'main' into feature/adk-memory
pawankumarsha Dec 29, 2025
3642506
Created new memory classes
pawankumarsha Dec 29, 2025
3cef2e7
updated the leak detection threshold to 2 mins
Dec 29, 2025
442fd4a
Merge pull request #110 from google/main
manojkumarredbus Dec 29, 2025
2133040
Merge remote-tracking branch 'upstream/main'
Dec 29, 2025
21d16a7
added session level memory service for long term recall
pawankumarsha Dec 29, 2025
76c2e75
renamed postgreshelper to postgresartifactstore, modified artifact ta…
Jan 2, 2026
a2d341c
Removing extra embadding service
pawankumarsha Jan 5, 2026
3f22424
ADK final chnages
pawankumarsha Jan 5, 2026
2210518
removed readme file and reverted change in PostgresSessionService
Jan 5, 2026
95357c3
Merge pull request #112 from google/main
Sandeep-BA Jan 5, 2026
e52471b
fixed log and limit
pawankumarsha Jan 6, 2026
928f04d
Merge pull request #111 from pawanshaiitd/feature/adk-memory
Sandeep-BA Jan 6, 2026
4c3d763
changes related to gemma , that eventually don't work due to 400 error
manojkumarredbus Jan 6, 2026
4a42554
Merge branch 'main' of https://github.com/redbus-labs/adk-java
manojkumarredbus Jan 6, 2026
6aebd67
Ollama support for image models
manojkumarredbus Jan 7, 2026
d3378e5
Update README.md
manojkumarredbus Jan 7, 2026
8b1ce1c
addressed the review comments and made the required changes
Jan 7, 2026
c03542e
Merge pull request #113 from google/main
Sandeep-BA Jan 7, 2026
92fb917
Resolve merge conflict: keep PostgresArtifactService spelling + merge…
Jan 7, 2026
9937ad7
Merge branch 'main' into main
yashas2604 Jan 7, 2026
b29cb3d
Reverting CassandraRagRetrival extra chnages
pawankumarsha Jan 8, 2026
9e3fbf1
Merge pull request #115 from pawanshaiitd/fix/MemoryTestCases
Sandeep-BA Jan 8, 2026
e7a9d85
Merge pull request #114 from google/main
Sandeep-BA Jan 8, 2026
95e1ce3
Clean up environment variable handling and adjust connection timeout…
Jan 8, 2026
c22dd66
Merge pull request #108 from yashas2604/main
Sandeep-BA Jan 9, 2026
a7786c6
Merge upstream main branch
Sandeep-BA Jan 15, 2026
206ace7
Fixed the failing UTs
Sandeep-BA Jan 15, 2026
b7e805e
Merge pull request #117 from google/main
Sandeep-BA Jan 16, 2026
b0d7514
Add comprehensive A2A implementation with tests
Sandeep-BA Jan 17, 2026
2f84791
feat: Add fluent A2A server methods to LlmAgent and Builder
Sandeep-BA Jan 18, 2026
2596677
feat: Enhance A2A service with console output, session state initiali…
Sandeep-BA Jan 18, 2026
9b130f5
fix: Update A2aService.java header date to January 18, 2026
Sandeep-BA Jan 18, 2026
a4fe90e
Merge remote-tracking branch 'upstream/main'
Jan 20, 2026
af8ccc6
removed create table for artifacts
Jan 20, 2026
7c9e833
Merge pull request #120 from yashas2604/main
Sandeep-BA Jan 20, 2026
093480b
Merge remote-tracking branch 'upstream/main'
Jan 20, 2026
862d31f
feat: Add support for gpt-oss models in LlmRegistry
Jan 20, 2026
d8567a4
Merge remote-tracking branch 'upstream/main' into Feature
Jan 20, 2026
2b3e0c0
stash
manojkumarredbus Jan 23, 2026
0bf5eec
Merging upstream main branch from google adk
Sandeep-BA Jan 23, 2026
3d1a2ce
Fixing build failure
Sandeep-BA Jan 23, 2026
fd32849
stash
manojkumarredbus Jan 23, 2026
8516089
Merge branch 'main' of https://github.com/redbus-labs/adk-java
manojkumarredbus Jan 23, 2026
91d5937
feat: SSE implementation with HttpServer (default) and Spring (altern…
Sandeep-BA Jan 23, 2026
c0c41a9
feat: SSE implementation with HttpServer (default) and Spring (altern…
Sandeep-BA Jan 23, 2026
bc6029e
refactor: Remove search and MRI-related examples (RAE-specific)
Sandeep-BA Jan 23, 2026
3f1c590
docs: Remove search/MRI references from documentation
Sandeep-BA Jan 23, 2026
c8df0c7
docs: Fix formatAsSearchResponse reference in EventProcessor example
Sandeep-BA Jan 23, 2026
303437b
docs: Update example path to be generic (remove search reference)
Sandeep-BA Jan 23, 2026
91eb6a3
chore: Remove PR helper files (not needed in repo)
Sandeep-BA Jan 23, 2026
8f63c47
Added sse stream event ut and integration tests
Sandeep-BA Jan 24, 2026
369216d
Merge pull request #122 from redbus-labs/sse
Sandeep-BA Jan 24, 2026
8f6e3b2
feat(transcription): Add audio transcription capability
Sandeep-BA Jan 24, 2026
b0d8f0d
removed logs
Jan 27, 2026
865f699
Merge pull request #124 from google/main
Sandeep-BA Jan 27, 2026
18f342a
Merge pull request #125 from google/main
Sandeep-BA Jan 28, 2026
4daa678
Merge remote-tracking branch 'upstream/main'
Jan 28, 2026
82cb02e
removed logs
Jan 27, 2026
cf8ab5f
Merge pull request #126 from vaidyanath-b/master
Sandeep-BA Feb 3, 2026
0324fb4
Merge pull request #123 from redbus-labs/audio_transcription_capability
Sandeep-BA Feb 9, 2026
e8c3e56
Merge pull request #121 from Saliyan-moksh081/Feature
Sandeep-BA Feb 9, 2026
11a5fae
Merge pull request #119 from redbus-labs/a2a
Sandeep-BA Feb 9, 2026
7be5aa0
Revert "Add comprehensive A2A implementation with tests"
Sandeep-BA Feb 9, 2026
ba565d8
Merge pull request #127 from redbus-labs/revert-119-a2a
Sandeep-BA Feb 9, 2026
f7536b8
feat: Integrate Sarvam AI and fix build issues
Sandeep-BA Feb 11, 2026
ccfa56c
refactor: Update author information
Sandeep-BA Feb 11, 2026
6373040
refactor: Update author information
Sandeep-BA Feb 11, 2026
f4199bf
Merge branch 'main' of https://github.com/redbus-labs/adk-java
manojkumarredbus Feb 17, 2026
7eb4694
Merge origin/main into pr-128, resolving conflicts by adding transcri…
Sandeep-BA Feb 17, 2026
8467224
Merge pull request #130 from redbus-labs/fix-upstream-merge-128
Sandeep-BA Feb 17, 2026
fd57682
chore(main): release 1.0.0
github-actions[bot] Feb 17, 2026
a955450
Refactor: Rename SarvamLlm to Sarvam and align with Gemini pattern
Sandeep-BA Feb 17, 2026
5b58054
Merge pull request #131 from redbus-labs/release-please--branches--main
Sandeep-BA Feb 17, 2026
5d8578f
Test: Add unit and integration tests for Sarvam implementation
Sandeep-BA Feb 17, 2026
3f85812
Merge branch 'main' of https://github.com/redbus-labs/adk-java
manojkumarredbus Feb 19, 2026
8c1bab4
refactor: Rebuild Sarvam AI integration with industry-grade architecture
Sandeep-BA Feb 20, 2026
5572734
minor comment out changes
manojkumarredbus Feb 20, 2026
7c7eb0b
Add SarvamBaseLM for Sarvam AI model integration
Sandeep-BA Feb 20, 2026
900fb0d
Harden SarvamBaseLM with production-grade improvements
Sandeep-BA Feb 23, 2026
36b4989
Add SarvamBaseLM unit tests and API key validation warning
Sandeep-BA Feb 23, 2026
67de51c
Add CAPABILITIES.md documenting all Sarvam AI integration features
Sandeep-BA Feb 23, 2026
8802ce8
Add @author Sandeep Belgavi to all Sarvam AI source and test files
Sandeep-BA Feb 24, 2026
43ea5a4
Merge pull request #129 from redbus-labs/sarvam-ai
Sandeep-BA Feb 24, 2026
b085af4
chore(main): release 1.0.1-SNAPSHOT
github-actions[bot] Feb 24, 2026
2b762cc
Merge branch 'main' into pr-133
Sandeep-BA Feb 24, 2026
07da9f9
Merge pull request #134 from redbus-labs/pr-133
Sandeep-BA Feb 24, 2026
827ffac
Merge pull request #132 from redbus-labs/release-please--branches--main
Sandeep-BA Feb 24, 2026
87f093f
Merge pull request #136 from google/main
Sandeep-BA Feb 25, 2026
d41d937
chore(main): release 1.1.0
github-actions[bot] Feb 25, 2026
72f642e
Updating artifact capability supported table
Sandeep-BA Feb 25, 2026
aa9d253
Merge pull request #135 from redbus-labs/release-please--branches--main
manojkumarredbus Mar 2, 2026
4a6afc9
chore(main): release 1.1.1-SNAPSHOT
github-actions[bot] Mar 2, 2026
6b6e70c
Merge pull request #137 from redbus-labs/release-please--branches--main
Sandeep-BA Mar 2, 2026
ded6a3a
Reapply "Add comprehensive A2A implementation with tests"
Sandeep-BA Mar 3, 2026
22b1a89
feat: Add additional A2A files (A2ASendMessageExecutor, webservice, a…
Sandeep-BA Mar 3, 2026
d08a2bc
feat: Add a2a/webservice module and a2a_remote sample to build
Sandeep-BA Mar 3, 2026
c23d95c
fix: Resolve cyclic dependency and adapt A2A tests for current codebase
Sandeep-BA Mar 3, 2026
52c09ae
chore: Standardize @author Sandeep Belgavi Javadoc across all new A2A…
Sandeep-BA Mar 3, 2026
31c2234
Merge pull request #139 from redbus-labs/a2a-reintroduce
Sandeep-BA Mar 3, 2026
16473cb
chore(main): release 1.2.0
github-actions[bot] Mar 3, 2026
4f1bc9e
Merge pull request #140 from redbus-labs/release-please--branches--main
manojkumarredbus Mar 6, 2026
44e63dd
Merge upstream/main, resolving conflicts with upstream priority
Sandeep-BA Mar 7, 2026
2291ad7
Fix build after upstream merge: restore custom dependencies and adapt…
Sandeep-BA Mar 7, 2026
a2edac0
Fix gRPC version mismatch causing A2A integration test failures
Sandeep-BA Mar 7, 2026
30f773e
Merge pull request #142 from redbus-labs/upstream-sync-2026-03-07
Sandeep-BA Mar 7, 2026
342ce44
Restore debug print statements in BedrockBaseLM
manojkumarredbus Mar 10, 2026
9f3df15
Bedrock: FMIS/Converse support, URL handling, response parsing
Sandeep-BA Mar 10, 2026
6517117
Merge pull request #144 from google/main
Sandeep-BA Mar 17, 2026
6c1efe1
Added sarvam tool capability
alfredjimmy-redbus Mar 18, 2026
9650d21
tool calling updated in chat
alfredjimmy-redbus Mar 18, 2026
94949da
version error fixed
alfredjimmy-redbus Mar 18, 2026
139f4a1
Updated PostgresArtifactService and PostgresArtifactStore to support …
Mar 18, 2026
a9c1c0b
Add AzureBaseLM adapter for Azure OpenAI Responses API
alfredjimmy-redbus Mar 20, 2026
70fcfef
javadoc updated
alfredjimmy-redbus Mar 20, 2026
bd672b5
added reasoning status while streaming
alfredjimmy-redbus Mar 23, 2026
a4359b8
Merge upstream/main from google/adk-java
Sandeep-BA Mar 23, 2026
5e9824f
Adapt fork code to upstream API after google/adk-java merge
Sandeep-BA Mar 23, 2026
e9dd3cc
Merge pull request #150 from redbus-labs/sync/upstream-main-2026-03-23
Sandeep-BA Mar 23, 2026
a7c233b
Merge pull request #143 from redbus-labs/upstream-sync-2026-03-07
Sandeep-BA Mar 23, 2026
8fda2ad
pulled latest changes
Mar 24, 2026
86bbc11
Added streaming debug logs
alfredjimmy-redbus Mar 25, 2026
56b8ff7
replaced logger info instead of system out
alfredjimmy-redbus Mar 25, 2026
3a4e874
updated changes
alfredjimmy-redbus Mar 25, 2026
0550018
Revert unintended changes to file
alfredjimmy-redbus Mar 25, 2026
6d39d3b
Remove unintended changes
alfredjimmy-redbus Mar 25, 2026
79d062e
Merge pull request #149 from alfredjimmy-redbus/feature/azure-respons…
manojkumarredbus Mar 25, 2026
7e70b6f
Merge pull request #145 from alfredjimmy-redbus/feature/sarvam-tool-i…
manojkumarredbus Mar 25, 2026
3f824e7
fixed version mismatch
alfredjimmy-redbus Mar 25, 2026
9389c43
Detach Sarvam AI from the main reactor build while aligning its paren…
Sandeep-BA Mar 25, 2026
11dd2b6
Merge pull request #151 from alfredjimmy-redbus/fix/version-error
manojkumarredbus Mar 26, 2026
81e7318
Include Sarvam AI in the reactor; upgrade JaCoCo for JDK 24; fix Sure…
Sandeep-BA Mar 26, 2026
d955345
Merge origin/main into chore/sarvam-module-detach to resolve Sarvam P…
Sandeep-BA Mar 26, 2026
b57c6fc
Merge remote-tracking branch 'upstream/main' into new-main
Mar 26, 2026
52f1f42
Merge pull request #152 from redbus-labs/chore/sarvam-module-detach
Sandeep-BA Mar 26, 2026
ec50130
Merge remote-tracking branch 'upstream/main' into new-main
Mar 26, 2026
f836d33
edited to match with upstream changes
Apr 10, 2026
ae641e2
Merge main into pr-153 and resolve LlmRegistry conflict
Sandeep-BA Apr 13, 2026
b63e44e
Merge remote-tracking branch 'upstream/main' into new-main
Apr 15, 2026
0db82e9
Fix Live audio dropouts and update live config
Apr 24, 2026
4e68042
feat(transcription): Add input and output transcription fields to Eve…
Apr 24, 2026
af1566f
updated adk version for sarvam to 1.1.0
Apr 27, 2026
8e8b450
Merge pull request #154 from yashas2604/new-main
Sandeep-BA Apr 27, 2026
4879808
Merge pull request #155 from google/main
Sandeep-BA Apr 28, 2026
69420e5
fix(runner): remove local debug logging and timing instrumentation
Apr 29, 2026
38b3439
Merge origin/main into personal branch
Apr 29, 2026
6dd1dac
refactor(RunConfig): update builder methods for consistency and depre…
Apr 29, 2026
791a66b
test: gracefully skip Gemini API integration tests on 429 rate limit
Sandeep-BA Apr 29, 2026
08cee8a
chore: update default Gemini model version to 2.5
Sandeep-BA Apr 29, 2026
28f275c
Merge pull request #156 from redbus-labs/update-gemini-model-version
Sandeep-BA Apr 29, 2026
1e437de
Merge pull request #157 from google/main
Sandeep-BA May 1, 2026
e8c6060
Merge pull request #158 from google/main
Sandeep-BA May 4, 2026
026bdb6
Merge pull request #159 from google/main
Sandeep-BA May 12, 2026
e02119f
added realtime azure contract
alfredjimmy-redbus May 18, 2026
36b2e22
Merge branch 'main' into azure-realtime-api
alfredjimmy-redbus May 18, 2026
68adf39
feat: Add RealtimeInputConfig support to RunConfig and related classes
May 18, 2026
3ebbc5d
Merge pull request #160 from google/main
Sandeep-BA May 19, 2026
eeb8ab0
Merge remote-tracking branch 'rohan/main' into azure-realtime-api
alfredjimmy-redbus May 20, 2026
26ab700
azure unified package added with response and realtime api
alfredjimmy-redbus May 20, 2026
2294d4c
Merge pull request #161 from rohanvij05/fix/bidi-configs
Sandeep-BA May 20, 2026
b23aa56
Update pom.xml to version 1.3.1-SNAPSHOT and refactor GeminiLlmConnec…
May 20, 2026
7fa4af6
Merge pull request #162 from rohanvij05/fix/bidi-configs
manojkumarredbus May 20, 2026
5b2caf3
azure realtime translate feature added
alfredjimmy-redbus May 25, 2026
0d0a75c
sanity run complete
alfredjimmy-redbus May 25, 2026
e0e4e2b
Merge branch 'main' into azure-realtime-api
alfredjimmy-redbus May 25, 2026
9e577d3
azure models readme added
alfredjimmy-redbus May 28, 2026
651d39e
Enhance PostgresArtifactService with S3 and Kafka integration
yashas2604 May 29, 2026
5f7b109
Merge upstream google/adk-java main into redbus-labs main
Sandeep-BA Jun 1, 2026
1b22b35
review changes and updated
alfredjimmy-redbus Jun 3, 2026
c60b044
Merge pull request #165 from redbus-labs/fix-merge-164
Sandeep-BA Jun 3, 2026
6067351
feat: add JSON export functionality to MapDbRunner
manojkumarredbus Jun 3, 2026
b820f87
Merge pull request #164 from google/main
Sandeep-BA Jun 7, 2026
5ce229d
resolved commented changes
alfredjimmy-redbus Jun 11, 2026
03be3f1
changes resolved
alfredjimmy-redbus Jun 11, 2026
e08369b
Merge branch 'main' into azure-adk-package
alfredjimmy-redbus Jun 11, 2026
0afcb3f
upgraded sarvam version to match adk parent
alfredjimmy-redbus Jun 11, 2026
1ff4ee6
Merge pull request #163 from alfredjimmy-redbus/azure-adk-package
Sandeep-BA Jun 12, 2026
5cd6f6c
Merge upstream/main and fix conflicts
Sandeep-BA Jun 18, 2026
0ed9932
Merge remote-tracking branch 'origin/main'
Sandeep-BA Jun 18, 2026
a08c433
feat: capture live audio tokens in ChatCompletionsResponse
Sandeep-BA Jun 18, 2026
b48b4fc
Revert "feat: capture live audio tokens in ChatCompletionsResponse"
Sandeep-BA Jun 18, 2026
b29ecc6
Reapply "feat: capture live audio tokens in ChatCompletionsResponse"
Sandeep-BA Jun 18, 2026
d8fe555
test: add tutorials for live audio tokens
Sandeep-BA Jun 18, 2026
3fd7837
chore: add author and date, fix ListModels compilation
Sandeep-BA Jun 18, 2026
9689fd0
feat: add audio token usage parsing for Bedrock, Ollama, and Sarvam m…
Sandeep-BA Jun 18, 2026
ee8c00f
docs: add testing instructions for audio token capture
Sandeep-BA Jun 18, 2026
a400a0b
Merge pull request #167 from redbus-labs/feat/capture-audio-tokens
Sandeep-BA Jun 18, 2026
904bda1
feat: capture audio tokens usage metadata in live models
Sandeep-BA Jun 19, 2026
2eff911
Merge pull request #168 from redbus-labs/feat/capture-audio-tokens
Sandeep-BA Jun 19, 2026
3983c66
test: update LiveAudioTokensTest to use BIDI connection
Sandeep-BA Jun 19, 2026
4d61adf
Merge pull request #169 from redbus-labs/fix/audio-tokens-tutorial
Sandeep-BA Jun 19, 2026
6a53db6
Merge pull request #170 from google/main
Sandeep-BA Jun 20, 2026
3b91253
added flexibility to add any s3 path, store https object url
alfredjimmy-redbus Jun 20, 2026
b41016c
Merge branch 'main' into s3_artifact_service
alfredjimmy-redbus Jun 20, 2026
a2187f8
Merge remote-tracking branch 'upstream/main'
claude Jun 20, 2026
f0a6d52
feat: track token usage for live (BIDI) sessions via plugin callbacks
claude Jun 20, 2026
fb8b5fe
docs: add live BIDI token-tracking harness example
claude Jun 20, 2026
a5a74b6
test: extend live token harness to probe per-turn vs cumulative usage
claude Jun 20, 2026
6ef37cc
fix: sum per-turn token usage instead of keeping latest value
claude Jun 20, 2026
16de494
Merge pull request #171 from alfredjimmy-redbus/s3_artifact_service
Sandeep-BA Jun 22, 2026
1159479
Merge branch 'claude/live-bidi-token-tracking' of https://github.com/…
alfredjimmy-redbus Jun 23, 2026
3d49867
token tracking for bidi
alfredjimmy-redbus Jun 23, 2026
fbb96d5
Merge pull request #172 from google/main
Sandeep-BA Jun 23, 2026
1fa262e
Merge branch 'main' into token_tracking
alfredjimmy-redbus Jun 23, 2026
cfe33b9
added MapDB Support and Ollama basic integration basis https://github…
alfredjimmy-redbus Jun 23, 2026
f8110ec
Merge branch 'temp-br' into token_tracking
alfredjimmy-redbus Jun 23, 2026
35a42f0
Merge branch 'main' of https://github.com/alfredjimmy-redbus/adk-java
alfredjimmy-redbus Jun 23, 2026
797ab08
Merge branch 'main' into token_tracking
alfredjimmy-redbus Jun 23, 2026
3020499
Merge branch 'token_tracking' of https://github.com/alfredjimmy-redbu…
alfredjimmy-redbus Jun 23, 2026
05858db
Merge pull request #175 from google/main
Sandeep-BA Jun 23, 2026
172f747
Merge branch 'main' of https://github.com/alfredjimmy-redbus/adk-java
alfredjimmy-redbus Jun 23, 2026
46a96ea
Merge branch 'main' into token_tracking
alfredjimmy-redbus Jun 23, 2026
bcb703f
removed liveTokenTrackingPlugin since it was folded inside sdk
alfredjimmy-redbus Jun 24, 2026
628dbc2
removed appending events
alfredjimmy-redbus Jun 29, 2026
651e934
readded appending events
alfredjimmy-redbus Jun 29, 2026
6d86a3d
Merge pull request #174 from alfredjimmy-redbus/token_tracking
Sandeep-BA Jul 8, 2026
6bd7af9
fix: replace System.out/err prints with SLF4J logger in OllamaBaseLM
manojkumarredbus Jul 10, 2026
24f992b
Merge pull request #178 from redbus-labs/fix/ollama-replace-sysout-wi…
manojkumarredbus Jul 10, 2026
64e90f6
feat: add getter/setter for numCtx and think in OllamaBaseLM
manojkumarredbus Jul 14, 2026
01b1996
Merge pull request #179 from redbus-labs/fix/ollama-replace-sysout-wi…
manojkumarredbus Jul 14, 2026
48efa0e
Merge upstream main for PR 177 resolution.
Sandeep-BA Jul 15, 2026
ecfa827
Fix dev server wiring and MapDB session lookup
Sandeep-BA Jul 16, 2026
375fc92
Merge origin/main into merge-pr-177
Sandeep-BA Jul 16, 2026
47f79af
Merge pull request #180 from redbus-labs/merge-pr-177
Sandeep-BA Jul 16, 2026
d917e42
feat: add NvidiaBaseLM for NVIDIA NIM API integration
manojkumarredbus Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,10 @@ Thumbs.db
# Local documentation and plans
docs/
plans/

contrib/samples/a2a_basic/bin/
# Sample build artifacts / local scratch
contrib/samples/**/bin/
mkpro_logs.db


87 changes: 87 additions & 0 deletions A2A_SERVICE_ENHANCEMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# A2A Service Enhancements

## Overview

This PR enhances the A2A service with console output, session state initialization, and proper unary RPC response handling. These changes enable better observability and fix issues with session state management.

## Key Changes

### 1. Console Output for Observability

Added console output to track A2A requests and responses:
- `🔵 A2A REQUEST RECEIVED` - Shows session ID, agent name, and query
- `🟢 A2A RESPONSE SENT` - Shows session ID, agent name, response length, and preview

### 2. Session State Initialization

Fixed "Context variable not found" errors by initializing required state variables:
- `currentDate` - Current date
- `sourceCityName`, `destinationCityName`, `dateOfJourney` - Empty strings (populated by agent)
- `mriSessionId` - Session ID
- `userMsg` - User query
- `_temp_a2aCallCount`, `_temp_a2aCalls` - A2A tracking variables

### 3. Response Aggregation

Changed from streaming multiple responses to aggregating all events into a single response:
- Required because `sendMessage` is unary RPC, not streaming
- Uses `toList().blockingGet()` to collect all events before sending
- Ensures single `onNext()` call followed by `onCompleted()`

### 4. Session Management

Changed from `InvocationContext` to explicit `Session` object management:
- Get or create session before agent execution
- Ensures session state is properly initialized
- Prevents state-related errors

### 5. Constructor Fix

Fixed `A2aServer` constructor to accept port parameter directly:
- Avoids `IllegalStateException` when calling `server.getPort()` before server starts
- Updated `A2aServerBuilder` to pass port to constructor
- Updated tests accordingly

## Files Modified

1. **A2aService.java** (+169/-38 lines)
- Added console output
- Added session state initialization
- Changed response handling (streaming → unary)
- Changed session management

2. **A2aServer.java** (+1/-1 lines)
- Added port parameter to constructor

3. **A2aServerBuilder.java** (+1/-1 lines)
- Updated to pass port to constructor

4. **A2aServerTest.java** (+2/-2 lines)
- Updated test constructors to pass port

## Testing

✅ All existing tests pass
✅ Console output validated
✅ Session state initialization prevents errors
✅ Unary RPC response handling works correctly

## Impact

- **Observability**: Console output enables easy debugging and validation
- **Reliability**: Session state initialization prevents runtime errors
- **Compatibility**: Proper unary RPC handling ensures client-server compatibility
- **Backward Compatible**: No breaking changes

## Related Changes

This PR works in conjunction with changes in `rae` repository (`a2a_main` branch):
- Client updated to use correct proto package (`com.google.adk.a2a.grpc`)
- Client changed from streaming to unary RPC
- Agents updated with A2A handover tracking

---

**Author**: Sandeep Belgavi
**Date**: January 18, 2026
**Branch**: `a2a`
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ import com.google.adk.tools.GoogleSearchTool;
LlmAgent rootAgent = LlmAgent.builder()
.name("search_assistant")
.description("An assistant that can search the web.")
.model("gemini-2.0-flash") // Or your preferred models
.model("gemini-2.5-flash") // Or your preferred models
.instruction("You are a helpful assistant. Answer user questions using Google Search when needed.")
.tools(new GoogleSearchTool())
.build();
Expand Down
272 changes: 272 additions & 0 deletions TRANSCRIPTION_CAPABILITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
# Audio Transcription Capability

## Overview

ADK-Java provides an optional audio transcription capability that allows agents to transcribe audio data to text. The feature is designed to be optional, lazily loaded, and configurable via environment variables.

## Features

- **Optional Feature**: Works without configuration, enables when configured
- **Lazy Loading**: Services created only when needed, cached for reuse
- **Multiple Service Support**: Extensible architecture supporting multiple transcription services
- **Async Processing**: Built on RxJava for efficient asynchronous operations
- **Streaming Support**: Supports both batch and streaming transcription
- **Environment Configuration**: All configuration via environment variables (12-Factor App compliant)

## Architecture

The transcription capability follows several design patterns:

- **Strategy Pattern**: Pluggable transcription service implementations
- **Factory Pattern**: Lazy-loaded service creation with caching
- **Builder Pattern**: Flexible configuration management
- **Optional Pattern**: Graceful degradation when not configured

### Package Structure

```
com.google.adk.transcription/
├── ServiceType.java # Service type enumeration
├── AudioFormat.java # Audio format specifications
├── TranscriptionException.java # Custom exception
├── ServiceHealth.java # Health status DTO
├── TranscriptionResult.java # Result DTO
├── TranscriptionEvent.java # Event DTO for streaming
├── TranscriptionService.java # Core interface
├── TranscriptionConfig.java # Configuration class
├── config/
│ └── TranscriptionConfigLoader.java # Environment config loader
├── client/
│ ├── WhisperRequest.java # Request DTO
│ ├── WhisperResponse.java # Response DTO
│ └── WhisperApiClient.java # HTTP client
├── strategy/
│ ├── WhisperTranscriptionService.java # Service implementation
│ └── TranscriptionServiceFactory.java # Factory
└── processor/
└── AudioChunkAggregator.java # Chunk aggregation
```

## Configuration

### Environment Variables

**Required (for transcription to work):**
```bash
ADK_TRANSCRIPTION_ENDPOINT=https://your-transcription-service:port
```

**Optional:**
```bash
# Service type (default: inferred from endpoint)
ADK_TRANSCRIPTION_SERVICE_TYPE=whisper

# API key if required by service
ADK_TRANSCRIPTION_API_KEY=your-api-key

# Language code (default: auto-detect)
ADK_TRANSCRIPTION_LANGUAGE=en

# Timeout in seconds (default: 30)
ADK_TRANSCRIPTION_TIMEOUT_SECONDS=30

# Max retries (default: 3)
ADK_TRANSCRIPTION_MAX_RETRIES=3

# Chunk size in milliseconds for streaming (default: 500)
ADK_TRANSCRIPTION_CHUNK_SIZE_MS=500
```

## Usage

### Basic Usage: Agent Tool

The simplest way to use transcription is through the `TranscriptionTool`, which can be added to any agent:

```java
import com.google.adk.agents.LlmAgent;
import com.google.adk.tools.transcription.TranscriptionTool;
import com.google.adk.tools.FunctionTool;

// Create transcription tool (returns null if not configured)
FunctionTool transcriptionTool = TranscriptionTool.create();

if (transcriptionTool != null) {
LlmAgent agent = LlmAgent.builder()
.name("audio_agent")
.model("gemini-2.5-flash")
.instruction("Analyze audio files. Use transcribe_audio tool when needed.")
.addTool(transcriptionTool)
.build();

// Agent can now automatically call transcribe_audio tool
}
```

### Check Availability

```java
if (TranscriptionTool.isAvailable()) {
// Transcription is configured and available
FunctionTool tool = TranscriptionTool.create();
agent.addTool(tool);
} else {
// Work without transcription
System.out.println("Transcription not configured");
}
```

### Advanced Usage: Direct Service Access

For more control, you can use the transcription service directly:

```java
import com.google.adk.transcription.*;
import com.google.adk.transcription.config.TranscriptionConfigLoader;
import com.google.adk.transcription.strategy.TranscriptionServiceFactory;

// Load configuration from environment
Optional<TranscriptionConfig> config = TranscriptionConfigLoader.loadFromEnvironment();

if (config.isPresent()) {
// Get service (lazy loaded, cached)
TranscriptionService service = TranscriptionServiceFactory.getOrCreate(config.get());

// Synchronous transcription
byte[] audioData = ...; // Your audio bytes
TranscriptionResult result = service.transcribe(audioData, config.get());
System.out.println("Transcribed: " + result.getText());
}
```

### Async Transcription

```java
// Use RxJava Single for async transcription
Single<TranscriptionResult> resultFuture =
service.transcribeAsync(audioData, config.get());

resultFuture.subscribe(
result -> System.out.println("Transcribed: " + result.getText()),
error -> System.err.println("Error: " + error.getMessage())
);
```

### Streaming Transcription

```java
// Stream audio chunks and get transcription events
Flowable<byte[]> audioStream = ...; // Your audio stream
Flowable<TranscriptionEvent> transcriptionEvents =
service.transcribeStream(audioStream, config.get());

transcriptionEvents.subscribe(
event -> {
if (event.isFinished()) {
System.out.println("Final: " + event.getText());
} else {
System.out.println("Partial: " + event.getText());
}
}
);
```

## Tool Function Signature

When used as an agent tool, transcription exposes the following function:

**Function Name:** `transcribe_audio`

**Parameters:**
- `audio_data` (required): Base64-encoded audio data
- `language` (optional): Language code (e.g., "en", "es", "fr")

**Returns:**
```json
{
"text": "Transcribed text",
"language": "en",
"confidence": 0.95,
"duration": 5000
}
```

## Supported Services

Currently implemented:
- **Whisper**: HTTP-based Whisper API integration

Future support planned:
- Gemini Live API
- Azure Speech Services
- AWS Transcribe

## Error Handling

Transcription operations throw `TranscriptionException` for errors. The service includes:
- Retry logic with exponential backoff
- Health check support
- Comprehensive error messages

## Thread Safety

- Service factory uses thread-safe caching
- Services are stateless and thread-safe
- Configuration objects are immutable

## Testing

### Compilation

```bash
mvn compile -DskipTests
```

### Unit Tests

```bash
mvn test -Dtest=TranscriptionConfigTest
```

## Implementation Details

### Service Factory

The `TranscriptionServiceFactory` implements lazy loading:
- Services are created only when first accessed
- Services are cached and reused
- Thread-safe implementation using `ConcurrentHashMap`

### HTTP Client

The Whisper implementation uses OkHttp for HTTP requests:
- Connection pooling
- Configurable timeouts
- Retry logic with exponential backoff
- Health check support

### Audio Processing

- Supports multiple audio formats (PCM, WAV, MP3)
- Configurable sample rates and channels
- Chunk aggregation for efficient streaming

## Limitations

- Live streaming integration (real-time audio) is not yet implemented
- PostgreSQL storage integration is not yet implemented
- Additional service implementations (Gemini, Azure, AWS) are planned

## Future Enhancements

- Real-time streaming handler integration
- Persistent storage for audio and metadata
- Additional transcription service implementations
- Enhanced error handling and retry strategies
- Performance optimizations and caching

## License

Copyright 2025 Google LLC

Licensed under the Apache License, Version 2.0.
Loading