UNPKG

claude-buddy

Version:

Your friendly AI development companion for Claude Code - supercharge Claude Code with intelligent workflows and safety features

465 lines (255 loc) 12.3 kB
[**claude-buddy v1.0.0**](../../README.md) *** [claude-buddy](../../modules.md) / [PersonaSystem](../README.md) / PersonaSystem # Class: PersonaSystem Defined in: [personas/index.ts:120](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L120) ## PersonaSystem Main coordinating class for the entire persona system. Provides a unified interface for persona activation, learning, and collaboration management. ### Responsibilities - **Initialization**: Sets up all persona system components - **Input Processing**: Analyzes user input and activates appropriate personas - **Flag Parsing**: Handles manual persona overrides and configuration flags - **Learning Integration**: Records usage patterns and adapts behavior - **Analytics**: Provides performance metrics and usage insights ### Usage Patterns #### Basic Usage ```typescript const system = new PersonaSystem(); await system.initialize(); const result = await system.processUserInput("analyze security issues"); ``` #### Manual Persona Selection ```typescript const result = await system.processUserInput( "help with performance --persona-security --persona-performance" ); ``` #### Learning and Feedback ```typescript await system.provideFeedback({ personas: ["security", "performance"], rating: 5, comments: "Excellent analysis" }); ``` ## Constructors ### Constructor > **new PersonaSystem**(`configDir?`): `PersonaSystem` Defined in: [personas/index.ts:136](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L136) #### Parameters ##### configDir? `string` #### Returns `PersonaSystem` ## Properties ### manager > `private` **manager**: [`PersonaManager`](PersonaManager.md) Defined in: [personas/index.ts:122](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L122) Core persona management component *** ### flagParser > `private` **flagParser**: [`PersonaFlagParser`](PersonaFlagParser.md) Defined in: [personas/index.ts:125](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L125) Flag parsing and validation component *** ### learningEngine > `private` **learningEngine**: [`PersonaLearningEngine`](PersonaLearningEngine.md) Defined in: [personas/index.ts:128](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L128) Learning and adaptation component *** ### isInitialized > `private` **isInitialized**: `boolean` = `false` Defined in: [personas/index.ts:131](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L131) System initialization state *** ### config > `private` **config**: `unknown` = `null` Defined in: [personas/index.ts:134](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L134) System configuration data ## Methods ### Core #### initialize() > **initialize**(): `Promise`\<`boolean`\> Defined in: [personas/index.ts:166](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L166) Initialize the complete persona system. Sets up all persona system components including: - Persona manager with 11 specialized personas - Auto-activation engine with context detection - Learning engine with pattern recognition Must be called before using any other persona system functionality. ##### Returns `Promise`\<`boolean`\> Promise resolving to true if initialization succeeds, false otherwise ##### Example ```typescript const personaSystem = new PersonaSystem(); const success = await personaSystem.initialize(); if (success) { console.log("Persona system ready!"); } ``` *** #### processInput() > **processInput**(`userInput`, `context`): `Promise`\<[`ProcessingResult`](../interfaces/ProcessingResult.md)\> Defined in: [personas/index.ts:214](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L214) Process user input and activate appropriate personas. This is the main entry point for persona system functionality. It: 1. Parses command-line flags for manual persona overrides 2. Validates flag combinations and constraints 3. Applies learning recommendations from previous usage 4. Activates personas through auto-detection or manual selection 5. Records interaction for future learning ##### Parameters ###### userInput `string` The user's input string, potentially with persona flags ###### context `Partial`\<[`InputContext`](../../types/interfaces/InputContext.md)\> = `{}` Additional context including files, command type, project info ##### Returns `Promise`\<[`ProcessingResult`](../interfaces/ProcessingResult.md)\> Promise resolving to processing result with activated personas and prompts ##### Example ```typescript // Automatic activation based on context const result = await system.processInput( "Review this code for security issues", { files: ["auth.ts"], command: "review" } ); // Manual persona override const result = await system.processInput( "Help with performance --persona-security --persona-performance" ); ``` ### Other #### handleManualActivation() > `private` **handleManualActivation**(`flagResult`, `context`): `Promise`\<[`PersonaActivationResult`](../../types/interfaces/PersonaActivationResult.md)\> Defined in: [personas/index.ts:290](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L290) Handle manual persona activation via flags ##### Parameters ###### flagResult [`ParsedFlags`](../../types/interfaces/ParsedFlags.md) ###### context [`InputContext`](../../types/interfaces/InputContext.md) ##### Returns `Promise`\<[`PersonaActivationResult`](../../types/interfaces/PersonaActivationResult.md)\> *** #### handleAutoActivation() > `private` **handleAutoActivation**(`cleanedInput`, `context`): `Promise`\<[`PersonaActivationResult`](../../types/interfaces/PersonaActivationResult.md)\> Defined in: [personas/index.ts:311](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L311) Handle automatic persona activation ##### Parameters ###### cleanedInput `string` ###### context [`InputContext`](../../types/interfaces/InputContext.md) ##### Returns `Promise`\<[`PersonaActivationResult`](../../types/interfaces/PersonaActivationResult.md)\> *** #### recordActivationForLearning() > `private` **recordActivationForLearning**(`personaResult`, `context`): `void` Defined in: [personas/index.ts:321](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L321) Record activation data for learning improvement ##### Parameters ###### personaResult [`PersonaActivationResult`](../../types/interfaces/PersonaActivationResult.md) ###### context [`InputContext`](../../types/interfaces/InputContext.md) ##### Returns `void` *** #### generateEnhancedPrompt() > `private` **generateEnhancedPrompt**(`personaResult`, `context`): [`GeneratedPrompt`](../../types/interfaces/GeneratedPrompt.md) Defined in: [personas/index.ts:343](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L343) Generate enhanced prompt combining persona content with system integration ##### Parameters ###### personaResult [`PersonaActivationResult`](../../types/interfaces/PersonaActivationResult.md) ###### context [`InputContext`](../../types/interfaces/InputContext.md) ##### Returns [`GeneratedPrompt`](../../types/interfaces/GeneratedPrompt.md) *** #### provideFeedback() > **provideFeedback**(`feedback`): `void` Defined in: [personas/index.ts:388](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L388) Provide feedback on persona performance for learning ##### Parameters ###### feedback [`PersonaFeedback`](../../types/interfaces/PersonaFeedback.md) ##### Returns `void` *** #### getAnalytics() > **getAnalytics**(): [`SystemAnalytics`](../interfaces/SystemAnalytics.md) Defined in: [personas/index.ts:399](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L399) Get system analytics and performance metrics ##### Returns [`SystemAnalytics`](../interfaces/SystemAnalytics.md) *** #### getHelp() > **getHelp**(): [`PersonaSystemHelp`](../interfaces/PersonaSystemHelp.md) Defined in: [personas/index.ts:414](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L414) Get help information for persona system usage ##### Returns [`PersonaSystemHelp`](../interfaces/PersonaSystemHelp.md) *** #### reset() > **reset**(): `Promise`\<`void`\> Defined in: [personas/index.ts:437](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L437) Reset system state (useful for new sessions) ##### Returns `Promise`\<`void`\> *** #### isReady() > **isReady**(): `boolean` Defined in: [personas/index.ts:445](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L445) Check if persona system is available and ready ##### Returns `boolean` *** #### getActivePersonas() > **getActivePersonas**(): [`ActivePersona`](../../types/interfaces/ActivePersona.md)[] Defined in: [personas/index.ts:454](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L454) Get current active personas ##### Returns [`ActivePersona`](../../types/interfaces/ActivePersona.md)[] *** #### isPersonaActive() > **isPersonaActive**(`personaName`): `boolean` Defined in: [personas/index.ts:461](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L461) Check if specific persona is currently active ##### Parameters ###### personaName `string` ##### Returns `boolean` *** #### getCommandRecommendations() > **getCommandRecommendations**(`command`): `string`[] Defined in: [personas/index.ts:468](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L468) Get persona-specific recommendations for a command ##### Parameters ###### command `string` ##### Returns `string`[] *** #### createEmptyPrompt() > `private` **createEmptyPrompt**(): [`GeneratedPrompt`](../../types/interfaces/GeneratedPrompt.md) Defined in: [personas/index.ts:473](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L473) ##### Returns [`GeneratedPrompt`](../../types/interfaces/GeneratedPrompt.md) *** #### createEmptyFlags() > `private` **createEmptyFlags**(): [`ParsedFlags`](../../types/interfaces/ParsedFlags.md) Defined in: [personas/index.ts:481](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L481) ##### Returns [`ParsedFlags`](../../types/interfaces/ParsedFlags.md) *** #### createEmptyValidation() > `private` **createEmptyValidation**(): [`FlagValidationResult`](../../types/interfaces/FlagValidationResult.md) Defined in: [personas/index.ts:505](https://github.com/gsetsero/assistant-integration/blob/911ddf7680199ad668404c191ed66335473fdc65/claude-buddy/src/personas/index.ts#L505) ##### Returns [`FlagValidationResult`](../../types/interfaces/FlagValidationResult.md)