Commit 4e43c28
committed
feat: Add injectable time and UUID providers for custom timestamps and IDs
ADK generates timestamps and IDs by calling Instant.now() and
UUID.randomUUID() directly, leaving callers no way to control them. This
blocks integrations that need to supply their own timestamps and IDs.
adk-python and adk-go already expose an equivalent seam.
Add a leaf com.google.adk.platform package with TimeProvider and
UuidProvider functional interfaces, each with a SYSTEM default that
preserves today's wall-clock/random behavior. Rather than an ambient
ThreadLocal (which would silently fall back to the system providers once
the RxJava flow hops onto a Schedulers worker thread), the providers are
threaded as data through InvocationContext, so they are visible on whatever
thread builds an event. Callers configure them once on the Runner, which
also injects them into the default InMemorySessionService it constructs.
Event ids and timestamps, the invocation id, function-call ids, the event
compaction summarizer, and the InMemorySessionService session id and
lastUpdateTime now derive from the in-scope providers. Event.generateEventId()
and the Event.Builder timestamp default delegate to the SYSTEM providers, so
the platform interfaces are the single source for generated ids and times
while the public Event API stays unchanged.1 parent 4225b07 commit 4e43c28
21 files changed
Lines changed: 648 additions & 46 deletions
File tree
- core/src
- main/java/com/google/adk
- agents
- events
- flows/llmflows
- platform
- runner
- sessions
- summarizer
- test/java/com/google/adk
- agents
- flows/llmflows
- platform
- runner
- sessions
- summarizer
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
422 | | - | |
| 422 | + | |
| 423 | + | |
423 | 424 | | |
424 | 425 | | |
425 | 426 | | |
| |||
436 | 437 | | |
437 | 438 | | |
438 | 439 | | |
439 | | - | |
| 440 | + | |
| 441 | + | |
440 | 442 | | |
441 | 443 | | |
442 | 444 | | |
| |||
Lines changed: 67 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
31 | 33 | | |
| 34 | + | |
32 | 35 | | |
33 | 36 | | |
34 | 37 | | |
35 | | - | |
36 | 38 | | |
37 | 39 | | |
38 | 40 | | |
| |||
55 | 57 | | |
56 | 58 | | |
57 | 59 | | |
| 60 | + | |
| 61 | + | |
58 | 62 | | |
59 | 63 | | |
60 | 64 | | |
| |||
82 | 86 | | |
83 | 87 | | |
84 | 88 | | |
| 89 | + | |
| 90 | + | |
85 | 91 | | |
86 | 92 | | |
87 | 93 | | |
| |||
196 | 202 | | |
197 | 203 | | |
198 | 204 | | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
199 | 225 | | |
200 | 226 | | |
201 | | - | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
202 | 233 | | |
203 | 234 | | |
204 | 235 | | |
| |||
288 | 319 | | |
289 | 320 | | |
290 | 321 | | |
| 322 | + | |
| 323 | + | |
291 | 324 | | |
292 | 325 | | |
293 | 326 | | |
| |||
308 | 341 | | |
309 | 342 | | |
310 | 343 | | |
| 344 | + | |
| 345 | + | |
311 | 346 | | |
312 | 347 | | |
313 | 348 | | |
| |||
501 | 536 | | |
502 | 537 | | |
503 | 538 | | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
504 | 563 | | |
505 | 564 | | |
506 | 565 | | |
| |||
558 | 617 | | |
559 | 618 | | |
560 | 619 | | |
561 | | - | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
562 | 623 | | |
563 | 624 | | |
564 | 625 | | |
| |||
581 | 642 | | |
582 | 643 | | |
583 | 644 | | |
584 | | - | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
585 | 648 | | |
586 | 649 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
| 27 | + | |
26 | 28 | | |
27 | 29 | | |
28 | 30 | | |
| |||
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
37 | | - | |
38 | 39 | | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
42 | | - | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| |||
74 | 74 | | |
75 | 75 | | |
76 | 76 | | |
77 | | - | |
| 77 | + | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| |||
587 | 587 | | |
588 | 588 | | |
589 | 589 | | |
590 | | - | |
| 590 | + | |
591 | 591 | | |
592 | 592 | | |
593 | 593 | | |
| |||
Lines changed: 12 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
451 | 451 | | |
452 | 452 | | |
453 | 453 | | |
454 | | - | |
| 454 | + | |
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
| |||
466 | 466 | | |
467 | 467 | | |
468 | 468 | | |
469 | | - | |
| 469 | + | |
470 | 470 | | |
471 | 471 | | |
472 | 472 | | |
473 | 473 | | |
474 | 474 | | |
475 | 475 | | |
476 | 476 | | |
477 | | - | |
| 477 | + | |
478 | 478 | | |
479 | 479 | | |
480 | 480 | | |
| |||
575 | 575 | | |
576 | 576 | | |
577 | 577 | | |
578 | | - | |
| 578 | + | |
579 | 579 | | |
580 | 580 | | |
581 | 581 | | |
| |||
667 | 667 | | |
668 | 668 | | |
669 | 669 | | |
670 | | - | |
| 670 | + | |
671 | 671 | | |
672 | 672 | | |
673 | 673 | | |
| |||
750 | 750 | | |
751 | 751 | | |
752 | 752 | | |
753 | | - | |
| 753 | + | |
754 | 754 | | |
755 | 755 | | |
756 | 756 | | |
| |||
796 | 796 | | |
797 | 797 | | |
798 | 798 | | |
799 | | - | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
800 | 803 | | |
801 | 804 | | |
| 805 | + | |
802 | 806 | | |
803 | 807 | | |
804 | 808 | | |
| |||
818 | 822 | | |
819 | 823 | | |
820 | 824 | | |
821 | | - | |
| 825 | + | |
822 | 826 | | |
823 | 827 | | |
824 | 828 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| 229 | + | |
| 230 | + | |
229 | 231 | | |
230 | 232 | | |
231 | 233 | | |
| |||
307 | 309 | | |
308 | 310 | | |
309 | 311 | | |
| 312 | + | |
| 313 | + | |
310 | 314 | | |
311 | 315 | | |
312 | 316 | | |
| |||
456 | 460 | | |
457 | 461 | | |
458 | 462 | | |
| 463 | + | |
| 464 | + | |
459 | 465 | | |
460 | 466 | | |
461 | 467 | | |
| |||
0 commit comments