@assistant-ui/react-google-adk#
0.0.40#
Patch Changes#
- #9449
e21ce83- adapters may omit unarchive; archived threads then open without unarchiving and explicit unarchive rejects. the OpenCode adapter omits it because OpenCode cannot unarchive a session. (@okisdev) - Updated dependencies [
69bf91a,ed0d969,1a3359e,2dc72a8,32869e0,6966821,118dedb,79e10db,32a1b79,d7fb0ee,545836d,e21ce83,ca0a1be,d420f42,9f673a3,ab3454d,e99250f,1808265,506aba9,2d17e77,45e3d22,a587b28,50fb79b,e6cace0,54e2e9b,be30245,727a02d,0c049eb]:- @assistant-ui/core@0.3.30
- @assistant-ui/store@0.3.22
- assistant-stream@0.3.53
0.0.39#
Patch Changes#
-
#9760
57c3766- Stopping an edit or reload, or superseding it with a new send, before its run produces its first event restores the turn it truncated, as a failure before the first event already does. (@okisdev) -
#9757
2bdd534- A new turn split into one request per producing run is sent in order and stops at a failure or Stop: unsent tool replies stay held for the next turn and the typed message goes back to the composer. (@okisdev) -
#9774
cb8d39d- A message keeps the same id while it streams, across continuation runs, and after the session reloads. Assistant message ids follow the ADK invocation, so assistant messages loaded from an existing session get new ids once. A user message keeps the id it was sent with when the server stores the run's custom metadata. (@okisdev) -
#9769
cd5fd6c- A tool-call part carriesresponseDeliveryStatus: "queued"while the runtime holds its reply and has not sent it. The ADK runtime sets it on interrupt replies and tool answers held for the next turn, and LangGraph sets it on buffered tool replies, so the tool UI no longer shows them as sent. (@okisdev) -
Updated dependencies [
b78a043,fe13206,8289dd1,e09563a,b88d62d,5588bfb,d6e8a0c,fe7179d,c71326f,55d065c,61aaccf,43c9c7c,75abfbe,12dfc85,1091bbc,01225b9,d2f04ca,6537c5f,2217804,7ba7c54,cd5fd6c,5197671,04c5d36]:- @assistant-ui/core@0.3.29
- assistant-stream@0.3.52
- @assistant-ui/store@0.3.21
0.0.38#
Patch Changes#
-
#9347
d6b517e- Preserve queued ADK sends and keep each config group's tool results with its run. (@rupic-app) -
#9339
6eea090- fix: ignore the first SSE field when a stream starts with two byte order marks, as required by the event stream spec (@rupic-app) -
#9369
dbc3e8d- fix(react-google-adk): remove the optimistic user message when its request fails before the first event (@rupic-app) -
#9445
9ef93fb- fix(react-google-adk): keep a held reply when a chained edit fails before its first event (@okisdev) -
#9409
d8dd858- fix(react-google-adk): hold HITL replies and addToolResult answers until no run is active, including unrelated runs; answered confirmations and auth requests leave useAdkToolConfirmations and useAdkAuthRequests while held (@okisdev) -
#9371
9e7d201- fix(react-google-adk): send attachment names to ADK and restore them when a session loads (@rupic-app) -
#9429
6a78dcb- fix(react-google-adk): restore the right thread when a chained or same-tick edit, reload or resend fails before its first event (@okisdev) -
#9425
2cdb01d- fix(react-google-adk): keep tool-result batches scoped to their producing run (@rupic-app) -
#9388
717a22d- fix(react-google-adk): restore the thread when an edit or reload fails before its first event or Stop interrupts its checkpoint lookup (@rupic-app) -
Updated dependencies [
1f77925,a12da09,dbfdd0a,140988a,f2963d3,7745f91,2bf54c5,1fb6eb0,8cb0b97,6c7c7b2,de2f5a9,c31385e,d02fac2,05462a5,2627294,fdbf0a2,7bff761,7139acd,2091bcf,7f3d804]:- @assistant-ui/core@0.3.28
- @assistant-ui/store@0.3.20
- assistant-stream@0.3.51
0.0.37#
Patch Changes#
-
#9309
7ffc10c- fix(react-google-adk): send the answers to one run's long-running tool calls in one request once that run ends, instead of letting a later answer abort an earlier one; answers still held when the run is cancelled or the thread reloads are dropped, andonErrorandonCustomEventnow also fire for snake_case events (@okisdev) -
#9335
2580dd6- fix(react-google-adk): send messages, tool answers and HITL replies made in the same tick in one request, or in order when their configs differ, instead of letting the later send abort the earlier one before its request leaves (@okisdev) -
Updated dependencies [
c157aee,2c1963a,efbf028,8b49f28,4e86339]:- @assistant-ui/core@0.3.27
- assistant-stream@0.3.50
0.0.36#
Patch Changes#
-
#8283
36cbfa2- fix(react-google-adk): stop the active run when a message is edited or reloaded, and show the edited message and report the thread running while the checkpoint is looked up; Stop during a reload's checkpoint lookup puts the previous answer back (@samdickson22) -
#8739
5fe0580- fix: keep client ADK requests from overriding server run controls and shared state, withresolveRunConfigandresolveStateDeltafor validated opt-in values (@Kinfe123) -
#8738
91ce9b7- fix: preserve isolated ADK session identities through proxy routes and create missing runner sessions before their first run (@Kinfe123) -
#9126
3c82807- refactor(react-google-adk): hold staged messages in the thread controller (@okisdev) -
#8893
deed883- hold ADK thread state in one controller with a pure reducer instead of nine mirrored React states (@okisdev) -
#7275
d19b547- fix: isolate Cloud attachment URLs and message mappings by account or workspace scope. (@Kinfe123) -
#9173
40da737- refactor: fence late run work with one RunLeases primitive instead of per-adapter counters (@okisdev) -
#9082
ae487aa- feat: mark every experimental API@deprecated Experimental since <date>, so editors strike it through as experimental rather than scheduled for removal;@typescript-eslint/no-deprecatedreports these APIs too (@okisdev) -
#7673
f6d1489- fix: let cancellation interrupt asynchronous request preparation, keep later resolver failures out ofonError, and reuse the shared abort-race behavior in the A2A and Google ADK adapters (@Kinfe123) -
#7221
a6ca3f9- fix: parse base64 data URLs without a media type across core converters, Google ADK, A2A, and AG-UI, defaulting them toapplication/octet-streamand keepingtext/plainfor media-less percent-encoded data URLs. Outgoing base64 URL envelopes without a type are stamped with the same default so downstream adapters do not receive an empty media type. Media-less image URLs continue to use image sniffing before reaching AG-UI. (@Kinfe123) -
#8303
6881c27- Wait for initial history to load before sending new turns. (@rupic-app) -
#8737
081a239- fix: bound retained input in shared line and SSE decoders, with configurable line and event limits across streaming clients (@Kinfe123) -
#8987
42701b6- restore the answer a reload replaced when its checkpoint lookup fails (@rupic-app) -
Updated dependencies [
3ad209c,fc73a27,5a67c85,e45b97b,c2b93b1,9201447,7e78ca4,2e5432f,840ac3a,20f0e5b,14ceafa,3baba6f,7855706,d40092c,a32e7a8,1002313,606bc2d,7886e77,34fa2b6,d19b547,3926f8f,c5a635a,4fbf441,dc72a0e,be19872,40da737,2252059,2abd1e0,2ed2043,987ffe1,3ffa474,5bb65a3,836432d,93d04cb,ae487aa,59d42c1,ca4ec1f,184b083,8a21038,7321036,bf65f81,4d5070d,3ef6e7c,9125e30,4ac25b9,23a4677,7aa5bdd,afe32c6,01ac83d,30c2480,ef5a1e2,5a09ea3,b578c02,4709edf,820ab5f,63df0e4,2307752,5bd5de3,b03f90e,8c32dea,0a3ca24,f6d1489,b4b56fe,a6ca3f9,7f7d512,0d74a05,1cabbbd,9121416,429a26d,2356e80,194c0e2,fae89b1,708bf2c,4b44723,92e7ab1,a1caaa8,ee517fb,7842639,116424f,399621e,79867bd,f306b40,081a239,542d871,0967886,e7534a2,361d590,c04f09d,efb83eb,1cd8911,79e9a5a,9aff121,0d72f48,e79cdd4,01b5e06,06c3fef,41344cb,cebaed5,2a1a788,e8620c1,b9a5d38,3b7b337,cb20f13,1d550c0,9dfd037,ef87d70,4f2ad45,dc72a0e,df2ab0a,8831c76,2d37f82,2bc6e49,b257f49,7a3e496]:- @assistant-ui/store@0.3.18
- @assistant-ui/core@0.3.25
- assistant-cloud@0.2.6
- assistant-stream@0.3.49
0.0.35#
Patch Changes#
- #7372
7c087b0- fix: preserve run configuration when ADK tool results resume a turn (@Kinfe123) - Updated dependencies [
c883dc0,fd444e4,64277e2,791d240,ed84b12,2bc1edb,0284a07,5484ca4,ec48da2,46133cd,3effee5,451a76c,16439da,1f77d04,aecb5eb,77a98c1]:- @assistant-ui/core@0.3.24
- assistant-stream@0.3.48
0.0.34#
Patch Changes#
-
#8143
e62ec7a- fix: skip ADK messages, tool calls, and media parts that are missing required fields instead of crashing the thread or rendering broken images and files (@samdickson22) -
#8257
5b14a1c- fix: skip null tool call entries when projecting approvals, collecting confirmation and credential requests, cancelling pending calls, and sending messages (@samdickson22) -
#8702
351b8cd- fix: the remaining runtime hooks keep their thread loads, runs, queued messages, subagent transcripts and event streams across a fast refresh or a StrictMode replay instead of tearing them down (@okisdev) -
#8662
4bc3ca1- Mark unfinished assistant messages as cancelled when an ADK run is stopped, including finalized tool-call and long-running tool messages. (@eito-katagiri-LITALICO)Clear pending long-running tool IDs introduced by the stopped run while retaining unanswered interrupts inherited from earlier turns.
-
Updated dependencies [
f7eae39,63233dc,241b5f1,5b65868,6b7df95,098c140,351b8cd,d33ad09,4290eac]:- @assistant-ui/core@0.3.23
- assistant-stream@0.3.47
- assistant-cloud@0.2.5
- @assistant-ui/store@0.3.17
0.0.33#
Patch Changes#
-
#8393
6943ff6- fix: preserve activity message text during ADK conversion (@Kinfe123) -
#8382
b62ae1f- fix: report repeated agent transfers from separate runs (@Kinfe123) -
#8518
e73db99- fix: runtime hooks keep their clients, runs, streams, queued sends and pending history copies across a fast refresh or a StrictMode replay instead of rebuilding or tearing them down (@okisdev) -
Updated dependencies [
2e066e2,f77dbea,98f3dbd,7a41e54,f054d07,b1a3211,ce5b7ed,d7d3d2e,bb6122a,cec9fd4,ac91c4c,f0a0488,c66cc10,c978a22,038cd9f,fa460c6,5df393f,9eba158,e72ac92,1e9493f,f6374de,cf19d4b,d7d3d2e,e79b815,1b49876,e971918,73c7de7,fda7946,a5208c1,2b6597a,e73db99,a4f6ce9,c980b36,fd28612,9946dc1,3e33ac2]:- @assistant-ui/store@0.3.16
- @assistant-ui/core@0.3.22
- assistant-stream@0.3.46
- assistant-cloud@0.2.4
0.0.32#
Patch Changes#
-
#7845
a31c760- fix:useAdkSubmitAuthanswers the pendingadk_request_credentialcall with its auth config carrying the credential asexchangedAuthCredential, the reply ADK resumes the tool on; an id that is not a pending request throws (@okisdev) -
#7900
ad0b87f- fix: skip malformed ADK message content instead of throwing (@Kinfe123) -
#7376
a4a6c50- fix: respect response backpressure when streaming ADK events to slow readers. (@Kinfe123) -
#7769
0ad784f- fix: keep a tool call's pending approval or interrupt actionable when the call already carries a result, so a question raised by a tool that streamed output first (react-pi partial results) still renders its controls instead of reading as complete (@okisdev) -
#7695
4da2cad- fix: report an explicit error when an ADK event stream has no body (@Kinfe123) -
#7798
56479fc- fix: allow cancellation while dynamic request headers are resolving (@Kinfe123) -
Updated dependencies [
b4f5153,aa83d87,d096801,9b902fa,aa0f338,d8394bc,63f3236,6b93933,eb034f6,5a8ff94,2e3fd9e,9f286dc,920422c,02043de,9cb7aa4,40ba7f0,967de5d,b649669,0ce62a8,5d33fca,92d16d7,a88fa97,96e11d9,3af3b61,e8fac8d,d403574,f71c285,0ad784f,bbd01b5,84e0cf4,fc3aa3e,9eafe31,d97af06,e0b7805,1c58865,9619b42,5496fce,f04c7f0,a4a2739,fdf5706,443b0a5,178e340,1afdc46,dea2462,c45ae5a,7face86,0a9ed7b,6407760,4bed51f,819c065,21f8bdf,8e1508a,e9c1ccd,4928364,5c5eb45,11f9648,c5b5d3a,7725cbd,777df32,dcd43fd,a486a13,0ee58d8,0252c69,75bd488,7260270,0cfd31e,c2e125e,662b607,f270950,84cdbb0,92e991a,534e11f,9da3697,e046327,2caacad,e525f14,c171588,a5c9c5a,4b069f9,d9e4086,89c0f55,c51ba8f,e6aa5df]:- @assistant-ui/core@0.3.21
- assistant-cloud@0.2.3
- assistant-stream@0.3.45
- @assistant-ui/store@0.3.15
0.0.31#
Patch Changes#
-
#7505
570a0d3- fix: give a function call that arrives withoutargsan empty args object, so an args-less call no longer renders as a tool call with undefinedargsandargsText(@Kinfe123) -
#7668
23308d1- fix: list only unanswered requests inuseAdkToolConfirmations,useAdkAuthRequestsand session snapshots, derived from theadk_request_confirmationandadk_request_credentialcalls in the thread, so a session load no longer lists settled requests, a later send no longer drops unanswered ones, and a confirmation no longer appears twice. an auth request'stoolCallIdis now the id of itsadk_request_credentialcall, the only id ADK accepts a credential reply on (it was the gated tool call's id with ADK JS), andauthConfigis also read from camelCase args. (@okisdev) -
#7453
358c834- fix: stopartifacts.loadfrom rejectingfileDataartifacts and snake_case artifact responses (@rupic-app) -
#7441
0f4f1e0- fix: skip media parts missingmimeType,data, orfileUriinstead of failing the session load or rendering them with an undefined source (@rupic-app) -
Updated dependencies [
43b587d,5428610,562e495,ddb7201,69c3d0f,c046153,4788b61,99c9988,37a5a95,2caa1ce,bd77c46,4e08ba6,b7f9a96,50d65c0,11969a2,408d5f4,bc84250,f513bc7,b712ee8,e02bf06,5c55222,479d6a3,44248e0,70b633f]:- @assistant-ui/core@0.3.20
- assistant-stream@0.3.44
- assistant-cloud@0.2.2
- @assistant-ui/store@0.3.14
0.0.30#
Patch Changes#
-
#7382
9754825- fix: normalize nested snake_case media fields in ADK streams and session history. (@Kinfe123) -
#7381
c3cfdaf- fix: preserve failed tool result status in ADK requests, optimistic messages, and session history. (@Kinfe123) -
#7341
aa97388- fix: wrap scalar tool results in ADK function response objects (@Kinfe123) -
#7401
622f6a3- fix: drop long-running tool calls the client already answered fromuseAdkLongRunningToolIdsand session snapshots (@rupic-app) -
#7423
5ed8c89- fix: keep unanswered long-running tool calls inuseAdkLongRunningToolIdsacross sends, so answering one gate no longer lets the next text message auto-cancel the others.AdkEventAccumulatortakes the pending ids to seed as an optional second constructor argument. (@rupic-app) -
#7236
063b9ec- feat: register the package as an integration on theassistant-cloudclient so the cloud can tell which packages talk to a project (@okisdev) -
#7339
7af9101- fix: send data URL image attachments as inline ADK data and resolve wildcard image types (@Kinfe123) -
Updated dependencies [
628df88,ed77e95,00cff0b,b821506,79c2219,f0bbcec,c41d93a,4cc817d,4619335,4e5fde6,e54bf9a,e54bf9a,c083236,3cd7700,617bbf9,5fb3235,83ede73,49ee689,49ee689,a8e0ff7,050d915,d49ff90,e7bdef5,69cbf47,37bd676,be818db,ff1c692,b4b0081,6b29e7d,de6d6b7,f6f52cd,ab97a41,790217b,8530b17,063b9ec,063b9ec,2c22f5d,d7aa090,dacfcec,7af9101,63ae5b8,97bd4b3,c0d6150,275eeb9,e57c33f,e63d2e4,75b3bd3,f03be0c,06bdf1f,e533f6b,28691a5,3cfddfd,f6b7ba9]:- assistant-stream@0.3.43
- @assistant-ui/core@0.3.19
- assistant-cloud@0.2.1
0.0.29#
Patch Changes#
-
#6933
931b808- fix: abort superseded Google ADK streams even when interactive cancellation is disabled. (@Kinfe123) -
#7160
5489abc- fix: preserve prototype-named session and artifact delta keys (@Kinfe123) -
#6997
9e92184- fix: preserve prototype-named ADK state keys and stabilize namespaced state hooks (@Kinfe123) -
#7162
bc30174- fix(react-google-adk): validate event content parts (@Kinfe123) -
#6836
2f808d3- fix: ignore events, errors, and cleanup from superseded Google ADK runs (@Kinfe123) -
Updated dependencies [
a360dda,931b808,57ce984,0ab9b12,3bcd6db,93d1526,0b1c5a1,7f6e012,4767a92,c9e03ef,71cc3ff,b8c5e68,24a288e,91689ab,a16b990,571cd7c,96f011a,f044254,a19db37,18c12e6,253c80d,0d09f05,e6158c8,623d5ff,ddb7503,73b24d5,71c5416,07eeb54,2c1e65e,d4fbb2a,a9efcfa,12c5447,6c85699,9b9d5e9,4802e15,071a879,0529e2d,27a3442,d777777,5630967,40f0978,ce22d18,928c580,9a882be,afac9e0,4cdcabb,73a1e76,5febc06,56f13b5,23d2865,08088b4,b505555,7ea4669,b2d12e7,01fdd4b,59a8251,a05828f,ef584ea,84b6ae2,6f0d7af,441168d,f756047,306bed1,1f80dd0]:- @assistant-ui/core@0.3.18
- assistant-stream@0.3.42
- assistant-cloud@0.2.0
- @assistant-ui/store@0.3.13
0.0.28#
Patch Changes#
-
#6705
bc75ef5- fix: scope adapter refs to committed renders (@Kinfe123) -
#6678
740a573- fix: never execute a frontend tool on a tool call ADK resolves itself; a client-executed tool must be registered as aLongRunningFunctionToolon the agent (@okisdev) -
Updated dependencies [
8cc962e,2a31285,205acf5,740a573,65d449b,79283c5,9ec29e1,14fc938,3f7af8b,46fad14,5511057,dc2cab3,d75944b,99fd86e,6bd1570,7f7bd54,60ae973,9f08bdc,0fb5390,dc2cab3,f0d0aa2,1fa3e09,5972a5e,0f17ba5,152a35d,0c5c574,ddaac94,0c68179,250f69c,c22a3dc,aca6e30,5bdd416,6fdfc23,136bbf5,e53299b,69d8e1b,dabe8f2,8d128af,9f08bdc,47a46db,8135d16,07fed43,fa9c0dc,fa9c0dc,4ca7de9,65d449b,49e727b,49e727b,d9eae73,d56a66a,96a2df8,8206d8f]:- @assistant-ui/core@0.3.17
- assistant-stream@0.3.41
- assistant-cloud@0.1.43
- @assistant-ui/store@0.3.12
0.0.27#
Patch Changes#
-
#6412
0c04eda- refactor: move the pure adk helpers to the converter seam. (@okisdev) -
#6221
31a049f- fix: keep every text and reasoning part of a multi-part ADK event (@Kinfe123) -
#6342
e2f526c- refactor: generate ids with core generateId and drop the uuid dependency. (@okisdev) -
#6329
8217a6e- refactor: derive executing-tool running state inside the external-store runtime; adapters now pass raw provider isRunning. (@okisdev)
the assistant transport runtime enables tool invocations too, so it now keeps the thread running while a client tool executes instead of reporting idle. -
#6439
7e03b66- refactor: share the file part source resolution branch (@okisdev) -
#6328
6b797ca- refactor: share the runtime lifecycle callback invoker from core internal. (@okisdev)
callback errors continue to be reported and swallowed through the shared invoker. -
#6409
027f5e2- refactor: share the pending tool-call scan, abortable thread load, and cloud create fallback via core. (@okisdev) -
Updated dependencies [
c70c911,e0fa1e6,b2f148e,9dabbce,0f0ebb6,5a3e9f7,d24bcb2,7adf047,43d52ad,cdfc34d,8626c1f,4000eed,8217a6e,3fcf338,4802d23,c3fd2b3,231d148,7e03b66,1743d19,1263c1f,465a7a6,531f61a,5355528,e97f7c6,a6d2da5,6b797ca,bea47ed,dfaa94f,a4bc54a,546dae8,a06be56,96d4ddf,fd471e9,c8db434,bc55058,0221348,c415384,5bba723,0188899,ac7ec15,e96d3de,027f5e2,ebabca4,f96e22f,fc7f72f,bfc8bef,2cd5cbc,105af3e,4c3194a,0064d1e]:- @assistant-ui/core@0.3.16
- assistant-cloud@0.1.42
- assistant-stream@0.3.40
- @assistant-ui/store@0.3.11
0.0.26#
Patch Changes#
-
#5901
4390880- fix: answer ADK tool confirmations through the core tool-approval seam instead of writing a fabricated tool result, and replay client-supplied tool results when a thread is reloaded (@samdickson22)A confirmation is now decided through
onRespondToToolApproval, and both the syntheticadk_request_confirmationcall and the call it gates carry that one approval, so answering either replies to the gate ADK resumes on.Loading a thread also replays the tool results the client supplied — confirmation replies,
useAdkSubmitInputanswers,useAdkSubmitAuthcredentials, andonAddToolResultresults. These were previously dropped on reload, so their tool calls came back result-less and re-rendered asrequires-action. -
#5853
8169942- fix: validate Google ADK proxy request payloads (@Kinfe123) -
#6028
9f2427a- fix: validate events loaded from Google ADK session history (@Kinfe123) -
#5853
8169942- fix: validate Google ADK stream event payloads (@Kinfe123) -
#6000
6467817- fix(react-google-adk): cancel active streams on runtime teardown (@Kinfe123) -
Updated dependencies [
ac0c836,c3fd447,f9529bf,f9529bf,bd01e8b,05b94bd,cef671d,ef7f70d,4a2a76f,04e967c,39db2ff,0e91e27,c5bc8ed,a2a753b,2b0fec7,bec0753,4326079,3d68b16,98795aa,9d920cc,1b9c33d,d68918e,74dca03,87bf950,5a01343,0f6e9e9,f0d1d48,b80a6be,01580e3,ab7f49f,e8c53e9,53ae80f,5f4dee5,d79b87d,645c56b,61d29f4,2da61a3,0131fc7,a934d03,b6d7b2b,bc337af,dc6eb2f,ce57458,ab7ead9,067ef52,f44163f,e5bf0ef,a2ab997,fc9dd90,0e2a230,d800f8b,f5b39d4,26f40c1,f618ab6,d80e988,7f944be,f37f595,74dca03,1b9c33d,82e2bde,52df42d,6c9e7dd,837ef1b,7748e15,72705c3,0d2e23f,4446d45,e8997d9,bfe47b6,ceb8c16,61d29f4,7ea9de1,72a6272,51886b2,3053195,44e574f,14c3b5a]:- @assistant-ui/core@0.3.14
- @assistant-ui/store@0.3.10
- assistant-cloud@0.1.41
- assistant-stream@0.3.38
0.0.25#
Patch Changes#
-
#5730
6c9560d- chore: drop dependencies that are never imported (@okisdev) -
Updated dependencies [
f551562,dc7b77d,0ae51a8,d1b7097,e319574]:- @assistant-ui/core@0.3.11
- assistant-stream@0.3.37
0.0.24#
Patch Changes#
-
Updated dependencies [
94dc3e5,ab57969]:- assistant-stream@0.3.36
- assistant-cloud@0.1.39
- @assistant-ui/core@0.3.10
- @assistant-ui/store@0.3.8
0.0.23#
Patch Changes#
-
#5663
1c71617- fix: isolate runtime event callback failures from ADK streams (@Kinfe123) -
Updated dependencies [
bd4c0ad,4aa1b1d,bd4c0ad]:- @assistant-ui/core@0.3.7
- @assistant-ui/store@0.3.5
0.0.22#
Patch Changes#
-
#5598
91b3a66- fix: keep ADK stream error events reliable when error callbacks fail (@Kinfe123) -
Updated dependencies [
dcacd9b,d52928d,d8a59ad,e70da91,aac3a8c,aa302ee,aa302ee,34cec64]:- @assistant-ui/store@0.3.4
- @assistant-ui/core@0.3.6
- assistant-stream@0.3.34
0.0.21#
Patch Changes#
-
#5456
ee2189f- fix: stop mangling file parts that carry an audio mime type (@okisdev)Outbound, the
filebranch forwardeddataverbatim into GeminiinlineData.data, which takes bare base64, while theaudiobranch stripped the data URL envelope first. Afilepart carrying a data URL therefore shippeddata:audio/wav;base64,...as the payload. Both branches now strip it.The
filebranch also now infers a url source from an unmarkedhttp(s)payload, matching the four sibling converters; previously only an explicitsourceType: "url"took that leg, so a plain URL was sent as if it were base64.Inbound, a user-role
filepart with no filename and a mime type of exactlyaudio/mp3oraudio/wavwas reclassified into the deprecatedUnstable_AudioMessagePart, so a caller following thefileplusaudio/*convention got a different part type back than it sent. File parts now stay file parts, which also means an audio file part on an assistant message survives instead of being dropped. -
#5445
2fdff87- feat: honor sourceType "url" in a2a, ag-ui, and adk file converters (@ShobhitPatra) -
#5545
e466edc- feat:threads.reloadMainThread()refetches an ADK session in place (@okisdev)The ADK runtime never registered
onRefetchThread, soreloadMainThread()fell back to remounting the runtime hook and discarded unsent composer input. It now refetches in place, matchingreact-langgraph: the runtime is reused, the draft survives, and messages stay rendered while the fresh session loads.loadgains a second argument carrying an abort signal, and returns the per-turn state the session events imply alongside the messages, so a refetch swaps the thread over in one commit instead of blanking a tool confirmation before the replacement arrives. Both are additive; aloadthat ignores the argument and returns only{ messages }behaves as before.Where this diverges from
react-langgraph, and why: a refetch that lands while a run is in flight, or after one has touched the thread, defers to the run rather than merging into it. Langgraph reconciles the two by message id, which relies on the server preserving the id the client sent. ADK assigns its own event ids, so an optimistic message cannot be correlated with the one the session stored for it, and a merge would duplicate it. -
#5544
5eac1d6- fix: a message keeps its id when its event is replayed (@okisdev)AdkEventAccumulatorminted assistant and tool message ids withuuidv4()on every pass, so replaying a stored event through a fresh accumulator produced different ids each time. A session load does exactly that, which churned those ids on every load: React remounted the message subtrees, andmessageMetadataMapentries (grounding, citation, usage) keyed on the old id were orphaned. Human messages already derived theirs from the event id.Both now derive from the event that carries them, and keep the bare event id free for the human message that has always used it: a tool message by the index of its part, an assistant message by how many that event has already opened. An event with no id of its own still gets a generated one, since it has never been through the session and has nothing stable to derive from.
This is about replaying one stored event; a message the client sent optimistically still carries a different id from the one the session assigns it.
-
Updated dependencies [
b19c2f5,01140bd,8c99934,ece5a54,2fdff87,90b3003,4c313cf,55b2824,22b05a4,f913c21,c868710,011e275,da32fe0,f913c21,5bb2573,5ececc1]:- @assistant-ui/core@0.3.4
- assistant-stream@0.3.32
- @assistant-ui/store@0.3.3
0.0.20#
Patch Changes#
-
#5329
f30b54c- refactor: move createRuntimeExtras to the @assistant-ui/core/react entry and drop the internal re-export (@okisdev) -
#5315
676c751- fix: forward audio message parts and skip data parts instead of dropping or throwing (@ShobhitPatra) -
#5374
d486ffc- fix: cancel Google ADK streams when iteration stops early (@Kinfe123) -
Updated dependencies [
d2e7a4a,ecd7c87,2daf2d5,a5bdbed,fb993c3,3ae058c,f30b54c,936c52c,ee87dd9,e41734c,1c5266c,cdcdbd0,42dbc69,25f1e4f,d16e62d,60d049e,8643393,2eca438,23ee5db]:- @assistant-ui/store@0.3.2
- @assistant-ui/core@0.3.2
- assistant-stream@0.3.31
0.0.19#
Patch Changes#
-
#5285
d72c2b6- refactor: migrate to aui property accessors (@Yonom) -
Updated dependencies [
9a7e776,ae5f831,a196711,f78e579,dcc41bb,2f5d0d4]:- @assistant-ui/store@0.3.0
- @assistant-ui/core@0.3.0
- assistant-stream@0.3.29
0.0.18#
Patch Changes#
-
#5011
c430f19- fix: reject incomplete direct stream options (@Kinfe123) -
#5032
6153ff8- fix: validate session API response shapes (@Kinfe123) -
#5031
5bf7cbf- fix: validate event stream response content types (@Kinfe123) -
#5092
e18eb87- fix: validate Google ADK artifact API responses (@Kinfe123) -
Updated dependencies [
8630186,908ec91,0d0834d,3355098,3f90440,79034bb,7207b19,446a118,a081656,25a5be0,b17d392,20643e2,47562fd,ccebbf9,85d7c25,23a9925,7fde141,afacb10,af6c945,33924df,19cfdcd,044def8,039b75f,5e4dd9f,5da0d93,85d4976,5135400,fc6b4ad,121ee83,2b2587a,ca80153,e4ce1a2,f2f5e83,ec8ee6a,9a343db,666aaab,c1b1750,f263c9e,475fca3,8faad07,61518b9,5412099,1eb7275,c47bdf4,ba948d8,de54334,44aac58,9402648,4651ea5,2f69f68,390e417,2bc6798]:- assistant-stream@0.3.27
- @assistant-ui/core@0.2.22
- assistant-cloud@0.1.36
- @assistant-ui/store@0.2.21
0.0.17#
Patch Changes#
-
#4743
f597f06- fix: clarify invalid ADK proxy request body errors (@Kinfe123) -
#4880
d6c7571- refactor: consume the shared SSE event decoder (@okisdev) -
#4821
e5cce02- fix: parse standard SSE frames in Google ADK streams (@Kinfe123) -
#4964
3a63eaf- fix: normalize direct ADK stream API URLs (@Kinfe123) -
#4893
c7d6b23- fix: normalize trailing slashes in ADK session API URLs (@Kinfe123) -
#4957
65ba32a- fix: complete unsupported title generation streams (@Kinfe123) -
Updated dependencies [
43b8ce8,1e926b6,d6c7571,4d7a447,ca751f4,2aca5e0,908af6d,0ea628f,1b46551,7865f67,7cf5acc,7a85307,438ecd3,e4da8c5,5a34e8c,5dbbac4,d3bd0ed,84e8ddf,8282269,03ffe44,38bf104,19b2a00,77c7b26,026a7ae,160b0af,c814c9c,6be3b67,c590a21,0686f4e,a84cf6d,9f99c46,c2d2271,e3aba86,25f9eb2,84e8ddf,d03e5cf,ef81c86,5ade3a5,1f284ac,65ba32a,5325f09]:- assistant-stream@0.3.26
- @assistant-ui/core@0.2.21
- assistant-cloud@0.1.35
- @assistant-ui/store@0.2.20
0.0.16#
Patch Changes#
-
#4515
f5e94b7- feat: forwardonThreadIdChangethrough the adapter entry hooks (useLangGraphRuntime,useStreamRuntime,useChatRuntime,useAdkRuntime,useOpenCodeRuntime,usePiRuntime). the option already existed onuseRemoteThreadListRuntimebut every wrapper dropped it, so routing/persistence built on the settled remote thread id never fired from these hooks. only the settled remote id is emitted; the transient__LOCALID_*placeholder is never surfaced. (@okisdev) -
#4475
4b22e39- refactor: adopt the shared createRuntimeExtras helper and move the extras type into types.ts, with no public API or behavior change (@okisdev) -
#4591
f582f09- feat: honor startRun false across staged-message-capable runtimes (@Yonom) -
Updated dependencies [
ddc40b7,ea52de0,29c6fdb,d0987a3,cefcf27,0c51b90,3a8f685,ec6adf4,4acd4c0]:- @assistant-ui/core@0.2.19
- assistant-stream@0.3.24
- assistant-cloud@0.1.34
- @assistant-ui/store@0.2.19
0.0.15#
Patch Changes#
-
Updated dependencies [
2a84174,a0a0769,19c5b5f,dbdfb15,ca191dc,15878d8,44ff4bf,01cf957,26a365b]:- @assistant-ui/core@0.2.11
- assistant-stream@0.3.21
- assistant-cloud@0.1.32
- @assistant-ui/store@0.2.14
0.0.14#
Patch Changes#
-
Updated dependencies [
cba2b42,4145caa,58f80e0,78ff336,5fe118d,dcd5897,0558db2,69540af,d9b3119,ae54c55,7640b31]:- assistant-stream@0.3.20
- @assistant-ui/core@0.2.10
- assistant-cloud@0.1.31
0.0.13#
Patch Changes#
-
#4151
299d448- chore: drop stalebiome-ignorepragmas now that the repo lints with oxlint (@okisdev) -
#4136
4429aa3- centralize thread-level shared options forwarding across runtime wrapper hooks. follow-up to #4135. (@okisdev)new public exports from
@assistant-ui/core(re-exported from@assistant-ui/react):ExternalStoreSharedOptions, a typedPickoverExternalStoreAdaptercovering the four thread-level optional fields every wrapper forwards:isDisabled,isSendDisabled,unstable_capabilities,suggestions.pickExternalStoreSharedOptions(options), plucks those four fields from a wider options object. the body usessatisfies Required<...>so adding a key to the type without copying it in the function is a compile error rather than a silent missing-field bug.useExternalStoreSharedOptions(options)(from@assistant-ui/core/react), a memoized variant for wrappers that wrap their store inuseMemo. lets the wrapper list a single stablesharedreference as a dep instead of enumerating the four fields. samesatisfiesguard internally so the destructure stays in sync with the type.
internal: every runtime wrapper hook (
useChatRuntime,useAISDKRuntime,useLangGraphRuntime,useA2ARuntime,useAgUiRuntime,useAdkRuntime,useStreamRuntime,useOpenCodeRuntime) now uses these helpers instead of inlining the conditional spreads added in #4135. each wrapper sheds 20 to 40 lines of duplicated declarations and conditional spreads; future additions to the shared option set propagate through a single edit inpickExternalStoreSharedOptionsinstead of touching every wrapper. no user-facing behavior change. -
#4135
e7c2396- align the runtime wrapper hooks so every distribution forwards the same set of optional adapter-level fields touseExternalStoreRuntime. closes #4134. (@okisdev)useChatRuntimeanduseAISDKRuntime(which already acceptedsuggestions) gain three new options:isDisabled, disables the composer input entirely.isSendDisabled, keeps the input usable but makessend()a no-op (paired withcomposer.canSend).unstable_capabilities, per-thread capability overrides (currently{ copy?: boolean }).
useLangGraphRuntime,useA2ARuntime,useAgUiRuntime,useAdkRuntime,useStreamRuntime,useOpenCodeRuntimegain all four (the three above plussuggestions).adapter-level additions, where missing:
useChatRuntime/useAISDKRuntimealready accepteddictationandvoicethrough theExternalStoreAdapteradapter shape; this just confirms the typing.useLangGraphRuntime,useA2ARuntime,useAgUiRuntime,useAdkRuntime,useStreamRuntime,useOpenCodeRuntimenow acceptdictationandvoicein theiradaptersobject and forward them through.useOpenCodeRuntimegains anadaptersoption for the first time (attachments / speech / dictation / voice / feedback).
every new field is optional and defaults to the prior behavior, so existing call sites need no changes.
-
Updated dependencies [
1315789,299d448,4429aa3,e76611f,76f7d16,eef724e,2dec3ae,fcb6baf,c4d3eea,331f2f7]:- assistant-stream@0.3.18
- @assistant-ui/core@0.2.8
- @assistant-ui/store@0.2.13
- assistant-cloud@0.1.30
0.0.12#
Patch Changes#
- #4125
e639a11- chore: drop tracker-behaviour explainer comments left behind in satellite runtimes (@Yonom)
0.0.11#
Patch Changes#
-
#3967
0a0c306- feat(core, react): addMessagePrimitive.GenerativeUIprimitive (@samdickson22)A new first-class primitive for rendering agent-described React UI from a JSON
spec, with a consumer-provided component allowlist as the security boundary.The agent emits a new
generative-uimessage part containing a tree of
components by name;MessagePrimitive.GenerativeUIwalks the spec and resolves
each name against the registry you pass in. Unknown names throw a typed
GenerativeUIRenderError(or invoke the optionalFallback). Composes with
MessagePrimitive.Partsvia the newcomponents.generativeUIoption, and
supports streaming partial specs.<MessagePrimitive.Parts components={{ generativeUI: { components: { Card, Button } }, }} /> -
Updated dependencies [
13a12c4,0a0c306,6a0ecb2,e4634a5,325de4c,01244a5,f2ec01c,1e21076]:- assistant-stream@0.3.16
- @assistant-ui/core@0.2.5
- assistant-cloud@0.1.29
- @assistant-ui/store@0.2.12
0.0.10#
Patch Changes#
- Updated dependencies [
040d469]:- @assistant-ui/core@0.2.0
0.0.9#
Patch Changes#
-
Updated dependencies [
7098bab,b090acb,5fdf17e]:- @assistant-ui/core@0.1.18
- assistant-stream@0.3.13
- @assistant-ui/store@0.2.10
0.0.8#
Patch Changes#
-
#3894
d3380f4- fix(react-google-adk): add missing DictationAdapter to UseAdkRuntimeOptions (@okisdev) -
#3905
d0b72cb- fix(react-google-adk): preserve file attachment data on the wire (@okisdev)useAdkRuntime.getMessageContentpreviously collapsed file message parts into a[File: <name>]text marker before sending to ADK, dropping the base64 payload entirely. newfileandfile_urlvariants onAdkMessageContentPartcarry the binary throughAdkClientanduseAdkMessages.contentToParts, which serialize them asinlineDataandfileDataon the wire. inbound,AdkEventAccumulatorsniffs MIME type so non-imageinlineDataproduces afilepart (rather than being silently coerced intoimage), and explicitly non-imagefileDataproducesfile_url;fileDatawith no MIME type falls back toimage_urlto preserve the legacy round-trip.convertAdkMessagemapsfileto a coreFileMessagePartandfile_urlto adatapart named"file_url". -
Updated dependencies [
549037a,005f83f,976aec5,25b97d5,2008fc9,88fcd35]:- @assistant-ui/core@0.1.16
- @assistant-ui/store@0.2.9
0.0.7#
Patch Changes#
-
#3843
c15a958- fix(react-google-adk): return the ADK session id asremoteIdfromcreateAdkSessionAdapter().initialize(). Previously the inputthreadId(an internal__LOCALID_*) was returned, so laterdelete(remoteId)calls hit/sessions/__LOCALID_*and 404'd — masked by the adapter's tolerated 404 on delete. (@okisdev) -
Updated dependencies [
c7a274e,ce865bc,ca8f526,c56f98f,974d15e,4b19d42,da0f598,d53ff4f,20f8404,17958c9]:- @assistant-ui/core@0.1.15
- assistant-stream@0.3.12
- assistant-cloud@0.1.27
- @assistant-ui/store@0.2.8
0.0.6#
Patch Changes#
-
147c1b8: fix(react-google-adk): render user-authored events as human messages
AdkEventAccumulator.processEventpreviously routedauthor: "user"events throughgetOrCreateAiMessage, producingtype: "ai"messages thatconvertAdkMessagemapped torole: "assistant"— so user text rendered as assistant bubbles. With Workflow agents this caused full multi-turn conversations to merge into a single assistant block. User events now createtype: "human"messages, preserving text, inline images, and file references. -
9abb15c: fix(react-google-adk): allow HITL interrupt tool UIs to render with
requires-actionstatusmakeAssistantToolUIfor HITL tools (adk_request_input, etc.) can now usestatus.type === "requires-action"to render input forms- Non-HITL final events still receive their manual
completestatus
-
4d2531e: fix(react-google-adk): don't auto-cancel HITL interrupts when user sends a new message
useAdkRuntime.onNewnow filters pending tool calls whose id is tracked inlong_running_tool_ids, so ADK HITL interrupts (adk_request_input,adk_request_confirmation,adk_request_credential) are no longer overwritten with{cancelled: true}when the user types a new message- Add
useAdkSubmitInput(toolCallId, result)to submit the user's answer as a{result}FunctionResponse, matching ADK'sunwrap_responsecontract so WorkflowRequestInputnodes resume with the unwrapped value AdkEventAccumulatorunionslong_running_tool_idsacross events instead of replacing, so multiple HITL interrupts in the same turn are all trackedonEdit/onReload/ session load paths now reset derived HITL state (longRunningToolIds,toolConfirmations,authRequests,escalated) via a newreplaceMessageshelper onuseAdkMessages, so stale interrupt markers don't leak into the next turn
Behavior change: HITL interrupts must now be answered through a tool UI using the dedicated submit helpers (
useAdkSubmitInput,useAdkConfirmTool,useAdkSubmitAuth). Typing in the composer while an interrupt is pending no longer sends a spurious cancellation. -
c988db8: chore: update dependencies
-
Updated dependencies [f20b9ca]
-
Updated dependencies [c988db8]
- @assistant-ui/core@0.1.14
- assistant-stream@0.3.11
- assistant-cloud@0.1.26
- @assistant-ui/store@0.2.7
0.0.5#
Patch Changes#
- 376bb00: chore: update dependencies
- Updated dependencies [42bc640]
- Updated dependencies [376bb00]
- Updated dependencies [87e7761]
- @assistant-ui/core@0.1.13
- assistant-cloud@0.1.25
0.0.4#
Patch Changes#
- 5e23896: fix: skip partial functionCall events in AdkEventAccumulator to prevent incomplete tool calls from hanging the runtime
- Updated dependencies [de29641]
- Updated dependencies [a8bf84b]
- Updated dependencies [5fd5c3d]
- Updated dependencies [2c5cd97]
- Updated dependencies [ec50e8a]
- @assistant-ui/core@0.1.11
- assistant-stream@0.3.10
0.0.3#
Patch Changes#
- bdce66f: chore: update dependencies
- 209ae81: chore: remove aui-source export condition from package.json exports
- Updated dependencies [dffb6b4]
- Updated dependencies [6554892]
- Updated dependencies [9103282]
- Updated dependencies [876f75d]
- Updated dependencies [bdce66f]
- Updated dependencies [4abb898]
- Updated dependencies [209ae81]
- Updated dependencies [2dd0c9f]
- Updated dependencies [af70d7f]
- assistant-stream@0.3.9
- @assistant-ui/core@0.1.10
- assistant-cloud@0.1.24
- @assistant-ui/store@0.2.6
0.0.2#
Patch Changes#
- 52403c3: chore: update dependencies
- Updated dependencies [781f28d]
- Updated dependencies [3227e71]
- Updated dependencies [3227e71]
- Updated dependencies [0f55ce8]
- Updated dependencies [83a15f7]
- Updated dependencies [52403c3]
- Updated dependencies [ffa3a0f]
- @assistant-ui/core@0.1.9
- assistant-stream@0.3.8
- assistant-cloud@0.1.23
- @assistant-ui/store@0.2.5
0.0.1#
Patch Changes#
- 69886fd: feat: add Google ADK adapter package
- Updated dependencies [7ecc497]
- @assistant-ui/core@0.1.7