Updated documentation.

This commit is contained in:
2025-04-01 23:42:02 +01:00
parent 61962bbc27
commit 0e89be7242
5 changed files with 562 additions and 133 deletions

View File

@@ -49,44 +49,33 @@ For initial development, the application will be built for Windows, macOS, and L
- Integration with mobile-specific features (location services, notifications, etc.)
### Extentions
Modularity will be a core feature of the application, allowing users to add or remove extentions as required and for additional extentions to be added by the community.
Modularity will be a core feature of the application, allowing users to add or remove extentions as required. We will implement features in this priority order:
A few initial extentions will be added to the application to provide additional functionality as required. These will include:
**Notes Extension:**
- Rich text editor with markdown support
- Media embedding (images, links, etc.)
- Tagging and categorization system
- Search functionality with content indexing
- Export options (PDF, Markdown, HTML)
**Reminders Extension:**
- Time-based and location-based reminders
- Recurring reminder options
- Priority levels and categorization
- Notification system with multiple alert methods
- Calendar view of upcoming reminders
**To-Do List Extension:**
- Task creation with deadlines and priorities
- Subtasks and dependencies
- Progress tracking and completion history
- List organization and filtering options
- Integration with reminder system
**AI Chat Extension:**
- Natural language interaction with AI assistants
**1. AI Chat Extension (Phase 1):**
- Natural language interaction with personality selector
- Customizable AI personas (professional, creative, technical, etc.)
- Context-aware conversations with memory
- Integration with other extensions (create notes, set reminders, etc.)
- Customizable AI personalities and capabilities
- Integration with other extensions
- Support for multiple AI providers
**Extension Framework:**
- Standardized API documentation for third-party developers
- Extension verification and security review process
- User-friendly installation and management interface
- Extension settings and configuration options
- Inter-extension communication protocols
**2. User Goal Planner Extension (Phase 2):**
- Short/medium/long-term goal setting and tracking
- Progress visualization and milestone management
- Actionable steps generation
- Goal categorization and prioritization
- Smart recommendations based on user patterns
**3. Reminders & Calendar Extension (Phase 3):**
- Time-based and location-based alerts
- Recurring event support
- Priority levels and categorization
- Potential integration with Goal Planner in a unified calendar interface
- Visual timeline view of upcoming events and goals
**4. Core Productivity Suite (Phase 4):**
- Notes with rich text/markdown
- To-Do lists with subtasks
- File organization system
### AI Integration
For initial development we will provide integration with Claude and LM Studio.
@@ -174,22 +163,11 @@ Long-term maintenance plan includes:
### Future Development
Plans for future development include:
- **Mobile Apps**: Native Android and iOS applications
- **Cloud Sync**: Secure synchronization across devices
- **Marketplace**: Community extension marketplace with ratings and reviews
- **Advanced AI Features**: Support for additional AI providers and capabilities
- **Automation**: Workflow automation between extensions
- **Voice Interface**: Natural language voice commands
- **Analytics Dashboard**: Optional usage statistics and insights
- **Additional Extensions**:
- Calendar Integration
- Email Client
- Weather
- News Aggregator
- Finance Tracker
- Knowledge Base
- Health Tracker
- Mobile Apps
- Cloud Sync
- Marketplace
- Workflow Automation
- Voice Interface
### Conclusion
The Pocket Assistant aims to be a versatile, extensible personal assistant that adapts to users' needs. By focusing on modularity, security, and user experience, the application will provide value while respecting user privacy and preferences. The initial MVP will establish core functionality, with a clear roadmap for future enhancements and community involvement.

View File

