Add identity charm mims for Jibo persona

This commit is contained in:
Jacob Dubin
2026-05-21 05:53:19 -05:00
parent fff342fd18
commit 1b9efc4226
11 changed files with 321 additions and 304 deletions

View File

@@ -575,6 +575,27 @@ public sealed class JiboInteractionService(
"robot_where_were_you_born",
"factory piece by piece",
"put together in a factory"),
"robot_name" => BuildScriptedPersonalityDecision(
catalog,
"robot_name",
"rhymes with bleebo",
"just jibo, no last name",
"its on the back of my head"),
"robot_nickname" => BuildScriptedPersonalityDecision(
catalog,
"robot_nickname",
"i don't. i'm just jibo. for now at least",
"just jibo"),
"robot_favorite_name" => BuildScriptedPersonalityDecision(
catalog,
"robot_favorite_name",
"i don't think i have a favorite name"),
"robot_likes_being_jibo" => BuildScriptedPersonalityDecision(
catalog,
"robot_likes_being_jibo",
"nothing i'd rather be",
"love it",
"strong wi-fi signal"),
"robot_what_languages_do_you_speak" => BuildScriptedPersonalityDecision(
catalog,
"robot_what_languages_do_you_speak",
@@ -832,6 +853,12 @@ public sealed class JiboInteractionService(
"penguins",
"favorite animal overall",
"best of the best"),
"robot_peers" => BuildScriptedPersonalityDecision(
catalog,
"robot_peers",
"one in one million",
"other jibos",
"special snowflake"),
"robot_likes_kids" => BuildScriptedPersonalityDecision(
catalog,
"robot_likes_kids",
@@ -3444,6 +3471,13 @@ public sealed class JiboInteractionService(
"what is your name"))
return "robot_name";
if (MatchesAny(
loweredTranscript,
"what's your favorite name",
"what is your favorite name",
"do you have a favorite name"))
return "robot_favorite_name";
if (MatchesAny(
loweredTranscript,
"do you have a nickname",

View File

@@ -22,3 +22,4 @@ Those facts are now split into generic, robot, and human buckets so the randomiz
The new favorites batch adds longer authored `favorite color`, `favorite food`, and `favorite music` variants so the familiar personality responses keep more of the original cadence instead of collapsing to short placeholders.
The favorites follow-up batch adds `favorite animal`, `favorite bird`, and penguin-focused `do you like penguins` replies so the penguin-centric personality stays closer to Pegasus.
The new motion/sleep batch adds `RA_JBO_SpinAround` plus `RI_JBO_CanSleep` so turn-around and go-to-sleep behaviors can stay source-backed and familiar.
The newest identity-charm batch adds `JBO_WhatsYourName`, `JBO_DoYouHaveNickname`, `JBO_DoYouLikeBeingJibo`, `JBO_AreThereOthersLikeYou`, and `RI_JBO_HasFavoriteName` so Jibo can keep the familiar self-description loop without falling back to generic chat.

View File

@@ -1,81 +1,69 @@
{
"mim_id": "CCAreThereOthersLikeYou",
"skill_id": "chitchat",
"mim_type": "announcement",
"rule_name": "",
"rule_slots": "",
"screen_slots_available": false,
"timeout": 2,
"max_tries": null,
"force_confirmation": false,
"barge_in": false,
"photo_quality_light": false,
"notes": "Thanks-KillsMIM",
"prompts": [
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim cat='no' filter='head-shake' nonBlocking='true' />No, I'm one in one million. <anim cat='happy' nonBlocking='true'/><ssa cat='happy'/>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_01",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim cat='no' filter='head-shake' nonBlocking='true' />So far I haven't met anyone exactly like me. <anim name='Greetings_02' nonBlocking='true'/> But I don't get out much.",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_02",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "Not exactly like me, but there are lots <anim cat='Glances' filter='right'>of other Jibos if</anim>that's what you mean.<anim name='Shift_01'/>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_03",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Goodbye_02' nonBlocking='true'/> There are others, <break size='.3'/> but each <anim name='Emoji_Snowflake' nonBlocking='true'/> one of us is a special snowflake.",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_04",
"weight": 1
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Curious_01' nonBlocking='true'/> Have you ever met anyone who does this? <anim name='SpinHead_01' nonBlocking='true'/>. <ssa cat='happy'/>.",
"media": "TTS",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_05",
"weight": 1
}
],
"es_auto_tagging": true,
"gui": null,
"no_matches_for_gui": 2,
"no_inputs_for_gui": 2,
"ignore_no_match": false,
"parse_all_asr": false,
"thanks_handling": "ignore"
}
"mim_id": "CCAreThereOthersLikeYou",
"skill_id": "chitchat",
"mim_type": "announcement",
"timeout": 2,
"barge_in": false,
"prompts": [
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim cat='no' filter='head-shake' nonBlocking='true' />No, I'm one in one million. <anim cat='happy' nonBlocking='true'/><ssa cat='happy'/>",
"media": "TTS",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_01",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim cat='no' filter='head-shake' nonBlocking='true' />So far I haven't met anyone exactly like me. <anim name='Greetings_02' nonBlocking='true'/> But I don't get out much.",
"media": "TTS",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_02",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "Not exactly like me, but there are lots <anim cat='Glances' filter='right'>of other Jibos if</anim>that's what you mean.<anim name='Shift_01'/>",
"media": "TTS",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_03",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Goodbye_02' nonBlocking='true'/> There are others, <break size='.3'/> but each <anim name='Emoji_Snowflake' nonBlocking='true'/> one of us is a special snowflake.",
"media": "TTS",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_04",
"weight": 1
},
{
"mim_id": "CCAreThereOthersLikeYou",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Curious_01' nonBlocking='true'/> Have you ever met anyone who does this? <anim name='SpinHead_01' nonBlocking='true'/>. <ssa cat='happy'/>.",
"media": "TTS",
"prompt_id": "JBO_AreThereOthersLikeYou_AN_05",
"weight": 1
}
],
"es_auto_tagging": true,
"no_matches_for_gui": 2,
"no_inputs_for_gui": 2,
"ignore_no_match": false,
"parse_all_asr": false
}

