Repository navigation
v0.17.0
@kanzo-tech/llm
New package: @kanzo-tech/llm, the model side of @kanzo-tech/ai, without React. createKanzo({ baseURL }) gives you a model by alias from an OpenAI-compatible Kanzo AI gateway — const kanzo = createKanzo({ baseURL: "/api/v1/ai" }); kanzo("kanzo-chat") — and the AI SDK pieces you build on it (ToolLoopAgent, DirectChatTransport, tool, Output, streamText, the message types) are re-exported, so you import them from here rather than from ai. Install ai@^7 beside it; it is a required peer.
@kanzo-tech/ai
Breaking. @kanzo-tech/ai is now two components over the AI SDK: Assist for a field the model helps fill, and Chat for a conversation. Install the new required peers ai@^7 and @ai-sdk/react@^4.
- Assisted fields. Replace
CompleteRoot/CompleteTextarea/CompleteGhost/CompleteMark/CompleteKeys/CompleteHint/CompleteErrorandSuggestRoot/SuggestMark/SuggestListwith oneAssistProvider(once, withmodel={kanzo("kanzo-complete")}) and<Assist value onValueChange><Textarea /></Assist>around the control. ATextareagets the same ghost text (plus Alt+]/Alt+[ for alternatives and an undo on the ✨), anInputgets the same strip of candidates, aTagsInputgets candidates to add. You no longer write acompleteorsuggestsource: the field's label and helper text tell the model what it is — useFieldHelper, which is wired to the control. Words move toAssistProvider'stranslations. - Conversations. Replace your composition of
Conversation,Message,MessageText,PromptInput,Reasoning,ToolandTaskwith<Chat chat={useChat({ transport })} tools={{ myTool: (part) => … }} />. Parts are the AI SDK's own, so there is nothing to translate; tool states are the SDK's. - Removed, with no replacement export: those parts,
MessageMarkdownand the./markdownsubpath (markdown is built intoChat),useAiStream,useInlineCompletion,useSuggestions,cleanGhost,Candidate,AiMessage/Ai*Part/StreamStateand their guards,RunState,AiStatus.