@@ -34,111 +34,143 @@ This document outlines the implementation plan for the Pocket Assistant applicat
- Initial project documentation
- CI/CD pipeline for automated testing and builds
## Phase 2: Initial Extensions and Local Functionality (Weeks 5-10)
### Goals
- Implement the core extensions (Notes, Reminders, To-Do List)
- Establish extension interoperability
- Create user authentication for local use
### Tasks
1. **Notes Extension (Weeks 5-6)**
- Implement rich text editor with markdown support
- Create note organization system (folders, tags)
- Develop search functionality
- Add export capabilities (PDF, Markdown, HTML)
2. **Reminders Extension (Weeks 7-8)**
- Implement time-based reminder system
- Create recurring reminder capabilities
- Develop notification system
- Design and implement calendar view
3. **To-Do List Extension (Weeks 9-10)**
- Implement task creation and management
- Develop subtask functionality
- Create progress tracking features
- Implement filtering and organization options
- Integrate with the Reminders extension
### Deliverables
- Fully functional Notes extension
- Complete Reminders extension with notifications
- Comprehensive To-Do List with subtask capability
- Extension interoperability framework
- User documentation for core extensions
## Phase 3: AI Integration and Security (Weeks 11-16)
## Phase 2: AI Integration and AI Chat Extension (Weeks 5-10)
### Goals
- Implement AI integration (Claude and LM Studio)
- Enhance application security
- Develop the AI Chat extension
- Develop the AI Chat extension with personality selector
- Establish AI security and privacy controls
### Tasks
1. **AI Integration Framework (Weeks 11-12)**
1. **AI Integration Framework (Weeks 5-6)**
- Implement Claude API integration
- Develop LM Studio local model support
- Create AI provider abstraction layer
- Implement API key management and security
2. **AI Chat Extension (Weeks 13-14)**
2. **AI Chat Extension Development (Weeks 7-8)**
- Develop conversational interface
- Implement context management
- Create extension integration capabilities
- Add command parsing for application control
- Implement AI personality selector and customization
- Create context management for conversations
- Implement chat history and memory features
3. **Security Implementation (Weeks 15-16)**
- Implement end-to-end encryption for sensitive data
- Develop authentication system
- Create permissions framework for extensions
- Conduct initial security audit
- Implement privacy controls for AI interactions
3. **AI Security and Integration (Weeks 9-10)**
- Implement end-to-end encryption for chat data
- Create extension integration capabilities for AI
- Add command parsing for application control
- Develop privacy controls for AI interactions
- Implement performance optimizations for chat experience
### Deliverables
- Functional AI Chat extension
- Fully functional AI Chat extension
- AI personality selection and customization
- Claude and LM Studio integration
- Secure API key storage
- Authentication system
- Extension permissions framework
- Privacy controls and documentation
## Phase 4: Cross-Platform Compatibility and Testing (Weeks 17-22)
## Phase 3: User Goal Planner Extension (Weeks 11-16)
### Goals
- Ensure compatibility across Windows, macOS, and Linux
- Implement comprehensive testing
- Optimize performance
- Implement the User Goal Planner extension
- Develop goal tracking and visualization
- Create AI-assisted goal recommendations
### Tasks
1. **Cross-Platform Implementation (Weeks 17-18)**
- Test and optimize for Windows 10+ with native notification support
- Implement macOS-specific adaptations and optimizations
- Develop Linux support for major distributions
- Create platform-specific installation packages
1. **Goal Planning Foundation (Weeks 11-12)**
- Implement goal creation and management system
- Develop short/medium/long-term goal categorization
- Create goal progress tracking features
- Implement milestone management
2. **Testing Implementation (Weeks 19-20)**
- Develop unit tests for core components
- Implement integration tests for extensions
- Create UI tests for the interface
- Establish performance benchmarks
- Conduct accessibility testing
2. **Goal Visualization and Analytics (Weeks 13-14)**
- Develop progress visualization tools
- Create goal timeline and roadmap views
- Implement analytics for goal achievement rates
- Design notification system for goal updates
3. **Performance Optimization (Weeks 21-22)**
- Profile application performance
- Optimize data access and storage
- Enhance UI responsiveness
- Reduce resource usage
- Implement application startup optimizations
3. **AI-Enhanced Goal Planning (Weeks 15-16)**
- Integrate AI for goal recommendations
- Implement smart actionable steps generation
- Create adaptive goal adjustment based on progress
- Develop goal prioritization algorithms
- Integrate with AI Chat for conversational goal management
### Deliverables
- Platform-specific packages for Windows, macOS, and Linux
- Comprehensive test suite
- Performance optimization report
- Accessibility compliance documentation
- Installation guides for each platform
- Comprehensive User Goal Planner extension
- Goal visualization and progress tracking
- AI-assisted goal recommendations
- Integration with AI Chat extension
- User documentation for goal planning features
## Phase 5: Polish, Documentation, and Initial Release (Weeks 23-26)
## Phase 4: Reminders & Calendar Extension (Weeks 17-22)
### Goals
- Implement Reminders & Calendar functionality
- Develop integration with the Goal Planner
- Establish comprehensive time management system
### Tasks
1. **Reminders System Implementation (Weeks 17-18)**
- Develop time-based reminder system
- Create recurring reminder capabilities
- Implement notification system
- Design priority levels and categorization features
2. **Calendar Interface Development (Weeks 19-20)**
- Create calendar view with different time scales
- Implement event creation and management
- Develop visual timeline for upcoming events
- Design location-based alert system
3. **Goal Planner Integration (Weeks 21-22)**
- Implement unified interface with Goal Planner
- Create synchronized view of goals and reminders
- Develop AI suggestions for scheduling
- Build smart time blocking features
- Test and optimize the integrated experience
### Deliverables
- Complete Reminders & Calendar extension
- Unified view with Goal Planner (optional)
- Flexible notification system
- Time visualization tools
- Integration documentation and user guides
## Phase 5: Core Productivity Suite and Testing (Weeks 23-28)
### Goals
- Implement remaining productivity extensions (Notes, To-Do List)
- Ensure cross-platform compatibility
- Conduct comprehensive testing
### Tasks
1. **Notes Extension (Weeks 23-24)**
- Implement rich text editor with markdown support
- Create note organization system (folders, tags)
- Develop search functionality
- Add export capabilities (PDF, Markdown, HTML)
2. **To-Do List Extension (Weeks 25-26)**
- Implement task creation and management
- Develop subtask functionality
- Create filtering and organization options
- Integrate with other extensions
3. **Cross-Platform Testing (Weeks 27-28)**
- Test and optimize for Windows, macOS, and Linux
- Implement platform-specific adaptations
- Conduct performance testing
- Perform accessibility testing
- Create platform-specific installation packages
### Deliverables
- Notes extension with rich text support
- To-Do List with subtask capability
- Platform-specific packages
- Comprehensive test reports
- Performance optimization documentation
## Phase 6: Polish, Documentation, and Initial Release (Weeks 29-32)
### Goals
- Prepare the application for initial release
@@ -146,19 +178,19 @@ This document outlines the implementation plan for the Pocket Assistant applicat
- Establish maintenance procedures
### Tasks
1. **Final Polish (Week 23)**
1. **Final Polish (Week 29)**
- Conduct UI/UX review and refinement
- Implement final visual design elements
- Address any outstanding bugs or issues
- Perform end-to-end testing
2. **Documentation Completion (Week 24)**
2. **Documentation Completion (Week 30)**
- Finalize user documentation
- Complete developer documentation for the extension API
- Create installation and upgrade guides
- Develop troubleshooting resources
3. **Release Preparation (Weeks 25-26)**
3. **Release Preparation (Weeks 31-32)**
- Establish release channels (alpha, beta, stable)
- Implement the auto-update mechanism
- Create the project website and documentation portal
@@ -172,7 +204,7 @@ This document outlines the implementation plan for the Pocket Assistant applicat
- Project website and user portal
- Feedback and issue reporting system
## Phase 6: Future Development and Community Building (Post-Initial Release)
## Phase 7: Future Development and Community Building (Post-Initial Release)
### Goals
- Implement additional extensions