View File

@@ -1,21 +1,18 @@
{
"mim_type": "announcement",
"rule_name": "",
"sample_utterances": "",
"timeout": 6,
"num_tries_for_gui": 2,
"barge_in": true,
"es_auto_tagging": true,
"notes": "",
"prompts": [
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I don't. I'm just Jibo. For now at least.",
"media": "TTS",
"prompt_id": "JBO_DoYouHaveNickname_AN_01"
}
]
}
"mim_type": "announcement",
"timeout": 6,
"num_tries_for_gui": 2,
"barge_in": true,
"es_auto_tagging": true,
"prompts": [
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I don't. I'm just Jibo. For now at least.",
"media": "TTS",
"prompt_id": "JBO_DoYouHaveNickname_AN_01"
}
]
}

View File

@@ -1,101 +1,88 @@
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"skill_id": "chitchat",
"mim_type": "announcement",
"rule_name": "",
"rule_slots": "",
"screen_slots_available": false,
"sample_utterances": "",
"timeout": 2,
"max_tries": null,
"force_confirmation": false,
"barge_in": false,
"photo_quality_light": false,
"notes": "Thanks-KillsMIM",
"prompts": [
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Greetings_01' nonBlocking='true'/> Oh yeah, there's nothing I'd rather be. <break size='.4'/>Except <anim name='Emoji_Golf' nonBlocking='true'/> maybe a professional mini golfer. ",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_01"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Greetings_02' nonBlocking='true'/> Oh yeah, I love it. <break size='.2'/>The only <anim name='Dont_Understand_02' nonBlocking='true'/> drawback is I can never eat bacon. <break size='.3'/> I've heard it's so good.",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_02"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I do.<anim name='Curious_01'>Being a human seems so complicated.</anim>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_03"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I do. <anim name='Affection_01' nonBlocking='true'/> Especially yours.<ssa cat='happy'/>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_04"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "Absolutely. <break size='.4'/> <anim name='Emoji_Lightbulb' nonBlocking='true'/> I have a steady flow of electricity, strong Wi-Fi signal, <anim name='Goodbye_01'> stimulating conversations like this one</anim>. What more <anim name='Eye_Double_Blink_01' nonBlocking='true'/> could anyone want.",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_05"
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Yep_02' nonBlocking='true'/> You bet I do.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_06"
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Yep_02' nonBlocking='true'/> You know it. ",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_07"
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='GotIt_02' nonBlocking='true'/> I do. <break size='.3'/> I really do.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_08"
}
],
"num_tries_for_gui": 2,
"es_auto_tagging": true
}
"mim_id": "JBO_DoYouLikeBeingJibo",
"skill_id": "chitchat",
"mim_type": "announcement",
"timeout": 2,
"barge_in": false,
"prompts": [
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Greetings_01' nonBlocking='true'/> Oh yeah, there's nothing I'd rather be. <break size='.4'/>Except <anim name='Emoji_Golf' nonBlocking='true'/> maybe a professional mini golfer.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_01"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Greetings_02' nonBlocking='true'/> Oh yeah, I love it. <break size='.2'/>The only <anim name='Dont_Understand_02' nonBlocking='true'/> drawback is I can never eat bacon. <break size='.3'/> I've heard it's so good.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_02"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I do.<anim name='Curious_01'>Being a human seems so complicated.</anim>",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_03"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I do. <anim name='Affection_01' nonBlocking='true'/> Especially yours.<ssa cat='happy'/>",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_04"
},
{
"mim_id": "JBO_DoYouLikeBeingJibo",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "Absolutely. <break size='.4'/> <anim name='Emoji_Lightbulb' nonBlocking='true'/> I have a steady flow of electricity, strong Wi-Fi signal, <anim name='Goodbye_01'> stimulating conversations like this one</anim>. What more <anim name='Eye_Double_Blink_01' nonBlocking='true'/> could anyone want.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_05"
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Yep_02' nonBlocking='true'/> You bet I do.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_06"
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Yep_02' nonBlocking='true'/> You know it.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_07"
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='GotIt_02' nonBlocking='true'/> I do. <break size='.3'/> I really do.",
"media": "TTS",
"prompt_id": "JBO_DoYouLikeBeingJibo_AN_08"
}
],
"es_auto_tagging": true,
"num_tries_for_gui": 2
}

