feat(#82): Implement personality module #107

Merged
jason.woltje merged 2 commits from feature/82-personality into develop 2026-01-30 01:43:56 +00:00
Owner

Summary

Adds personality configuration for AI assistant customization.

Database Schema

  • Personality model with name, tone, formality level, system prompt template
  • FormalityLevel enum (VERY_CASUAL → VERY_FORMAL)
  • Workspace-scoped with default personality support

API Endpoints

  • GET /personalities - List all
  • GET /personalities/default - Get workspace default
  • GET /personalities/:id - Get one
  • POST /personalities - Create
  • PUT /personalities/:id - Update
  • DELETE /personalities/:id - Delete
  • POST /personalities/:id/preview - Preview formatted prompt

Prompt Formatter Service

  • Variable interpolation: {{userName}}, {{workspaceName}}, {{currentDate}}
  • Custom variables: {{custom_*}}
  • Automatic formality modifiers
  • Tone directives injection

Tests

  • 33 tests passing (service, controller, formatter)

QA Checklist

  • Create personality works
  • Default personality auto-selected
  • Prompt preview shows interpolated values
  • Formality levels affect output

Closes #82

## Summary Adds personality configuration for AI assistant customization. ## Database Schema - `Personality` model with name, tone, formality level, system prompt template - `FormalityLevel` enum (VERY_CASUAL → VERY_FORMAL) - Workspace-scoped with default personality support ## API Endpoints - `GET /personalities` - List all - `GET /personalities/default` - Get workspace default - `GET /personalities/:id` - Get one - `POST /personalities` - Create - `PUT /personalities/:id` - Update - `DELETE /personalities/:id` - Delete - `POST /personalities/:id/preview` - Preview formatted prompt ## Prompt Formatter Service - Variable interpolation: `{{userName}}`, `{{workspaceName}}`, `{{currentDate}}` - Custom variables: `{{custom_*}}` - Automatic formality modifiers - Tone directives injection ## Tests - 33 tests passing (service, controller, formatter) ## QA Checklist - [ ] Create personality works - [ ] Default personality auto-selected - [ ] Prompt preview shows interpolated values - [ ] Formality levels affect output Closes #82
jason.woltje added 1 commit 2026-01-30 01:39:00 +00:00
- Add PromptFormatterService for formatting system prompts based on personality
- Support context variable interpolation (userName, workspaceName, etc.)
- Add formality level modifiers (VERY_CASUAL to VERY_FORMAL)
- Add template validation for custom variables
- Add preview endpoint for formatted prompts
- Fix UpdatePersonalityDto to avoid @nestjs/mapped-types dependency
- Update PersonalitiesController with new endpoints
- Add comprehensive tests (33 passing tests)

Closes #82
jason.woltje added 1 commit 2026-01-30 01:43:42 +00:00
jason.woltje merged commit 181fb6ce2a into develop 2026-01-30 01:43:56 +00:00
jason.woltje deleted branch feature/82-personality 2026-01-30 01:43:57 +00:00
Sign in to join this conversation.