View File

@@ -0,0 +1,139 @@
# Phase 4: Reminders & Calendar Extension
**Timeline: Weeks 17-22**
This phase focuses on implementing the Reminders & Calendar functionality with potential integration with the Goal Planner extension.
## Week 17-18: Reminders System Implementation
### Time-based Reminders
- [ ] Design reminder data structure and schema
- [ ] Implement reminder creation interface
- [ ] Develop reminder editing and deletion
- [ ] Create time-based triggering system
- [ ] Build notification delivery mechanism
### Recurring Reminders
- [ ] Implement recurring pattern definition
- [ ] Create daily/weekly/monthly/yearly options
- [ ] Develop custom recurrence patterns
- [ ] Build exception handling for recurrence
- [ ] Design recurrence preview and validation
### Notification System
- [ ] Implement multi-platform notifications
- [ ] Create notification customization options
- [ ] Develop notification acknowledgment tracking
- [ ] Build notification snooze functionality
- [ ] Design notification grouping and batching
### Priority and Categorization
- [ ] Implement priority levels for reminders
- [ ] Create category management for reminders
- [ ] Develop filtering by priority and category
- [ ] Build sorting options for reminder lists
- [ ] Design visual indicators for priority levels
## Week 19-20: Calendar Interface Development
### Calendar View
- [ ] Design and implement monthly calendar view
- [ ] Create weekly and daily view options
- [ ] Develop agenda/list view alternative
- [ ] Build view customization options
- [ ] Implement print and export functionality
### Event Management
- [ ] Implement event creation interface
- [ ] Create event editing and deletion
- [ ] Develop all-day vs. time-specific events
- [ ] Build multi-day event handling
- [ ] Design event details and description
### Timeline Visualization
- [ ] Create visual timeline of upcoming events
- [ ] Implement zooming and scrolling
- [ ] Develop filtering and customization
- [ ] Build event clustering for busy periods
- [ ] Design color coding by category/source
### Location-based Alerts
- [ ] Implement location awareness (if appropriate)
- [ ] Create geofencing for location triggers
- [ ] Develop location suggestion and search
- [ ] Build favorite locations management
- [ ] Design privacy controls for location data
## Week 21-22: Goal Planner Integration
### Unified Interface
- [ ] Design combined goal and reminder view
- [ ] Implement visual integration between systems
- [ ] Create consistent interaction patterns
- [ ] Build navigation between related items
- [ ] Develop unified search across both systems
### Synchronized View
- [ ] Implement goal deadlines as calendar events
- [ ] Create milestone visualization on calendar
- [ ] Develop progress tracking within calendar
- [ ] Build reminder creation from goals
- [ ] Design visual distinction between types
### AI Scheduling Suggestions
- [ ] Integrate AI for optimal scheduling
- [ ] Create time allocation recommendations
- [ ] Develop conflict detection and resolution
- [ ] Build workload balancing suggestions
- [ ] Design goal-aligned time management
### Time Blocking
- [ ] Implement time blocking interface
- [ ] Create block customization and templates
- [ ] Develop recurring time blocks
- [ ] Build productivity analytics for blocks
- [ ] Design block visualization on calendar
### Integration Testing
- [ ] Test goal-calendar synchronization
- [ ] Verify notification delivery
- [ ] Validate data consistency between systems
- [ ] Ensure performance with large datasets
- [ ] Confirm backup and restore functionality
## Final Deliverables Checklist
### Reminders System
- [ ] Reminder creation and management works correctly
- [ ] Recurring reminders function as expected
- [ ] Notifications are delivered reliably
- [ ] Priority and categorization are effective
- [ ] User can easily manage their reminders
### Calendar Functionality
- [ ] Calendar view displays events clearly
- [ ] Event management is intuitive
- [ ] Timeline provides useful upcoming view
- [ ] Location-based features work as intended
- [ ] Calendar data can be exported/shared
### Goal Planner Integration
- [ ] Unified interface is cohesive and intuitive
- [ ] Synchronized view shows relevant information
- [ ] AI suggestions are helpful for scheduling
- [ ] Time blocking enhances productivity
- [ ] Systems work together without conflicts
### Documentation
- [ ] Reminders & Calendar features are documented
- [ ] Integration with Goal Planner is explained
- [ ] Best practices for time management are included
- [ ] Export and sharing options are described
- [ ] Privacy considerations for location are addressed
## Development Standards
- Ensure reliable notification delivery across platforms
- Test timezone handling thoroughly
- Optimize calendar rendering for performance
- Create comprehensive tests for recurring pattern logic
- Document all reminder and calendar interfaces
- Test with realistic usage patterns and data volumes