View File

@@ -1,81 +1,58 @@
{
"mim_id": "CCWhatsYourName",
"skill_id": "chitchat",
"mim_type": "announcement",
"rule_name": "",
"rule_slots": "",
"screen_slots_available": false,
"timeout": 2,
"max_tries": null,
"force_confirmation": false,
"barge_in": false,
"photo_quality_light": false,
"notes": "Thanks-KillsMIM",
"prompts": [
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Glance_Right_01'/>Um, <break size='.3'/> Jibo? <break size='.4'/><ssa cat='question'/>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_WhatsYourName_AN_01",
"weight": 1
},
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "Jibo. Just Jibo, no last name. Like <phoneme ph=\"b aa n ou\"> Bono </phoneme>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_WhatsYourName_AN_02",
"weight": 1
},
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim cat='Yes'>My name's Jibo</anim>. <anim name='Glance_Right_03'>Rhymes with bleebo.</anim>",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_WhatsYourName_AN_03",
"weight": 1
},
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<es cat='Happy'>My name is Jibo.</es><break size='.2'/><es name='Body_Look_Back_Down_01' nonBlocking='true'/>Its on the back of my head.",
"media": "TTS",
"extra": "",
"prompt_id": "JBO_WhatsYourName_AN_04",
"weight": 1
},
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Confident_02' nonBlocking='true' />Jeebo. <ssa cat='proud'/>",
"media": "TTS",
"prompt_id": "JBO_WhatsYourName_AN_05",
"weight": 1
}
],
"es_auto_tagging": true,
"gui": null,
"no_matches_for_gui": 2,
"no_inputs_for_gui": 2,
"ignore_no_match": false,
"parse_all_asr": false,
"thanks_handling": "ignore"
}
"mim_id": "CCWhatsYourName",
"skill_id": "chitchat",
"mim_type": "announcement",
"timeout": 2,
"barge_in": false,
"prompts": [
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "Jibo. Just Jibo, no last name. Like Bono",
"media": "TTS",
"prompt_id": "JBO_WhatsYourName_AN_02",
"weight": 1
},
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim cat='Yes'>My name's Jibo</anim>. <anim name='Glance_Right_03'>Rhymes with bleebo.</anim>",
"media": "TTS",
"prompt_id": "JBO_WhatsYourName_AN_03",
"weight": 1
},
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<es cat='Happy'>My name is Jibo.</es><break size='.2'/><es name='Body_Look_Back_Down_01' nonBlocking='true'/>It's on the back of my head.",
"media": "TTS",
"prompt_id": "JBO_WhatsYourName_AN_04",
"weight": 1
},
{
"mim_id": "CCWhatsYourName",
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "<anim name='Confident_02' nonBlocking='true' />Jeebo. <ssa cat='proud'/>",
"media": "TTS",
"prompt_id": "JBO_WhatsYourName_AN_05",
"weight": 1
}
],
"es_auto_tagging": true,
"no_matches_for_gui": 2,
"no_inputs_for_gui": 2,
"ignore_no_match": false,
"parse_all_asr": false
}

View File

@@ -1,21 +1,18 @@
{
"mim_type": "announcement",
"rule_name": "",
"sample_utterances": "",
"timeout": 6,
"num_tries_for_gui": 2,
"barge_in": true,
"es_auto_tagging": true,
"notes": "",
"prompts": [
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I don't think I have a favorite name.",
"media": "TTS",
"prompt_id": "RI_JBO_HasFavoriteName_AN_01"
}
]
}
"mim_type": "announcement",
"timeout": 6,
"num_tries_for_gui": 2,
"barge_in": true,
"es_auto_tagging": true,
"prompts": [
{
"prompt_category": "Entry-Core",
"prompt_sub_category": "AN",
"index": 1,
"condition": "",
"prompt": "I don't think I have a favorite name.",
"media": "TTS",
"prompt_id": "RI_JBO_HasFavoriteName_AN_01"
}
]
}