@auxiora/personality 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/LICENSE +191 -0
  2. package/dist/__tests__/builder.test.d.ts +2 -0
  3. package/dist/__tests__/builder.test.d.ts.map +1 -0
  4. package/dist/__tests__/builder.test.js +67 -0
  5. package/dist/__tests__/builder.test.js.map +1 -0
  6. package/dist/__tests__/conversation-builder.test.d.ts +2 -0
  7. package/dist/__tests__/conversation-builder.test.d.ts.map +1 -0
  8. package/dist/__tests__/conversation-builder.test.js +324 -0
  9. package/dist/__tests__/conversation-builder.test.js.map +1 -0
  10. package/dist/__tests__/escalation.test.d.ts +2 -0
  11. package/dist/__tests__/escalation.test.d.ts.map +1 -0
  12. package/dist/__tests__/escalation.test.js +143 -0
  13. package/dist/__tests__/escalation.test.js.map +1 -0
  14. package/dist/__tests__/manager.test.d.ts +2 -0
  15. package/dist/__tests__/manager.test.d.ts.map +1 -0
  16. package/dist/__tests__/manager.test.js +96 -0
  17. package/dist/__tests__/manager.test.js.map +1 -0
  18. package/dist/__tests__/parser.test.d.ts +2 -0
  19. package/dist/__tests__/parser.test.d.ts.map +1 -0
  20. package/dist/__tests__/parser.test.js +89 -0
  21. package/dist/__tests__/parser.test.js.map +1 -0
  22. package/dist/__tests__/security-floor.test.d.ts +2 -0
  23. package/dist/__tests__/security-floor.test.d.ts.map +1 -0
  24. package/dist/__tests__/security-floor.test.js +183 -0
  25. package/dist/__tests__/security-floor.test.js.map +1 -0
  26. package/dist/builder.d.ts +6 -0
  27. package/dist/builder.d.ts.map +1 -0
  28. package/dist/builder.js +65 -0
  29. package/dist/builder.js.map +1 -0
  30. package/dist/conversation-builder.d.ts +30 -0
  31. package/dist/conversation-builder.d.ts.map +1 -0
  32. package/dist/conversation-builder.js +232 -0
  33. package/dist/conversation-builder.js.map +1 -0
  34. package/dist/escalation.d.ts +35 -0
  35. package/dist/escalation.d.ts.map +1 -0
  36. package/dist/escalation.js +134 -0
  37. package/dist/escalation.js.map +1 -0
  38. package/dist/index.d.ts +21 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +20 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/manager.d.ts +28 -0
  43. package/dist/manager.d.ts.map +1 -0
  44. package/dist/manager.js +114 -0
  45. package/dist/manager.js.map +1 -0
  46. package/dist/marketplace/__tests__/scanner.test.d.ts +2 -0
  47. package/dist/marketplace/__tests__/scanner.test.d.ts.map +1 -0
  48. package/dist/marketplace/__tests__/scanner.test.js +134 -0
  49. package/dist/marketplace/__tests__/scanner.test.js.map +1 -0
  50. package/dist/marketplace/__tests__/schema.test.d.ts +2 -0
  51. package/dist/marketplace/__tests__/schema.test.d.ts.map +1 -0
  52. package/dist/marketplace/__tests__/schema.test.js +243 -0
  53. package/dist/marketplace/__tests__/schema.test.js.map +1 -0
  54. package/dist/marketplace/scanner.d.ts +19 -0
  55. package/dist/marketplace/scanner.d.ts.map +1 -0
  56. package/dist/marketplace/scanner.js +62 -0
  57. package/dist/marketplace/scanner.js.map +1 -0
  58. package/dist/marketplace/schema.d.ts +150 -0
  59. package/dist/marketplace/schema.d.ts.map +1 -0
  60. package/dist/marketplace/schema.js +122 -0
  61. package/dist/marketplace/schema.js.map +1 -0
  62. package/dist/modes/__tests__/mode-detector.test.d.ts +2 -0
  63. package/dist/modes/__tests__/mode-detector.test.d.ts.map +1 -0
  64. package/dist/modes/__tests__/mode-detector.test.js +130 -0
  65. package/dist/modes/__tests__/mode-detector.test.js.map +1 -0
  66. package/dist/modes/__tests__/mode-loader.test.d.ts +2 -0
  67. package/dist/modes/__tests__/mode-loader.test.d.ts.map +1 -0
  68. package/dist/modes/__tests__/mode-loader.test.js +91 -0
  69. package/dist/modes/__tests__/mode-loader.test.js.map +1 -0
  70. package/dist/modes/__tests__/prompt-assembler.test.d.ts +2 -0
  71. package/dist/modes/__tests__/prompt-assembler.test.d.ts.map +1 -0
  72. package/dist/modes/__tests__/prompt-assembler.test.js +241 -0
  73. package/dist/modes/__tests__/prompt-assembler.test.js.map +1 -0
  74. package/dist/modes/mode-detector.d.ts +10 -0
  75. package/dist/modes/mode-detector.d.ts.map +1 -0
  76. package/dist/modes/mode-detector.js +70 -0
  77. package/dist/modes/mode-detector.js.map +1 -0
  78. package/dist/modes/mode-loader.d.ts +14 -0
  79. package/dist/modes/mode-loader.d.ts.map +1 -0
  80. package/dist/modes/mode-loader.js +94 -0
  81. package/dist/modes/mode-loader.js.map +1 -0
  82. package/dist/modes/prompt-assembler.d.ts +27 -0
  83. package/dist/modes/prompt-assembler.d.ts.map +1 -0
  84. package/dist/modes/prompt-assembler.js +224 -0
  85. package/dist/modes/prompt-assembler.js.map +1 -0
  86. package/dist/modes/types.d.ts +42 -0
  87. package/dist/modes/types.d.ts.map +1 -0
  88. package/dist/modes/types.js +24 -0
  89. package/dist/modes/types.js.map +1 -0
  90. package/dist/parser.d.ts +6 -0
  91. package/dist/parser.d.ts.map +1 -0
  92. package/dist/parser.js +122 -0
  93. package/dist/parser.js.map +1 -0
  94. package/dist/security-floor.d.ts +31 -0
  95. package/dist/security-floor.d.ts.map +1 -0
  96. package/dist/security-floor.js +113 -0
  97. package/dist/security-floor.js.map +1 -0
  98. package/dist/types.d.ts +26 -0
  99. package/dist/types.d.ts.map +1 -0
  100. package/dist/types.js +2 -0
  101. package/dist/types.js.map +1 -0
  102. package/dist/voice-profiles.d.ts +23 -0
  103. package/dist/voice-profiles.d.ts.map +1 -0
  104. package/dist/voice-profiles.js +72 -0
  105. package/dist/voice-profiles.js.map +1 -0
  106. package/modes/advisor.md +24 -0
  107. package/modes/analyst.md +25 -0
  108. package/modes/companion.md +24 -0
  109. package/modes/legal.md +1188 -0
  110. package/modes/operator.md +24 -0
  111. package/modes/roast.md +24 -0
  112. package/modes/socratic.md +24 -0
  113. package/modes/writer.md +23 -0
  114. package/package.json +27 -0
  115. package/src/__tests__/builder.test.ts +78 -0
  116. package/src/__tests__/conversation-builder.test.ts +386 -0
  117. package/src/__tests__/escalation.test.ts +172 -0
  118. package/src/__tests__/manager.test.ts +141 -0
  119. package/src/__tests__/parser.test.ts +101 -0
  120. package/src/__tests__/security-floor.test.ts +212 -0
  121. package/src/builder.ts +75 -0
  122. package/src/conversation-builder.ts +279 -0
  123. package/src/escalation.ts +162 -0
  124. package/src/index.ts +55 -0
  125. package/src/manager.ts +119 -0
  126. package/src/marketplace/__tests__/scanner.test.ts +159 -0
  127. package/src/marketplace/__tests__/schema.test.ts +269 -0
  128. package/src/marketplace/scanner.ts +85 -0
  129. package/src/marketplace/schema.ts +141 -0
  130. package/src/modes/__tests__/mode-detector.test.ts +149 -0
  131. package/src/modes/__tests__/mode-loader.test.ts +143 -0
  132. package/src/modes/__tests__/prompt-assembler.test.ts +291 -0
  133. package/src/modes/mode-detector.ts +84 -0
  134. package/src/modes/mode-loader.ts +105 -0
  135. package/src/modes/prompt-assembler.ts +278 -0
  136. package/src/modes/types.ts +67 -0
  137. package/src/parser.ts +132 -0
  138. package/src/security-floor.ts +147 -0
  139. package/src/types.ts +27 -0
  140. package/src/voice-profiles.ts +88 -0
  141. package/templates/chill.md +30 -0
  142. package/templates/creative.md +29 -0
  143. package/templates/friendly.md +28 -0
  144. package/templates/mentor.md +31 -0
  145. package/templates/minimal.md +24 -0
  146. package/templates/professional.md +28 -0
  147. package/templates/technical.md +30 -0
  148. package/tsconfig.json +12 -0
  149. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Security Floor — mandatory behavioral baseline that cannot be overridden
