@assistant-wi/react-core
v0.0.17
Published
Библиотека ядра для Assistant WI. Содержит бизнес-логику, entities, hooks и adapters без UI-компонентов.
Readme
@assistant-wi/react-core
Библиотека ядра для Assistant WI. Содержит бизнес-логику, entities, hooks и adapters без UI-компонентов.
Структура
src/
├── adapters/ # Адаптеры для внешних сервисов
│ ├── aisdk/ # AI SDK интеграция
│ ├── api/ # API клиент
│ ├── localstorage/ # LocalStorage persistence
│ └── vite/ # Vite environment
│
├── entities/ # Domain entities
│ ├── assistant/ # Assistant и Tool entities
│ ├── chat/ # Chat entity
│ ├── message/ # Message entity
│
├── contexts/ # React contexts
│ ├── assistant/ # Assistant context и hooks
│ └── translation/# Translation context
│
├── queries/ # React Query hooks
│ ├── chat/ # Chat queries и mutations
│ └── message/ # Message queries и mutations
│
├── shared/
│ ├── lib/ # Утилиты и helpers
│ └── types/ # Общие типы
│
└── di/ # Dependency Injection контейнерЭкспорты
Entities
Assistant- конфигурация ассистентаTool,createTool- создание инструментовChat- сущность чатаMessage- сущность сообщения
Hooks
useMessengerActions- действия ассистента (создание/удаление чатов и т.д.)useMessengerSelectedChatId- ID выбранного чатаuseMessengerSelectedChat- выбранный чатuseMessengerSelectedChatConversation- диалог выбранного чатаuseInlineAction- single-turn взаимодействие с AI
Contexts
AssistantProvider- провайдер контекста ассистентаuseAssistant- хук для доступа к конфигурации ассистента
Установка
bun add @assistant-wi/react-coreИспользование
import {
useAssistantActions,
useAssistantSelectedChat,
useInlineAction,
} from '@assistant-wi/react-core';
function MyComponent() {
const actions = useAssistantActions();
const selectedChat = useAssistantSelectedChat();
const inlineAction = useInlineAction();
// ...
}Tool API
import { createTool, ui } from '@assistant-wi/react-core/tool';
const myTool = createTool({
name: 'my-tool',
description: 'Description',
parameters: z.object({
param: z.string(),
}),
call: async (props) => {
// Бизнес-логика
return ui.text('Result');
},
});