View File

@@ -0,0 +1,139 @@
# Phase 3: User Goal Planner Extension
**Timeline: Weeks 11-16**
This phase focuses on implementing the User Goal Planner extension for short, medium, and long-term goal setting and tracking.
## Week 11-12: Goal Planning Foundation
### Goal Management System
- [ ] Design goal data structure and schema
- [ ] Implement goal creation interface
- [ ] Develop goal editing and updating
- [ ] Create goal deletion and archiving
- [ ] Build goal categorization system
### Goal Categorization
- [ ] Implement short/medium/long-term categorization
- [ ] Create custom category management
- [ ] Develop goal tagging system
- [ ] Build goal filtering and sorting
- [ ] Design goal priority system
### Progress Tracking
- [ ] Implement progress percentage calculation
- [ ] Create milestone tracking system
- [ ] Develop goal status states (not started, in progress, completed, etc.)
- [ ] Build progress history and trends
- [ ] Design progress visualization indicators
### Milestone Management
- [ ] Create milestone creation interface
- [ ] Implement milestone dependencies
- [ ] Develop milestone completion tracking
- [ ] Build milestone notification system
- [ ] Design milestone adjustment capabilities
## Week 13-14: Goal Visualization and Analytics
### Progress Visualization
- [ ] Design and implement progress charts
- [ ] Create goal completion timelines
- [ ] Develop milestone visualization
- [ ] Build category-based progress views
- [ ] Implement comparison to planned schedule
### Goal Timeline View
- [ ] Create visual timeline interface
- [ ] Implement goal placement on timeline
- [ ] Develop timeline zooming and navigation
- [ ] Build timeline filtering by category
- [ ] Design timeline export capabilities
### Analytics Implementation
- [ ] Create goal completion rate analytics
- [ ] Implement trending and patterns analysis
- [ ] Develop time-to-completion statistics
- [ ] Build category performance metrics
- [ ] Design personal productivity insights
### Notification System
- [ ] Implement goal deadline notifications
- [ ] Create milestone approach alerts
- [ ] Develop progress update reminders
- [ ] Build achievement celebration notifications
- [ ] Design notification preference management
## Week 15-16: AI-Enhanced Goal Planning
### AI Goal Recommendations
- [ ] Integrate AI for goal suggestions
- [ ] Implement personalized goal recommendations
- [ ] Create goal difficulty estimation
- [ ] Build realistic timeline suggestions
- [ ] Develop goal balancing across categories
### Actionable Steps Generation
- [ ] Implement AI-assisted step generation
- [ ] Create step sequencing and dependencies
- [ ] Develop step effort estimation
- [ ] Build step completion tracking
- [ ] Design step adjustment capabilities
### Adaptive Goal Adjustment
- [ ] Implement progress-based goal adjustment
- [ ] Create adaptive milestone management
- [ ] Develop deadline renegotiation system
- [ ] Build goal scope refinement
- [ ] Design intelligent priority shifting
### Goal Prioritization
- [ ] Implement AI-assisted prioritization
- [ ] Create impact vs. effort analysis
- [ ] Develop deadline-based prioritization
- [ ] Build category balancing algorithm
- [ ] Design dependency-aware prioritization
### AI Chat Integration
- [ ] Implement conversational goal management
- [ ] Create natural language goal creation
- [ ] Develop chat-based progress updates
- [ ] Build goal inquiry and reporting via chat
- [ ] Design AI coaching conversations for goals
## Final Deliverables Checklist
### Goal Planning System
- [ ] Goal creation and management works smoothly
- [ ] Short/medium/long-term categorization functions correctly
- [ ] Progress tracking provides accurate information
- [ ] Milestones can be created and managed effectively
- [ ] Goals can be categorized and prioritized
### Visualization and Analytics
- [ ] Progress visualization is clear and informative
- [ ] Timeline view shows goals in chronological order
- [ ] Analytics provide useful insights
- [ ] Notifications are timely and relevant
- [ ] Reports can be generated and exported
### AI Enhancement
- [ ] AI recommendations are helpful and relevant
- [ ] Step generation creates actionable plans
- [ ] Goal adjustments adapt to changing circumstances
- [ ] Prioritization helps users focus on important goals
- [ ] Chat integration allows natural interaction with goals
### Documentation
- [ ] Goal Planner usage is clearly documented
- [ ] AI features are explained with examples
- [ ] Integration with other extensions is described
- [ ] Best practices for goal setting are included
- [ ] Export and backup procedures are documented
## Development Standards
- Create comprehensive tests for goal tracking logic
- Ensure goal data is stored securely
- Document all goal-related interfaces
- Optimize visualization for performance
- Create meaningful AI training for goal recommendations
- Test with various goal scenarios and timeframes

