@sonex/sdk-core
v0.1.0
Published
Core logic and services for Sonex SDK - framework-agnostic chatbot functionality
Readme
@sonex/sdk-core
Core logic and services for Sonex SDK - framework-agnostic chatbot functionality.
Features
- 🔧 Framework-agnostic core services
- 🔐 Flexible token management (providers, storage adapters, direct injection)
- 📡 API communication layer with session handling
- 📦 State management with observer pattern
- 🎤 Voice transcription support
- 📝 TypeScript first with full type definitions
Installation
npm install @sonex/sdk-coreQuick Start
import { ChatbotService, ChatbotConfig } from '@sonex/sdk-core';
const config: ChatbotConfig = {
apiEndpoint: 'https://api.example.com/transcribe',
sessionEndpoint: 'https://api.example.com/session',
storage: 'localStorage',
};
const chatbot = new ChatbotService(config);
// Subscribe to state changes
chatbot.subscribe((state, event) => {
console.log('State updated:', state);
console.log('Event:', event.type);
});
// Send a message
await chatbot.sendMessage({ content: 'Hello!' });
// Clean up
chatbot.destroy();Token Management
The SDK supports multiple token management strategies:
1. Token Provider (Recommended)
const config: ChatbotConfig = {
apiEndpoint: 'https://api.example.com/transcribe',
tokenProvider: {
getToken: () => store.getState().auth.sonexToken,
onTokenReceived: (token) => store.dispatch(setToken(token)),
onTokenCleared: () => store.dispatch(clearToken()),
},
};2. Auth Token Provider (For Session API)
const config: ChatbotConfig = {
apiEndpoint: 'https://api.example.com/transcribe',
sessionEndpoint: 'https://api.example.com/session',
authTokenProvider: {
getAuthToken: () => localStorage.getItem('app_auth_token'),
headerName: 'Authorization', // Optional, defaults to 'Authorization'
},
};3. Storage Adapters
const config: ChatbotConfig = {
apiEndpoint: 'https://api.example.com/transcribe',
storage: 'localStorage', // or 'sessionStorage' | 'memory' | custom adapter
};Exports
Services
ChatbotService- Main service for chat operationsSessionService- Session token managementStateManager- State management with observer pattern
Storage Adapters
localStorageAdapter- Browser localStorage adaptersessionStorageAdapter- Browser sessionStorage adaptermemoryStorageAdapter- In-memory storage adapter
Types
ChatbotConfig- Configuration interfaceMessage,MessageRole,MessageStatus- Message typesConversation,ConversationMetadata- Conversation typesChatState,ConnectionStatus- State typesTokenProvider,AuthTokenProvider,TokenStorage- Token management types
Documentation
For comprehensive documentation, see:
Related Packages
@sonex/sdk-browser- React widget components (includes this package)@sonex/sdk-node- Server-side utilities
License
MIT