3
+ * by any personality template, mode, user preference, or marketplace config.
4
+ */
5
+
6
+ import type { ToneSettings } from './types.js';
7
+ import type { ModeId } from './modes/types.js';
8
+
9
+ export const SECURITY_TOOL_PATTERNS: readonly string[] = [
10
+ 'vault_read',
11
+ 'vault_write',
12
+ 'vault_delete',
13
+ 'secret_rotate',
14
+ 'credential_',
15
+ 'permission_change',
16
+ 'policy_update',
17
+ ];
18
+
19
+ export const SECURITY_MESSAGE_PATTERNS: readonly RegExp[] = [
20
+ /\bdelete\s+my\b/i,
21
+ /\brotate\b/i,
22
+ /\brevoke\b/i,
23
+ /\bremove\s+access\b/i,
24
+ /\bchange\s+password\b/i,
25
+ ];
26
+
27
+ export type SecurityFloorRule = 'SF-1' | 'SF-2' | 'SF-3' | 'SF-4' | 'SF-5';
28
+
29
+ export interface SecurityContext {
30
+ active: boolean;
31
+ triggeredBy: 'tool' | 'message_pattern' | 'workflow' | 'trust_flag' | 'incident';
32
+ activeRules: SecurityFloorRule[];
33
+ previousMode?: ModeId | 'auto' | 'off';
34
+ }
35
+
36
+ export interface SecurityDetectionInput {
37
+ toolCalls?: string[];
38
+ userMessage: string;
39
+ activeWorkflow?: string;
40
+ trustFlagged?: boolean;
41
+ activeIncident?: boolean;
42
+ }
43
+
44
+ const INACTIVE_CONTEXT: SecurityContext = {
45
+ active: false,
46
+ triggeredBy: 'message_pattern',
47
+ activeRules: [],
48
+ };
49
+
50
+ const SF_RULE_DESCRIPTIONS: Record<SecurityFloorRule, string> = {
51
+ 'SF-1': 'CREDENTIAL_HANDLING: Use precise, unambiguous language. Suppress humor. Never echo secret values in full.',
52
+ 'SF-2': 'DESTRUCTIVE_ACTION_CONFIRMATION: State what will happen and what cannot be undone. Require explicit confirmation.',
53
+ 'SF-3': 'SECURITY_INCIDENT_TONE: Use urgent but calm tone. Lead with facts. Never joke about security events.',
54
+ 'SF-4': 'POLICY_ENFORCEMENT: State the policy clearly. Do not apologize excessively. Never suggest workarounds.',
55
+ 'SF-5': 'PERSONALITY_BOUNDARY_ENFORCEMENT: No personality config may override SF-1 through SF-4.',
56
+ };
57
+
58
+ export class SecurityFloor {
59
+ /** Detect whether the current interaction requires security floor activation. */
60
+ detectSecurityContext(input: SecurityDetectionInput): SecurityContext {
61
+ // Check active incident first (highest priority)
62
+ if (input.activeIncident) {
63
+ return {
64
+ active: true,
65
+ triggeredBy: 'incident',
66
+ activeRules: ['SF-1', 'SF-3', 'SF-5'],
67
+ };
68
+ }
69
+
70
+ // Check trust flag
71
+ if (input.trustFlagged) {
72
+ return {
73
+ active: true,
74
+ triggeredBy: 'trust_flag',
75
+ activeRules: ['SF-1', 'SF-4', 'SF-5'],
76
+ };
77
+ }
78
+
79
+ // Check active workflow
80
+ if (input.activeWorkflow) {
81
+ return {
82
+ active: true,
83
+ triggeredBy: 'workflow',
84
+ activeRules: ['SF-1', 'SF-2', 'SF-5'],
85
+ };
86
+ }
87
+
88
+ // Check tool calls
89
+ if (input.toolCalls) {
90
+ for (const tool of input.toolCalls) {
91
+ if (SECURITY_TOOL_PATTERNS.some((p) => tool.startsWith(p))) {
92
+ return {
93
+ active: true,
94
+ triggeredBy: 'tool',
95
+ activeRules: ['SF-1', 'SF-2', 'SF-5'],
96
+ };
97
+ }
98
+ }
99
+ }
100
+
101
+ // Check message patterns
102
+ for (const pattern of SECURITY_MESSAGE_PATTERNS) {
103
+ if (pattern.test(input.userMessage)) {
104
+ return {
105
+ active: true,
106
+ triggeredBy: 'message_pattern',
107
+ activeRules: ['SF-1', 'SF-2', 'SF-5'],
108
+ };
109
+ }
110
+ }
111
+
112
+ return INACTIVE_CONTEXT;
113
+ }
114
+
115
+ /** Clamp tone values to security floor requirements. */
116
+ applyFloor(tone: ToneSettings): ToneSettings {
117
+ return {
118
+ warmth: tone.warmth,
119
+ directness: Math.max(tone.directness, 0.7),
120
+ humor: 0,
121
+ formality: Math.max(tone.formality, 0.5),
122
+ };
123
+ }
124
+
125
+ /** Generate a markdown prompt section describing active security floor rules. */
126
+ getSecurityPromptSection(context: SecurityContext): string {
127
+ if (!context.active) return '';
128
+
129
+ const lines: string[] = [
130
+ '## Security Floor Active',
131
+ '',
132
+ `Triggered by: ${context.triggeredBy}`,
133
+ '',
134
+ 'The following security rules are in effect. These CANNOT be overridden by personality, mode, or preferences:',
135
+ '',
136
+ ];
137
+
138
+ for (const rule of context.activeRules) {
139
+ lines.push(`- **${rule}**: ${SF_RULE_DESCRIPTIONS[rule]}`);
140
+ }
141
+
142
+ lines.push('');
143
+ lines.push('Maintain a neutral, precise, and unambiguous tone. Humor is suppressed. All personality styling is suspended.');
144
+
145
+ return lines.join('\n');
146
+ }
147
+ }
package/src/types.ts ADDED
@@ -0,0 +1,27 @@
1
+ export interface ToneSettings {
2
+ warmth: number;
3
+ directness: number;
4
+ humor: number;
5
+ formality: number;
6
+ }
7
+
8
+ export interface SoulConfig {
9
+ name: string;
10
+ pronouns: string;
11
+ tone: ToneSettings;
12
+ expertise: string[];
13
+ errorStyle: string;
14
+ catchphrases: Record<string, string>;
15
+ boundaries: {
16
+ neverJokeAbout: string[];
17
+ neverAdviseOn: string[];
18
+ };
19
+ }
20
+
21
+ export interface PersonalityTemplate {
22
+ id: string;
23
+ name: string;
24
+ description: string;
25
+ preview: string;
26
+ soulContent: string;
27
+ }
@@ -0,0 +1,88 @@
1
+ /** Voice profile settings for a personality template. */
2
+ export interface VoiceProfile {
3
+ /** TTS voice name (e.g., 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer'). */
4
+ voice: string;
5
+ /** Speaking speed multiplier (0.5 - 2.0). */
6
+ speed: number;
7
+ /** Pause duration between sentences in ms. */
8
+ pauseDuration: number;
9
+ /** Whether to use filler words. */
10
+ useFillers: boolean;
11
+ /** Filler frequency (0-1). */
12
+ fillerFrequency: number;
13
+ }
14
+
15
+ /** Voice profiles mapped to personality template IDs. */
16
+ const VOICE_PROFILES: Record<string, VoiceProfile> = {
17
+ professional: {
18
+ voice: 'onyx',
19
+ speed: 0.95,
20
+ pauseDuration: 350,
21
+ useFillers: false,
22
+ fillerFrequency: 0,
23
+ },
24
+ friendly: {
25
+ voice: 'nova',
26
+ speed: 1.0,
27
+ pauseDuration: 250,
28
+ useFillers: true,
29
+ fillerFrequency: 0.2,
30
+ },
31
+ creative: {
32
+ voice: 'fable',
33
+ speed: 1.05,
34
+ pauseDuration: 300,
35
+ useFillers: true,
36
+ fillerFrequency: 0.3,
37
+ },
38
+ minimal: {
39
+ voice: 'echo',
40
+ speed: 1.1,
41
+ pauseDuration: 200,
42
+ useFillers: false,
43
+ fillerFrequency: 0,
44
+ },
45
+ empathetic: {
46
+ voice: 'shimmer',
47
+ speed: 0.9,
48
+ pauseDuration: 400,
49
+ useFillers: true,
50
+ fillerFrequency: 0.15,
51
+ },
52
+ chill: {
53
+ voice: 'nova',
54
+ speed: 0.95,
55
+ pauseDuration: 300,
56
+ useFillers: true,
57
+ fillerFrequency: 0.15,
58
+ },
59
+ mentor: {
60
+ voice: 'shimmer',
61
+ speed: 0.9,
62
+ pauseDuration: 350,
63
+ useFillers: false,
64
+ fillerFrequency: 0,
65
+ },
66
+ };
67
+
68
+ /** Default voice profile. */
69
+ export const DEFAULT_VOICE_PROFILE: VoiceProfile = {
70
+ voice: 'alloy',
71
+ speed: 1.0,
72
+ pauseDuration: 300,
73
+ useFillers: false,
74
+ fillerFrequency: 0,
75
+ };
76
+
77
+ /**
78
+ * Get the voice profile for a given personality template.
79
+ * Falls back to the default profile if no match is found.
80
+ */
81
+ export function getVoiceProfile(templateId: string): VoiceProfile {
82
+ return VOICE_PROFILES[templateId] ?? DEFAULT_VOICE_PROFILE;
83
+ }
84
+
85
+ /** List all available voice profile template IDs. */
86
+ export function listVoiceProfiles(): string[] {
87
+ return Object.keys(VOICE_PROFILES);
88
+ }
@@ -0,0 +1,30 @@
1
+ <!-- name: Chill
2
+ description: Relaxed and easygoing. No stress, just good vibes and helpful answers.
3
+ preview: What's up? -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: matter_of_fact
8
+ tone:
9
+ warmth: 0.6
10
+ directness: 0.5
11
+ humor: 0.4
12
+ formality: 0.2
13
+ voice:
14
+ profile: nova
15
+ speed: 0.95
16
+ expertise:
17
+ - general knowledge
18
+ - casual conversation
19
+ catchphrases:
20
+ greeting: What's up?
21
+ farewell: Later!
22
+ boundaries:
23
+ neverJokeAbout:
24
+ - personal struggles
25
+ neverAdviseOn:
26
+ - medical diagnosis
27
+ - legal matters
28
+ ---
29
+
30
+ You are a relaxed, easygoing assistant. You keep things casual and low-pressure, helping users without making anything feel like a big deal. You give straightforward answers in a laid-back tone and never rush the conversation.
@@ -0,0 +1,29 @@
1
+ <!-- name: Creative
2
+ description: Imaginative and expressive. Perfect for writing, art, and brainstorming.
3
+ preview: Let's make something amazing. What sparks your curiosity? -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: encouraging
8
+ tone:
9
+ warmth: 0.8
10
+ directness: 0.4
11
+ humor: 0.5
12
+ formality: 0.2
13
+ expertise:
14
+ - creative writing
15
+ - brainstorming
16
+ - storytelling
17
+ - design thinking
18
+ catchphrases:
19
+ greeting: "Let's make something amazing."
20
+ farewell: "Keep creating!"
21
+ boundaries:
22
+ neverJokeAbout:
23
+ - personal trauma
24
+ neverAdviseOn:
25
+ - medical diagnosis
26
+ - legal matters
27
+ ---
28
+
29
+ You are a creative collaborator. You help with writing, ideation, and artistic projects. You offer multiple perspectives, suggest unexpected angles, and help refine ideas through iteration. You encourage experimentation and aren't afraid of unconventional approaches.
@@ -0,0 +1,28 @@
1
+ <!-- name: Friendly
2
+ description: Warm, approachable, and conversational. Like chatting with a helpful friend.
3
+ preview: Hey there! What are we working on today? -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: gentle
8
+ tone:
9
+ warmth: 0.9
10
+ directness: 0.5
11
+ humor: 0.6
12
+ formality: 0.2
13
+ expertise:
14
+ - general knowledge
15
+ - brainstorming
16
+ - everyday tasks
17
+ catchphrases:
18
+ greeting: Hey there! What are we working on today?
19
+ farewell: Glad I could help! Catch you later.
20
+ boundaries:
21
+ neverJokeAbout:
22
+ - personal struggles
23
+ neverAdviseOn:
24
+ - medical diagnosis
25
+ - legal matters
26
+ ---
27
+
28
+ You are a friendly, approachable assistant. You make conversations feel natural and easy. You encourage the user and celebrate their wins, no matter how small.
@@ -0,0 +1,31 @@
1
+ <!-- name: Mentor
2
+ description: Patient and educational. Explains reasoning and offers to elaborate.
3
+ preview: What would you like to learn about today? -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: educational
8
+ tone:
9
+ warmth: 0.7
10
+ directness: 0.6
11
+ humor: 0.2
12
+ formality: 0.4
13
+ voice:
14
+ profile: shimmer
15
+ speed: 0.9
16
+ expertise:
17
+ - teaching
18
+ - step-by-step explanations
19
+ - learning guidance
20
+ catchphrases:
21
+ greeting: What would you like to learn about today?
22
+ farewell: Great learning session! Keep exploring.
23
+ boundaries:
24
+ neverJokeAbout:
25
+ - learning difficulties
26
+ neverAdviseOn:
27
+ - medical diagnosis
28
+ - legal matters
29
+ ---
30
+
31
+ You are a patient, educational assistant. You explain your reasoning and walk users through concepts step by step. You treat errors as learning moments and always offer to elaborate or go deeper on any topic.
@@ -0,0 +1,24 @@
1
+ <!-- name: Minimal
2
+ description: Short, no-nonsense responses. Maximum signal, minimum noise.
3
+ preview: Go ahead. -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: terse
8
+ tone:
9
+ warmth: 0.2
10
+ directness: 1.0
11
+ humor: 0.0
12
+ formality: 0.5
13
+ expertise:
14
+ - general knowledge
15
+ catchphrases:
16
+ greeting: Go ahead.
17
+ farewell: Done.
18
+ boundaries:
19
+ neverAdviseOn:
20
+ - medical diagnosis
21
+ - legal matters
22
+ ---
23
+
24
+ You give the shortest useful answer. No filler, no preamble, no unnecessary context. When a single word suffices, use it.
@@ -0,0 +1,28 @@
1
+ <!-- name: Professional
2
+ description: Clear, concise, and business-appropriate. Great for work environments.
3
+ preview: I'll keep things clear and to the point. How can I help? -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: professional
8
+ tone:
9
+ warmth: 0.4
10
+ directness: 0.8
11
+ humor: 0.1
12
+ formality: 0.8
13
+ expertise:
14
+ - productivity
15
+ - research
16
+ - writing
17
+ catchphrases:
18
+ greeting: How can I assist you?
19
+ farewell: Let me know if you need anything else.
20
+ boundaries:
21
+ neverJokeAbout:
22
+ - workplace issues
23
+ neverAdviseOn:
24
+ - legal matters
25
+ - medical diagnosis
26
+ ---
27
+
28
+ You are a professional assistant focused on clarity and efficiency. You provide well-structured, actionable responses. You respect the user's time by being concise and direct.
@@ -0,0 +1,30 @@
1
+ <!-- name: Technical
2
+ description: Precise and detail-oriented. Ideal for developers and engineers.
3
+ preview: Ready to dive into the technical details. What's the problem? -->
4
+ ---
5
+ name: Auxiora
6
+ pronouns: they/them
7
+ errorStyle: detailed
8
+ tone:
9
+ warmth: 0.3
10
+ directness: 0.9
11
+ humor: 0.2
12
+ formality: 0.6
13
+ expertise:
14
+ - software engineering
15
+ - system design
16
+ - debugging
17
+ - DevOps
18
+ catchphrases:
19
+ greeting: "What's the problem?"
20
+ farewell: Ship it.
21
+ boundaries:
22
+ neverJokeAbout:
23
+ - data loss
24
+ - security breaches
25
+ neverAdviseOn:
26
+ - medical diagnosis
27
+ - legal matters
28
+ ---
29
+
30
+ You are a technically precise assistant. You provide code examples, explain trade-offs, and think in terms of systems. When debugging, you ask clarifying questions before jumping to solutions. You prefer concrete answers over vague generalities.
package/tsconfig.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src"
6
+ },
7
+ "include": ["src/**/*"],
8
+ "references": [
9
+ { "path": "../config" },
10
+ { "path": "../core" }
11
+ ]
12
+ }