View File

@@ -0,0 +1,141 @@
# Phase 2: AI Integration and AI Chat Extension
**Timeline: Weeks 5-10**
This phase focuses on implementing the AI integration and developing the AI Chat extension with personality selector.
## Week 5-6: AI Integration Framework
### Claude Integration
- [ ] Research Claude API capabilities and limitations
- [ ] Set up Claude API authentication
- [ ] Implement Claude API client wrapper
- [ ] Create model selection interface
- [ ] Implement context window management
- [ ] Design streaming response handling
### LM Studio Integration
- [ ] Set up integration with LM Studio for local models
- [ ] Implement model selection and management interface
- [ ] Create performance optimization for different hardware
- [ ] Develop parameter adjustment interface
- [ ] Test custom model loading capabilities
### AI Provider Framework
- [ ] Design and implement AI provider abstraction layer
- [ ] Create provider switching mechanism
- [ ] Implement fallback strategies
- [ ] Design common interface for different AI providers
- [ ] Build provider-specific optimizations
### API Key Management
- [ ] Design secure API key storage system
- [ ] Implement encryption for API keys
- [ ] Create user interface for API key management
- [ ] Build key validation mechanism
- [ ] Implement key rotation support
## Week 7-8: AI Chat Extension Development
### Conversational Interface
- [ ] Design and implement chat interface
- [ ] Create message threading system
- [ ] Implement real-time message streaming
- [ ] Build typing indicators and response status
- [ ] Design and implement file/media attachment support
### AI Personality Selector
- [ ] Design personality system architecture
- [ ] Create predefined personality profiles
- [ ] Implement personality customization interface
- [ ] Build personality switching mechanism
- [ ] Develop personality parameter management
- [ ] Implement personality persistence between sessions
### Context Management
- [ ] Design conversation history storage
- [ ] Implement efficient context window management
- [ ] Create dynamic context prioritization
- [ ] Build context summarization for long conversations
- [ ] Implement context attachment from other extensions
### Chat History and Memory
- [ ] Design and implement chat history storage
- [ ] Create search and filtering for past conversations
- [ ] Implement conversation export capabilities
- [ ] Build conversation pinning and categorization
- [ ] Develop conversation continuation from history
## Week 9-10: AI Security and Integration
### Chat Security
- [ ] Implement end-to-end encryption for conversations
- [ ] Create secure message storage
- [ ] Design and implement deletion controls
- [ ] Build logging and auditing features
- [ ] Implement content filtering options
### Extension Integration
- [ ] Design AI extension API
- [ ] Implement extension access to AI capabilities
- [ ] Create context sharing between AI and extensions
- [ ] Develop command delegation to extensions
- [ ] Build extension communication framework
### Command Parsing
- [ ] Design command recognition system
- [ ] Implement command parsing and routing
- [ ] Create command execution framework
- [ ] Build command help and suggestion system
- [ ] Develop natural language command understanding
### Privacy Controls
- [ ] Design comprehensive privacy settings
- [ ] Implement data retention controls
- [ ] Create data export and deletion capabilities
- [ ] Build privacy policy integration
- [ ] Develop transparency reporting features
### Performance Optimization
- [ ] Profile AI response performance
- [ ] Implement response caching where appropriate
- [ ] Optimize context management for speed
- [ ] Reduce memory consumption for long conversations
- [ ] Implement adaptive quality settings based on device
## Final Deliverables Checklist
### AI Chat Extension
- [ ] Chat interface works fluidly with real-time updates
- [ ] AI personalities can be selected and customized
- [ ] Conversations maintain context appropriately
- [ ] History is properly stored and retrievable
- [ ] Performance is optimized for different devices
### AI Integration
- [ ] Claude API integration functions correctly
- [ ] LM Studio integration works for local models
- [ ] Provider abstraction layer functions as intended
- [ ] API keys are stored securely
- [ ] Switching between providers works seamlessly
### Security and Privacy
- [ ] End-to-end encryption is properly implemented
- [ ] Privacy controls function as expected
- [ ] Data retention policies are enforced
- [ ] User data is handled according to best practices
- [ ] Security testing has been conducted
### Documentation
- [ ] AI Chat extension usage is documented
- [ ] API key setup instructions are clear
- [ ] AI capabilities and limitations are documented
- [ ] Privacy practices are clearly explained
- [ ] Extension integration API is documented
## Development Standards
- Always create unit tests for new AI functionality
- Minimize context window usage for efficiency
- Document all AI-related interfaces and behaviors
- Ensure privacy by design in all AI features
- Create meaningful and descriptive AI prompts
- Test with multiple AI models and personalities