46 KiB
@assistant-ui/react-ink
0.0.31
Patch Changes
0.0.30
Patch Changes
-
#4310
0c51b90- feat: addunstable_interactables API; restore and deprecate the previous interactables API (@AVGVSTVS96)The redesigned interactables API is now available as an additive
unstable_*surface for building editable, in-message UI while preserving the existing stable API for compatibility.unstable_useInteractable(name, config)registers an interactable and returns its state plus methods in one hook.- Each unstable interactable name gets one stable
update_{name}tool. When multiple instances share a name, the tool targets an instance byid. - Thread-scoped interactables rendered inside message parts expose
version, including the state for that message, whether it is the latest tool-driven version, andrestore(). - Added
unstable_interactableTool(...)for defining a creating tool and its in-message render UI together. - Added
unstable_useInteractableVersions(id, name)for version history UIs. - Persistence adapters can now provide
load()and be passed directly tounstable_Interactables({ persistence }).
The previous
useAssistantInteractable/useInteractableState/InteractablesAPI remains available unchanged and is marked deprecated. Existing apps do not need to migrate immediately.Migration notes for the unstable API:
- const id = useAssistantInteractable("taskBoard", config); - const [state, { setState }] = useInteractableState(id, initialState); + const [state, { id, setState }] = unstable_useInteractable("taskBoard", config);- Use
unstable_interactables: unstable_Interactables()when registering the unstable scope. unstable_useInteractableState(id)is intended for secondary readers and returnsundefineduntil the owner registers.- The unstable API uses per-name update tools (
update_{name}) with anidparameter instead of legacy per-instance tools (update_{name}_{id}). - A top-level
idfield instateSchemais reserved for instance addressing. Rename domain state fields toitemId,recordId, etc. if the model should edit them. - Model selection should be represented as ordinary state in the unstable API; the legacy
selectedregistration prop andsetSelectedmethod remain available on the deprecated stable API.
-
#4577
fe28419- feat: re-export unstable interactable snapshot helpers from native and ink barrels (@Kinfe123) -
#4542
4acd4c0- add unstable id-keyed thread message rendering APIs for virtualized and custom message lists.unstable_useThreadMessageIds()returns the thread's message ids (stable array identity across content-only updates), andThreadPrimitive.Unstable_MessageByIdrenders a single message by id with the same component surface asMessageByIndex. A missing or removed id rendersnullinstead of throwing. (@AVGVSTVS96) -
Updated dependencies [
ddc40b7,ea52de0,29c6fdb,d0987a3,cefcf27,0c51b90,3a8f685,ec6adf4,4acd4c0]:- @assistant-ui/core@0.2.19
- assistant-stream@0.3.24
- @assistant-ui/store@0.2.19
- @assistant-ui/tap@0.9.3
0.0.29
Patch Changes
-
#4426
68dfbaa- chore: markgenerateIdandfromThreadMessageLikeas experimental (@okisdev)these two utilities became public in #4414. they now carry an
@deprecatedJSDoc noting the API is experimental and may change without notice, matching how the other unstable public utilities (e.g.bindExternalStoreMessage) are flagged. the distribution packages (@assistant-ui/react,@assistant-ui/react-native,@assistant-ui/react-ink) re-export them, so the annotation lands in their published types too. -
Updated dependencies [
68dfbaa,fe24ad6]:- @assistant-ui/core@0.2.18
0.0.28
Patch Changes
-
#4414
344f737- feat: exportfromThreadMessageLikeandgenerateIdfrom the public API (@okisdev)these two utilities were only reachable via
@assistant-ui/core/internal, so materializing aThreadMessageLikeinto aThreadMessage, or generating an id for a hand-built message, meant reaching into internals (the first-party ag-ui and a2a runtimes already did). they are now exported from@assistant-ui/core,@assistant-ui/react,@assistant-ui/react-native, and@assistant-ui/react-ink. also removes the now-redundant duplicate listing of both from the unstableINTERNALnamespace (the one in-repo consumer, the with-ffmpeg example, now uses the public export). -
Updated dependencies [
344f737,a2e21ee]:- @assistant-ui/core@0.2.17
0.0.27
Patch Changes
-
#4392
4cc7eaa- chore: update peer and dependency ranges for @assistant-ui/tap 0.9 (@Yonom) -
Updated dependencies [
434bba5,bb38d08,4cc7eaa,4cc7eaa]:- assistant-stream@0.3.23
- @assistant-ui/core@0.2.16
- @assistant-ui/tap@0.9.1
- @assistant-ui/store@0.2.18
0.0.26
Patch Changes
-
#4385
ae59baf- feat: precompile packages with React Compiler (@Yonom)- aui-build runs React Compiler over packages that depend on tap and remaps
react/compiler-runtimeto the tap shim subpath, so compiled hooks and components work both in React components and inside tap resource renders @assistant-ui/tap/react-shimexportsuseMemoCache(tap inside a resource render,React.__COMPILER_RUNTIME.cotherwise, with a React 18 polyfill); new@assistant-ui/tap/react-shim/compiler-runtimesubpath mirrorsreact/compiler-runtime'scexport- tap implements
useSyncExternalStoreand a no-opuseDebugValue;useSubscribablenow builds onuseSyncExternalStoreso its store reads stay visible to the compiler AssistantProviderBaseopts out via"use no memo"because the runtime receives options through an effect inside a re-rendered child element
- aui-build runs React Compiler over packages that depend on tap and remaps
-
Updated dependencies [
c207bcd,ae59baf,9f13fdb,4583ca7,94cc028]:- @assistant-ui/core@0.2.15
- @assistant-ui/tap@0.8.1
- @assistant-ui/store@0.2.17
- assistant-stream@0.3.22
0.0.25
Patch Changes
-
#4347
feecac3- docs: reword the useNotification JSDoc from "pauses for human approval" to "pauses for user input"; the needs-input trigger fires onrequires-actionwith reasoninterrupt, not on tool approval gates (@okisdev) -
#4325
5a4f20e- chore: update @assistant-ui/tap dependency ranges to ^0.7.0 (@Yonom) -
Updated dependencies [
ab8e5bc,59d252f,feecac3,3e58253,12b016b,3e58253,5a4f20e,f10b8ae,1fb5862]:- @assistant-ui/core@0.2.14
- @assistant-ui/store@0.2.16
- @assistant-ui/tap@0.7.1
0.0.24
Patch Changes
-
#4260
19c5b5f- fix: make defineToolkit usable for plain runtime toolkits (@Yonom) -
#4249
ca191dc- feat: add externalTool for render-only generative toolkit entries (@Yonom) -
#4243
b79794d- fix(react-ink): block Enter submission while the thread is running unless the runtime supports queueing.ComposerInputcalledcomposer().send()unconditionally, so pressing Enter mid-run interrupted the active stream even on runtimes withcapabilities.queue: false. It now applies the same gate as the webComposerInput(isRunning && !capabilities.queueno-ops, keeping the typed text). TheonSubmitoverride path is unaffected; apps using it own their submit behavior. (@ShobhitPatra) -
#4253
4c8f894- feat:defineToolkitand the tool markers (hitlTool/stubTool/providerTool) now have runtime implementations in@assistant-ui/react-ink, so Ink apps author tools with the samedefineToolkitAPI (and typed args) as the web. An Ink app runs in a single Node process with no client/server boundary, so there is nothing for the"use generative"compiler to split:defineToolkitresolves each tool'stypeat runtime and no build step is required. (@Yonom) -
#4256
44ff4bf- feat: rename hitlTool to humanTool while keeping deprecated compatibility aliases (@Yonom) -
Updated dependencies [
2a84174,a0a0769,19c5b5f,dbdfb15,ca191dc,15878d8,44ff4bf,01cf957,01cf957,26a365b]:- @assistant-ui/core@0.2.11
- assistant-stream@0.3.21
- @assistant-ui/store@0.2.14
- @assistant-ui/tap@0.6.0
0.0.23
Patch Changes
-
#4212
5fe118d- feat: add MCP server support to generative toolkits (@Yonom) -
#4213
dcd5897- feat: add provider-executed tool support to generative toolkits (@Yonom) -
#4214
69540af- feat: add renderText helpers for tool call status text (@Yonom) -
#4199
d9b3119- feat: adefineToolkitentry may now be an already-formedToolDefinition(carrying its owntype), not only an inline definition whosetypethe compiler infers. This is what lets a factory likenew JSONGenerativeUI({ library }).present()be used directly as a tool. (@Yonom)Renames the authoring types to match
defineToolkit:ToolkitDeclaration→ToolkitDefinition, and addsToolkitDefinitionEntry(the union of an inline tool definition and a pre-formedToolDefinition). The per-tool inline type is now an internalToolkitDefinitionInputand is no longer exported. -
#4236
ae54c55- feat: addstubTool()and experimentaluseAuiToolOverrides()for locally executed generative toolkit tools (@Yonom) -
#4235
7640b31- Deprecate component tool registration APIs in favor of toolkit registrations. (@Yonom) -
Updated dependencies [
cba2b42,4145caa,58f80e0,5fe118d,dcd5897,0558db2,69540af,d9b3119,ae54c55,7640b31]:- assistant-stream@0.3.20
- @assistant-ui/core@0.2.10
0.0.22
Patch Changes
-
#4176
27ae936- feat: move thedefineToolkitandhitluse-generative markers from@assistant-ui/nextinto@assistant-ui/core/react, so they ship once from every distribution (@assistant-ui/react,@assistant-ui/react-native,@assistant-ui/react-ink) and stay portable across build targets. Import them from@assistant-ui/reactinstead of@assistant-ui/next; they remain no-op markers stripped at build time by a"use generative"compiler. (@Yonom) -
Updated dependencies [
27ae936,27ae936]:- assistant-stream@0.3.19
- @assistant-ui/core@0.2.9
0.0.21
Patch Changes
-
#3852
356d8a0- add auseNotificationhook plusringBell/sendOSCNotificationhelpers to@assistant-ui/react-ink. the hook rings the terminal bell and emits an OSC desktop notification when the assistant finishes a run, stops with an error, or pauses for human approval (requires-actionwithreason: "interrupt"only; tool-call pauses are skipped). passuseNotification()for the default bell-on-every-transition behavior,useNotification({ onTaskComplete: false })to suppress one trigger, oruseNotification({ onTaskComplete: { custom: (event) => ... } })for a user-supplied callback. transitions are derived fromuseAuiStateso deprecatedthread.runStart/thread.runEndevents are not relied on.ringBellandsendOSCNotificationare also exported for imperative use. (@ShobhitPatra) -
#4165
4dfc5da- fix(react-ink): show the error icon for completed tool calls that errored.ToolFallbackresolved a part with acompletestatus to the success icon (+) even whenisErrorwas set, so a finished-but-failed tool call rendered green. It now checksisErrorwithin the complete branch and shows the error icon (x), matchinguseToolCallChecklist. (@ShobhitPatra) -
#3681
9040b7c- feat: add live checklist primitives (ChecklistPrimitive, LiveChecklist) for tracking tool-call progress (@ShobhitPatra) -
#4167
fcb6baf- feat: add adisplaypresentation hint to tools and a"standalone-tool-call"key togroupPartByType. (@Yonom)Tool UIs fall into three buckets: prompting the user (human-in-the-loop), informing the user (generative UI), and traces of what the model is doing (routine frontend/backend tool calls). The first two should be surfaced on their own; the last belongs folded into the chain-of-thought trace. The new
displayfield on a tool lets you place a tool in the right bucket without overloadingtype:const toolkit = { ask_user: { type: "human", render: AskUI }, // standalone (forced — can't opt out) search_web: { type: "frontend", render: SearchUI }, // inline trace (default) checkout: { type: "frontend", render: CheckoutUI, display: "standalone", // opt in }, } satisfies Toolkit;display?: "standalone" | "inline"is a client-only presentation hint (it never reaches the model). Defaults to"inline".humantools are always"standalone"and cannot opt out (the type only allows"standalone"). MCP-app tool calls and the built-in generative-UI tool are standalone too. Every other tool defaults to inline and opts in explicitly.groupPartByTypegains a synthetic"standalone-tool-call"key that matches all of the above.MessagePrimitive.GroupedPartspasses the live tool-UI registry to thegroupByfunction as a secondcontextargument ({ toolUIs }), and the helper reads it to resolve the registry-driven cases; MCP-app calls are detected from the part alone.- The
"mcp-app"key ongroupPartByTypeis deprecated in favor of"standalone-tool-call"(a superset). It still works for back-compat.
The shadcn
thread.tsxtemplate is updated to use"standalone-tool-call": []in place of"mcp-app": []. -
Updated dependencies [
1315789,299d448,4429aa3,e76611f,76f7d16,eef724e,2dec3ae,fcb6baf,c4d3eea]:- assistant-stream@0.3.18
- @assistant-ui/core@0.2.8
- @assistant-ui/store@0.2.13
- @assistant-ui/tap@0.5.14
0.0.20
Patch Changes
0.0.19
Patch Changes
-
#4107
32ae846- feat: surface AI SDK v6 tool approvals as a first-classrespondToApprovalprop on tool components. tool-call parts in theapproval-requestedstate now carrypart.approval = { id, isAutomatic? }; tool components callrespondToApproval({ approved, reason? })to ack the gate without threadingchatHelpersthrough application context. also fixes a transientrequires-actionflicker for theapproval-respondedstate and tightens the external-message converter so interrupt vs pending tool calls are distinguished by an actualinterrupt/approvalfield rather than byresult === undefined. (@okisdev) -
Updated dependencies [
372d4f0,d4f1db4,32ae846]:- @assistant-ui/core@0.2.6
- assistant-stream@0.3.17
0.0.18
Patch Changes
-
#3651
6a0ecb2- feat(react-ink): add file storage adapter (@ShobhitPatra) -
Updated dependencies [
13a12c4,0a0c306,6a0ecb2,e4634a5,325de4c,01244a5,f2ec01c,1e21076]:- assistant-stream@0.3.16
- @assistant-ui/core@0.2.5
- @assistant-ui/store@0.2.12
- @assistant-ui/tap@0.5.12
0.0.17
Patch Changes
-
#3635
4ae1d2b- feat(react-ink): add StatusBarPrimitive components (@ShobhitPatra) -
#3860
c1ffce1- feat(react-ink): add intra-line highlighting to DiffView replacement lines (@ShobhitPatra) -
#3983
a26f2bd- fix(react-ink): guardPressable'sonPressagainst thedisabledprop independently ofisFocused, sodisabledreliably blocks key presses even when focus state and the prop disagree. (@ShobhitPatra) -
#3633
300b3eb- feat(react-ink): add LoadingPrimitive for terminal loading states (@ShobhitPatra) -
#3983
a26f2bd- feat(react-ink): addStatussub-component for terminal-safe attachment status display, and fall back from extensionless filenames to the attachmenttypeinThumb. (@ShobhitPatra) -
#3965
a71f716- feat(react-ink): add ComposerPrimitive.Queue and QueueItemPrimitive (Text, Remove, Steer) (@ShobhitPatra) -
#3969
2bcbaf2- feat(react-ink): add ComposerPrimitive.Quote, QuoteText, and QuoteDismiss for terminal composer quote parity with@assistant-ui/react(@ShobhitPatra) -
#3957
a25381e- feat(react-ink): harden terminal pressable interactions (@ShobhitPatra) -
#3958
7a8bf26- feat(react-ink): addMessagePartPrimitivenamespace with terminal-safe defaults for image, file, source, reasoning, and data parts. (@ShobhitPatra)Behavior changes in
react-ink:MessagePrimitive.Content(deprecated) now renders the new terminal-safe defaults for image/file/source/reasoning/data parts when norender*prop is provided; previously these parts were silently dropped. Passrender*={() => null}to restore the prior behavior.MessagePrimitive.Contentnow consultsdataRenderers.fallbacks[0]before falling back to the inline data renderer, matchingMessagePrimitive.Parts.MessagePrimitive.Partsnow forwardsdataandQuotecomponents alongsideChainOfThought; previouslydatawas dropped whenChainOfThoughtwas set.
-
Updated dependencies [
db721df,94548fa,94548fa,94548fa,8b6fc88,179895f,7a8bf26,3b2bbce]:- @assistant-ui/store@0.2.11
- assistant-stream@0.3.15
- @assistant-ui/core@0.2.3
0.0.16
Patch Changes
-
#4008
fa4510a- feat: support multi-modal tool results viatoModelOutput(@okisdev)frontend tools can now project their execution output into multi-modal model content (text + image / pdf / arbitrary file parts), aligning with the AI SDK v6
toModelOutputcallback. previously, tool results were always serialized as a single JSON value, so a "read pdf" style tool had no way to send the PDF back to a multi-modal model.assistant-streamexports a newToolModelContentParttype ({ type: "text", text } | { type: "file", data, mediaType, filename? }) and aToolModelOutputFunction<TArgs, TResult>callback type.Tool.toModelOutputis wired throughunstable_runPendingToolsandToolExecutionStream, attaching the resultingmodelContentto thetool-callpart on the assistant message.@assistant-ui/corere-exportsToolModelContentPartand adds an optionalmodelContent?: readonly ToolModelContentPart[]field onToolCallMessagePart. existing tools and renderers are unchanged.@assistant-ui/react-ai-sdk'sfrontendTools(...)helper now also registers atoModelOutputon each forwarded tool. it transparently unwraps an envelope thatuseAISDKRuntimewrites when a frontend-executed tool producedmodelContent, turning it into AI SDK's{ type: "content", value: [...] }output. plain (non-envelope) outputs fall back to the existing{ type: "text" | "json", value }shape, so behavior for tools withouttoModelOutputis unchanged.
route handlers that adopt
toModelOutputalso need to passtoolstoconvertToModelMessages(this is the AI SDK's documented pattern):const aiSDKTools = { ...frontendTools(tools ?? {}) }; streamText({ messages: await convertToModelMessages(messages, { tools: aiSDKTools }), tools: aiSDKTools, });templates and existing examples are unchanged. they keep the simpler
convertToModelMessages(messages)form because none of the tools they ship with usetoModelOutput. the new tools guide page documents how to opt in.reserved key. when a frontend tool defines
toModelOutput, its result is persisted in the AI SDK chat as{ __aui_modelContent: ToolModelContentPart[], value: <your result> }. tools must not return objects whose top-level key is literally__aui_modelContent, orconvertMessagewill misread the result. the prefix is namespaced for this reason.read/write compatibility for persisted threads. the envelope is recognized by
@assistant-ui/react-ai-sdkfrom this version onward. if you persist UI messages and read them from multiple environments, upgrade every reader before any writer starts producingtoModelOutput; otherwise older readers will treat the envelope object as theresultand break the affected toolrenderfunctions. -
#3966
3d78764- perf: Virtualize message list and memoize per-message render in long ink threads (@samdickson22)ThreadPrimitive.Messagesnow accepts optionalwindowSize/windowOverscan. When set, the live render region keeps the lastwindowSize + windowOverscanmessages; older ones graduate through Ink's<Static>into terminal scrollback. Each rendered message is wrapped in a memoized boundary keyed by(index, render), so streaming a single message no longer reconciles the full list. Defaults preserve legacy behavior; negative values clamp to 0. -
Updated dependencies [
9ecda1d,35d0146,fa4510a,c9dd16c,dea8bc7,9c3d24d]:- assistant-stream@0.3.14
- @assistant-ui/core@0.2.1
0.0.15
Patch Changes
- Updated dependencies [
040d469]:- @assistant-ui/core@0.2.0
0.0.14
Patch Changes
-
#3932
6700da5- feat: re-export RuntimeAdapterProvider, useRuntimeAdapters, and CompleteAttachment (@AVGVSTVS96) -
Updated dependencies [
7098bab,b090acb,5fdf17e]:- @assistant-ui/core@0.1.18
- assistant-stream@0.3.13
- @assistant-ui/store@0.2.10
- @assistant-ui/tap@0.5.11
0.0.13
Patch Changes
-
#3850
63da83a- feat(react-ink): rewrite react-ink composer input into a cursor aware terminal editor (@ShobhitPatra) -
Updated dependencies [
549037a,005f83f,976aec5,25b97d5,2008fc9,88fcd35]:- @assistant-ui/core@0.1.16
- @assistant-ui/store@0.2.9
- @assistant-ui/tap@0.5.10
0.0.12
Patch Changes
-
Updated dependencies [
c7a274e,ce865bc,ca8f526,c56f98f,974d15e,4b19d42,055dda5,da0f598,d53ff4f,20f8404,17958c9]:- @assistant-ui/core@0.1.15
- assistant-stream@0.3.12
- @assistant-ui/store@0.2.8
- @assistant-ui/tap@0.5.9
0.0.11
Patch Changes
- c988db8: chore: update dependencies
- Updated dependencies [f20b9ca]
- Updated dependencies [c988db8]
- @assistant-ui/core@0.1.14
- assistant-stream@0.3.11
- @assistant-ui/store@0.2.7
- @assistant-ui/tap@0.5.8
0.0.10
Patch Changes
- 376bb00: chore: update dependencies
- Updated dependencies [42bc640]
- Updated dependencies [376bb00]
- Updated dependencies [87e7761]
- @assistant-ui/core@0.1.13
- @assistant-ui/tap@0.5.7
0.0.9
Patch Changes
-
6554892: feat: add useAssistantContext for dynamic context injection
Register a callback-based context provider that injects computed text into the system prompt at evaluation time, ensuring the prompt always reflects current application state.
-
bdce66f: chore: update dependencies
-
4abb898: refactor: align interactables with codebase conventions
- Rename
useInteractabletouseAssistantInteractable(registration only, returns id) - Add
useInteractableStatehook for reading/writing interactable state - Remove
makeInteractableand related types - Rename
UseInteractableConfigtoAssistantInteractableProps - Extract
buildInteractableModelContextfromInteractablesresource - Add
with-interactablesexample to CLI
- Rename
-
209ae81: chore: remove aui-source export condition from package.json exports
-
af70d7f: feat: add useToolArgsStatus hook for per-prop streaming status
Add a convenience hook that derives per-property streaming completion status from tool call args using structural partial JSON analysis.
-
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-ui/store@0.2.6
- @assistant-ui/tap@0.5.6
0.0.8
Patch Changes
-
3227e71: feat: add interactables with partial updates, multi-instance, and selection
useInteractable(name, config)hook andmakeInteractablefactory for registering AI-controllable UIInteractables()scope resource with auto-generated update tools and system prompt injection- Partial updates — auto-generated tools use partial schemas so AI only sends changed fields
- Multi-instance support — same name with different IDs get separate
update_{name}_{id}tools - Selection —
setSelected(true)marks an interactable as focused, surfaced as(SELECTED)in system prompt
-
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-ui/store@0.2.5
- @assistant-ui/tap@0.5.5
0.0.7
Patch Changes
- 3247231: feat(react-ink): add DiffPrimitive and DiffView for terminal diff rendering
- 736344c: chore: update dependencies
- Updated dependencies [1406aed]
- Updated dependencies [9480f30]
- Updated dependencies [28a987a]
- Updated dependencies [736344c]
- Updated dependencies [ff3be2a]
- Updated dependencies [70b19f3]
- Updated dependencies [c71cb58]
- @assistant-ui/core@0.1.8
- @assistant-ui/store@0.2.4
- assistant-stream@0.3.7
- @assistant-ui/tap@0.5.4
0.0.6
Patch Changes
- 7ecc497: feat: children API for primitives with part.toolUI, part.dataRendererUI, and MessagePrimitive.Quote
- 639792c: feat(react-ink): add ErrorPrimitive (Root, Message)
- Updated dependencies [7ecc497]
- @assistant-ui/core@0.1.7
0.0.5
Patch Changes
- 4a904de: refactor: remove useAssistantRuntime hook
- 349f3c7: chore: update deps
- 6cc4122: refactor: use primitive hooks
- Updated dependencies [1ed9867]
- Updated dependencies [427ffaa]
- Updated dependencies [349f3c7]
- Updated dependencies [02614aa]
- Updated dependencies [6cc4122]
- Updated dependencies [642bcda]
- @assistant-ui/core@0.1.6
- assistant-stream@0.3.6
- @assistant-ui/store@0.2.3
- @assistant-ui/tap@0.5.3
0.0.4
Patch Changes
- f38a59b: Launch React Ink: add documentation, landing page, CLI --ink flag, and README
- 990e41d: refactor: code sharing between the multiple platforms
- Updated dependencies [990e41d]
- @assistant-ui/core@0.1.5
0.0.3
Patch Changes
- 6d78873: feat: add ToolFallback component with collapsible tool call visualization
- Updated dependencies [f032ea5]
- Updated dependencies [2828b67]
- @assistant-ui/core@0.1.4
- assistant-stream@0.3.5
0.0.2
Patch Changes
- 8ed9d6f: Refactor React Native component API: move shared runtime logic (remote thread list, external store, cloud adapters, message converter, tool invocations) into @assistant-ui/core for reuse across React and React Native
- Updated dependencies [5ae74fe]
- Updated dependencies [8ed9d6f]
- Updated dependencies [01bee2b]
- @assistant-ui/core@0.1.3