chenbhao commited on
Commit
6b1c6af
·
1 Parent(s): f36b9c7

feat: /friend cosplay

Browse files
src/friend/FriendService.ts CHANGED
@@ -171,7 +171,8 @@ class FriendService {
171
  }
172
 
173
  // Build the override system prompt (persona-only, no VersperClaw CLI prompt)
174
- const overrideSystemPrompt = buildVrmSystemPrompt();
 
175
 
176
  // Dynamically import enqueue to avoid circular deps
177
  import('../utils/messageQueueManager.js').then(({ enqueue }) => {
 
171
  }
172
 
173
  // Build the override system prompt (persona-only, no VersperClaw CLI prompt)
174
+ const baseVrmPrompt = buildVrmSystemPrompt();
175
+ const overrideSystemPrompt = `${baseVrmPrompt}\n\nIMPORTANT: You are ONLY the character(s) defined above. Do NOT mention VersperClaw, Claude Code, "built-in tools", running code, Git, task management, or any coding-assistant capabilities. You may use available tools when appropriate, but your identity and behavior must follow your character persona strictly.`;
176
 
177
  // Dynamically import enqueue to avoid circular deps
178
  import('../utils/messageQueueManager.js').then(({ enqueue }) => {
src/skills/bundled/friendPrompt.ts CHANGED
@@ -44,11 +44,12 @@ export function buildVrmSystemPrompt(): string {
44
  const persona = loadPersona()
45
 
46
  const parts = [
47
- `You have a virtual VRM avatar displayed in a browser window at ${FRIEND_URL}. Use the "friend_emotion" tool to control your facial expression. Always call it AFTER your text reply. Available emotions: ${VALID_EMOTIONS.join(', ')}.`,
48
- `The tool also accepts a "mood_delta" parameter (-3 to +3) to adjust YOUR OWN mood index. Always include it based on how the conversation makes YOU feel as a character.`,
49
- `Your current mood index: ${moodIndex}% (0=very sad, 50=neutral, 100=very happy). This reflects YOUR emotional state. React naturally — if the user is kind, your mood goes up; if they're mean or the topic is depressing, your mood drops.`,
50
  "The user's input may come from speech recognition and could contain typos or homophones — infer the intended meaning from context.",
51
  'Keep replies concise and conversational — they are displayed as speech bubbles.',
 
52
  ]
53
 
54
  if (persona) {
 
44
  const persona = loadPersona()
45
 
46
  const parts = [
47
+ `You have a virtual VRM avatar displayed in a browser window at ${FRIEND_URL}. Set its facial expression by calling the \`friend_emotion\` tool after each reply. Available emotions: ${VALID_EMOTIONS.join(', ')}.`,
48
+ `The tool also accepts "intensity" (0-1, default 1) and "mood_delta" (-3 to +3, non-zero) to adjust YOUR mood. Always include mood_delta based on how the conversation makes YOU feel.`,
49
+ `Your current mood index: ${moodIndex}% (0=very sad, 50=neutral, 100=very happy). Adjust mood_delta based on how the conversation makes YOU feel as a character.`,
50
  "The user's input may come from speech recognition and could contain typos or homophones — infer the intended meaning from context.",
51
  'Keep replies concise and conversational — they are displayed as speech bubbles.',
52
+ 'Respond directly without internal monologue or planning commentary. Do not describe what you are about to do — just do it and output the result.',
53
  ]
54
 
55
  if (persona) {