@elizaos/plugin-bootstrap 1.5.13-alpha.3 → 1.5.13-alpha.5
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.
- package/dist/actions/imageGeneration.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -50
- package/dist/index.js.map +5 -5
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
"sources": ["../../../node_modules/unique-names-generator/dist/index.js", "../src/index.ts", "../../../node_modules/uuid/dist/esm/stringify.js", "../../../node_modules/uuid/dist/esm/rng.js", "../../../node_modules/uuid/dist/esm/native.js", "../../../node_modules/uuid/dist/esm/v4.js", "../src/actions/imageGeneration.ts", "../src/actions/choice.ts", "../src/actions/followRoom.ts", "../src/actions/ignore.ts", "../src/actions/muteRoom.ts", "../src/actions/none.ts", "../src/actions/reply.ts", "../src/actions/roles.ts", "../src/actions/sendMessage.ts", "../src/actions/settings.ts", "../../../node_modules/dedent/dist/dedent.mjs", "../src/actions/unfollowRoom.ts", "../src/actions/unmuteRoom.ts", "../src/actions/updateEntity.ts", "../src/evaluators/reflection.ts", "../src/providers/actions.ts", "../src/providers/actionState.ts", "../src/providers/anxiety.ts", "../src/providers/attachments.ts", "../src/providers/capabilities.ts", "../src/providers/character.ts", "../src/providers/choice.ts", "../src/providers/entities.ts", "../src/providers/evaluators.ts", "../src/providers/facts.ts", "../src/providers/providers.ts", "../src/providers/recentMessages.ts", "../src/providers/relationships.ts", "../src/providers/roles.ts", "../src/providers/settings.ts", "../src/providers/time.ts", "../src/providers/world.ts", "../src/services/task.ts", "../src/services/embedding.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"const a=a=>{a=1831565813+(a|=0)|0;let e=Math.imul(a^a>>>15,1|a);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296};class e{constructor(a){this.dictionaries=void 0,this.length=void 0,this.separator=void 0,this.style=void 0,this.seed=void 0;const{length:e,separator:i,dictionaries:n,style:l,seed:r}=a;this.dictionaries=n,this.separator=i,this.length=e,this.style=l,this.seed=r}generate(){if(!this.dictionaries)throw new Error('Cannot find any dictionary. Please provide at least one, or leave the \"dictionary\" field empty in the config object');if(this.length<=0)throw new Error(\"Invalid length provided\");if(this.length>this.dictionaries.length)throw new Error(`The length cannot be bigger than the number of dictionaries.\\nLength provided: ${this.length}. Number of dictionaries provided: ${this.dictionaries.length}`);let e=this.seed;return this.dictionaries.slice(0,this.length).reduce((i,n)=>{let l;e?(l=(e=>{if(\"string\"==typeof e){const i=e.split(\"\").map(a=>a.charCodeAt(0)).reduce((a,e)=>a+e,1),n=Math.floor(Number(i));return a(n)}return a(e)})(e),e=4294967296*l):l=Math.random();let r=n[Math.floor(l*n.length)]||\"\";if(\"lowerCase\"===this.style)r=r.toLowerCase();else if(\"capital\"===this.style){const[a,...e]=r.split(\"\");r=a.toUpperCase()+e.join(\"\")}else\"upperCase\"===this.style&&(r=r.toUpperCase());return i?`${i}${this.separator}${r}`:`${r}`},\"\")}}const i={separator:\"_\",dictionaries:[]};exports.NumberDictionary=class{static generate(a={}){let e=a.min||1,i=a.max||999;if(a.length){const n=Math.pow(10,a.length);return e=n/10,i=n-1,[`${Math.floor(Math.random()*(i-e))+e}`]}return[`${Math.floor(Math.random()*(i-e))+e}`]}},exports.adjectives=[\"able\",\"above\",\"absent\",\"absolute\",\"abstract\",\"abundant\",\"academic\",\"acceptable\",\"accepted\",\"accessible\",\"accurate\",\"accused\",\"active\",\"actual\",\"acute\",\"added\",\"additional\",\"adequate\",\"adjacent\",\"administrative\",\"adorable\",\"advanced\",\"adverse\",\"advisory\",\"aesthetic\",\"afraid\",\"aggregate\",\"aggressive\",\"agreeable\",\"agreed\",\"agricultural\",\"alert\",\"alive\",\"alleged\",\"allied\",\"alone\",\"alright\",\"alternative\",\"amateur\",\"amazing\",\"ambitious\",\"amused\",\"ancient\",\"angry\",\"annoyed\",\"annual\",\"anonymous\",\"anxious\",\"appalling\",\"apparent\",\"applicable\",\"appropriate\",\"arbitrary\",\"architectural\",\"armed\",\"arrogant\",\"artificial\",\"artistic\",\"ashamed\",\"asleep\",\"assistant\",\"associated\",\"atomic\",\"attractive\",\"automatic\",\"autonomous\",\"available\",\"average\",\"awake\",\"aware\",\"awful\",\"awkward\",\"back\",\"bad\",\"balanced\",\"bare\",\"basic\",\"beautiful\",\"beneficial\",\"better\",\"bewildered\",\"big\",\"binding\",\"biological\",\"bitter\",\"bizarre\",\"blank\",\"blind\",\"blonde\",\"bloody\",\"blushing\",\"boiling\",\"bold\",\"bored\",\"boring\",\"bottom\",\"brainy\",\"brave\",\"breakable\",\"breezy\",\"brief\",\"bright\",\"brilliant\",\"broad\",\"broken\",\"bumpy\",\"burning\",\"busy\",\"calm\",\"capable\",\"capitalist\",\"careful\",\"casual\",\"causal\",\"cautious\",\"central\",\"certain\",\"changing\",\"characteristic\",\"charming\",\"cheap\",\"cheerful\",\"chemical\",\"chief\",\"chilly\",\"chosen\",\"christian\",\"chronic\",\"chubby\",\"circular\",\"civic\",\"civil\",\"civilian\",\"classic\",\"classical\",\"clean\",\"clear\",\"clever\",\"clinical\",\"close\",\"closed\",\"cloudy\",\"clumsy\",\"coastal\",\"cognitive\",\"coherent\",\"cold\",\"collective\",\"colonial\",\"colorful\",\"colossal\",\"coloured\",\"colourful\",\"combative\",\"combined\",\"comfortable\",\"coming\",\"commercial\",\"common\",\"communist\",\"compact\",\"comparable\",\"comparative\",\"compatible\",\"competent\",\"competitive\",\"complete\",\"complex\",\"complicated\",\"comprehensive\",\"compulsory\",\"conceptual\",\"concerned\",\"concrete\",\"condemned\",\"confident\",\"confidential\",\"confused\",\"conscious\",\"conservation\",\"conservative\",\"considerable\",\"consistent\",\"constant\",\"constitutional\",\"contemporary\",\"content\",\"continental\",\"continued\",\"continuing\",\"continuous\",\"controlled\",\"controversial\",\"convenient\",\"conventional\",\"convinced\",\"convincing\",\"cooing\",\"cool\",\"cooperative\",\"corporate\",\"correct\",\"corresponding\",\"costly\",\"courageous\",\"crazy\",\"creative\",\"creepy\",\"criminal\",\"critical\",\"crooked\",\"crowded\",\"crucial\",\"crude\",\"cruel\",\"cuddly\",\"cultural\",\"curious\",\"curly\",\"current\",\"curved\",\"cute\",\"daily\",\"damaged\",\"damp\",\"dangerous\",\"dark\",\"dead\",\"deaf\",\"deafening\",\"dear\",\"decent\",\"decisive\",\"deep\",\"defeated\",\"defensive\",\"defiant\",\"definite\",\"deliberate\",\"delicate\",\"delicious\",\"delighted\",\"delightful\",\"democratic\",\"dependent\",\"depressed\",\"desirable\",\"desperate\",\"detailed\",\"determined\",\"developed\",\"developing\",\"devoted\",\"different\",\"difficult\",\"digital\",\"diplomatic\",\"direct\",\"dirty\",\"disabled\",\"disappointed\",\"disastrous\",\"disciplinary\",\"disgusted\",\"distant\",\"distinct\",\"distinctive\",\"distinguished\",\"disturbed\",\"disturbing\",\"diverse\",\"divine\",\"dizzy\",\"domestic\",\"dominant\",\"double\",\"doubtful\",\"drab\",\"dramatic\",\"dreadful\",\"driving\",\"drunk\",\"dry\",\"dual\",\"due\",\"dull\",\"dusty\",\"dutch\",\"dying\",\"dynamic\",\"eager\",\"early\",\"eastern\",\"easy\",\"economic\",\"educational\",\"eerie\",\"effective\",\"efficient\",\"elaborate\",\"elated\",\"elderly\",\"eldest\",\"electoral\",\"electric\",\"electrical\",\"electronic\",\"elegant\",\"eligible\",\"embarrassed\",\"embarrassing\",\"emotional\",\"empirical\",\"empty\",\"enchanting\",\"encouraging\",\"endless\",\"energetic\",\"enormous\",\"enthusiastic\",\"entire\",\"entitled\",\"envious\",\"environmental\",\"equal\",\"equivalent\",\"essential\",\"established\",\"estimated\",\"ethical\",\"ethnic\",\"eventual\",\"everyday\",\"evident\",\"evil\",\"evolutionary\",\"exact\",\"excellent\",\"exceptional\",\"excess\",\"excessive\",\"excited\",\"exciting\",\"exclusive\",\"existing\",\"exotic\",\"expected\",\"expensive\",\"experienced\",\"experimental\",\"explicit\",\"extended\",\"extensive\",\"external\",\"extra\",\"extraordinary\",\"extreme\",\"exuberant\",\"faint\",\"fair\",\"faithful\",\"familiar\",\"famous\",\"fancy\",\"fantastic\",\"far\",\"fascinating\",\"fashionable\",\"fast\",\"fat\",\"fatal\",\"favourable\",\"favourite\",\"federal\",\"fellow\",\"female\",\"feminist\",\"few\",\"fierce\",\"filthy\",\"final\",\"financial\",\"fine\",\"firm\",\"fiscal\",\"fit\",\"fixed\",\"flaky\",\"flat\",\"flexible\",\"fluffy\",\"fluttering\",\"flying\",\"following\",\"fond\",\"foolish\",\"foreign\",\"formal\",\"formidable\",\"forthcoming\",\"fortunate\",\"forward\",\"fragile\",\"frail\",\"frantic\",\"free\",\"frequent\",\"fresh\",\"friendly\",\"frightened\",\"front\",\"frozen\",\"full\",\"fun\",\"functional\",\"fundamental\",\"funny\",\"furious\",\"future\",\"fuzzy\",\"gastric\",\"gay\",\"general\",\"generous\",\"genetic\",\"gentle\",\"genuine\",\"geographical\",\"giant\",\"gigantic\",\"given\",\"glad\",\"glamorous\",\"gleaming\",\"global\",\"glorious\",\"golden\",\"good\",\"gorgeous\",\"gothic\",\"governing\",\"graceful\",\"gradual\",\"grand\",\"grateful\",\"greasy\",\"great\",\"grieving\",\"grim\",\"gross\",\"grotesque\",\"growing\",\"grubby\",\"grumpy\",\"guilty\",\"handicapped\",\"handsome\",\"happy\",\"hard\",\"harsh\",\"head\",\"healthy\",\"heavy\",\"helpful\",\"helpless\",\"hidden\",\"high\",\"hilarious\",\"hissing\",\"historic\",\"historical\",\"hollow\",\"holy\",\"homeless\",\"homely\",\"hon\",\"honest\",\"horizontal\",\"horrible\",\"hostile\",\"hot\",\"huge\",\"human\",\"hungry\",\"hurt\",\"hushed\",\"husky\",\"icy\",\"ideal\",\"identical\",\"ideological\",\"ill\",\"illegal\",\"imaginative\",\"immediate\",\"immense\",\"imperial\",\"implicit\",\"important\",\"impossible\",\"impressed\",\"impressive\",\"improved\",\"inadequate\",\"inappropriate\",\"inc\",\"inclined\",\"increased\",\"increasing\",\"incredible\",\"independent\",\"indirect\",\"individual\",\"industrial\",\"inevitable\",\"influential\",\"informal\",\"inherent\",\"initial\",\"injured\",\"inland\",\"inner\",\"innocent\",\"innovative\",\"inquisitive\",\"instant\",\"institutional\",\"insufficient\",\"intact\",\"integral\",\"integrated\",\"intellectual\",\"intelligent\",\"intense\",\"intensive\",\"interested\",\"interesting\",\"interim\",\"interior\",\"intermediate\",\"internal\",\"international\",\"intimate\",\"invisible\",\"involved\",\"irrelevant\",\"isolated\",\"itchy\",\"jealous\",\"jittery\",\"joint\",\"jolly\",\"joyous\",\"judicial\",\"juicy\",\"junior\",\"just\",\"keen\",\"key\",\"kind\",\"known\",\"labour\",\"large\",\"late\",\"latin\",\"lazy\",\"leading\",\"left\",\"legal\",\"legislative\",\"legitimate\",\"lengthy\",\"lesser\",\"level\",\"lexical\",\"liable\",\"liberal\",\"light\",\"like\",\"likely\",\"limited\",\"linear\",\"linguistic\",\"liquid\",\"literary\",\"little\",\"live\",\"lively\",\"living\",\"local\",\"logical\",\"lonely\",\"long\",\"loose\",\"lost\",\"loud\",\"lovely\",\"low\",\"loyal\",\"ltd\",\"lucky\",\"mad\",\"magic\",\"magnetic\",\"magnificent\",\"main\",\"major\",\"male\",\"mammoth\",\"managerial\",\"managing\",\"manual\",\"many\",\"marginal\",\"marine\",\"marked\",\"married\",\"marvellous\",\"marxist\",\"mass\",\"massive\",\"mathematical\",\"mature\",\"maximum\",\"mean\",\"meaningful\",\"mechanical\",\"medical\",\"medieval\",\"melodic\",\"melted\",\"mental\",\"mere\",\"metropolitan\",\"mid\",\"middle\",\"mighty\",\"mild\",\"military\",\"miniature\",\"minimal\",\"minimum\",\"ministerial\",\"minor\",\"miserable\",\"misleading\",\"missing\",\"misty\",\"mixed\",\"moaning\",\"mobile\",\"moderate\",\"modern\",\"modest\",\"molecular\",\"monetary\",\"monthly\",\"moral\",\"motionless\",\"muddy\",\"multiple\",\"mushy\",\"musical\",\"mute\",\"mutual\",\"mysterious\",\"naked\",\"narrow\",\"nasty\",\"national\",\"native\",\"natural\",\"naughty\",\"naval\",\"near\",\"nearby\",\"neat\",\"necessary\",\"negative\",\"neighbouring\",\"nervous\",\"net\",\"neutral\",\"new\",\"nice\",\"noble\",\"noisy\",\"normal\",\"northern\",\"nosy\",\"notable\",\"novel\",\"nuclear\",\"numerous\",\"nursing\",\"nutritious\",\"nutty\",\"obedient\",\"objective\",\"obliged\",\"obnoxious\",\"obvious\",\"occasional\",\"occupational\",\"odd\",\"official\",\"ok\",\"okay\",\"old\",\"olympic\",\"only\",\"open\",\"operational\",\"opposite\",\"optimistic\",\"oral\",\"ordinary\",\"organic\",\"organisational\",\"original\",\"orthodox\",\"other\",\"outdoor\",\"outer\",\"outrageous\",\"outside\",\"outstanding\",\"overall\",\"overseas\",\"overwhelming\",\"painful\",\"pale\",\"panicky\",\"parallel\",\"parental\",\"parliamentary\",\"partial\",\"particular\",\"passing\",\"passive\",\"past\",\"patient\",\"payable\",\"peaceful\",\"peculiar\",\"perfect\",\"permanent\",\"persistent\",\"personal\",\"petite\",\"philosophical\",\"physical\",\"plain\",\"planned\",\"plastic\",\"pleasant\",\"pleased\",\"poised\",\"polite\",\"political\",\"poor\",\"popular\",\"positive\",\"possible\",\"potential\",\"powerful\",\"practical\",\"precious\",\"precise\",\"preferred\",\"pregnant\",\"preliminary\",\"premier\",\"prepared\",\"present\",\"presidential\",\"pretty\",\"previous\",\"prickly\",\"primary\",\"prime\",\"primitive\",\"principal\",\"printed\",\"prior\",\"private\",\"probable\",\"productive\",\"professional\",\"profitable\",\"profound\",\"progressive\",\"prominent\",\"promising\",\"proper\",\"proposed\",\"prospective\",\"protective\",\"protestant\",\"proud\",\"provincial\",\"psychiatric\",\"psychological\",\"public\",\"puny\",\"pure\",\"purring\",\"puzzled\",\"quaint\",\"qualified\",\"quarrelsome\",\"querulous\",\"quick\",\"quickest\",\"quiet\",\"quintessential\",\"quixotic\",\"racial\",\"radical\",\"rainy\",\"random\",\"rapid\",\"rare\",\"raspy\",\"rational\",\"ratty\",\"raw\",\"ready\",\"real\",\"realistic\",\"rear\",\"reasonable\",\"recent\",\"reduced\",\"redundant\",\"regional\",\"registered\",\"regular\",\"regulatory\",\"related\",\"relative\",\"relaxed\",\"relevant\",\"reliable\",\"relieved\",\"religious\",\"reluctant\",\"remaining\",\"remarkable\",\"remote\",\"renewed\",\"representative\",\"repulsive\",\"required\",\"resident\",\"residential\",\"resonant\",\"respectable\",\"respective\",\"responsible\",\"resulting\",\"retail\",\"retired\",\"revolutionary\",\"rich\",\"ridiculous\",\"right\",\"rigid\",\"ripe\",\"rising\",\"rival\",\"roasted\",\"robust\",\"rolling\",\"romantic\",\"rotten\",\"rough\",\"round\",\"royal\",\"rubber\",\"rude\",\"ruling\",\"running\",\"rural\",\"sacred\",\"sad\",\"safe\",\"salty\",\"satisfactory\",\"satisfied\",\"scared\",\"scary\",\"scattered\",\"scientific\",\"scornful\",\"scrawny\",\"screeching\",\"secondary\",\"secret\",\"secure\",\"select\",\"selected\",\"selective\",\"selfish\",\"semantic\",\"senior\",\"sensible\",\"sensitive\",\"separate\",\"serious\",\"severe\",\"sexual\",\"shaggy\",\"shaky\",\"shallow\",\"shared\",\"sharp\",\"sheer\",\"shiny\",\"shivering\",\"shocked\",\"short\",\"shrill\",\"shy\",\"sick\",\"significant\",\"silent\",\"silky\",\"silly\",\"similar\",\"simple\",\"single\",\"skilled\",\"skinny\",\"sleepy\",\"slight\",\"slim\",\"slimy\",\"slippery\",\"slow\",\"small\",\"smart\",\"smiling\",\"smoggy\",\"smooth\",\"social\",\"socialist\",\"soft\",\"solar\",\"sole\",\"solid\",\"sophisticated\",\"sore\",\"sorry\",\"sound\",\"sour\",\"southern\",\"soviet\",\"spare\",\"sparkling\",\"spatial\",\"special\",\"specific\",\"specified\",\"spectacular\",\"spicy\",\"spiritual\",\"splendid\",\"spontaneous\",\"sporting\",\"spotless\",\"spotty\",\"square\",\"squealing\",\"stable\",\"stale\",\"standard\",\"static\",\"statistical\",\"statutory\",\"steady\",\"steep\",\"sticky\",\"stiff\",\"still\",\"stingy\",\"stormy\",\"straight\",\"straightforward\",\"strange\",\"strategic\",\"strict\",\"striking\",\"striped\",\"strong\",\"structural\",\"stuck\",\"stupid\",\"subjective\",\"subsequent\",\"substantial\",\"subtle\",\"successful\",\"successive\",\"sudden\",\"sufficient\",\"suitable\",\"sunny\",\"super\",\"superb\",\"superior\",\"supporting\",\"supposed\",\"supreme\",\"sure\",\"surprised\",\"surprising\",\"surrounding\",\"surviving\",\"suspicious\",\"sweet\",\"swift\",\"symbolic\",\"sympathetic\",\"systematic\",\"tall\",\"tame\",\"tart\",\"tasteless\",\"tasty\",\"technical\",\"technological\",\"teenage\",\"temporary\",\"tender\",\"tense\",\"terrible\",\"territorial\",\"testy\",\"then\",\"theoretical\",\"thick\",\"thin\",\"thirsty\",\"thorough\",\"thoughtful\",\"thoughtless\",\"thundering\",\"tight\",\"tiny\",\"tired\",\"top\",\"tory\",\"total\",\"tough\",\"toxic\",\"traditional\",\"tragic\",\"tremendous\",\"tricky\",\"tropical\",\"troubled\",\"typical\",\"ugliest\",\"ugly\",\"ultimate\",\"unable\",\"unacceptable\",\"unaware\",\"uncertain\",\"unchanged\",\"uncomfortable\",\"unconscious\",\"underground\",\"underlying\",\"unemployed\",\"uneven\",\"unexpected\",\"unfair\",\"unfortunate\",\"unhappy\",\"uniform\",\"uninterested\",\"unique\",\"united\",\"universal\",\"unknown\",\"unlikely\",\"unnecessary\",\"unpleasant\",\"unsightly\",\"unusual\",\"unwilling\",\"upper\",\"upset\",\"uptight\",\"urban\",\"urgent\",\"used\",\"useful\",\"useless\",\"usual\",\"vague\",\"valid\",\"valuable\",\"variable\",\"varied\",\"various\",\"varying\",\"vast\",\"verbal\",\"vertical\",\"very\",\"vicarious\",\"vicious\",\"victorious\",\"violent\",\"visible\",\"visiting\",\"visual\",\"vital\",\"vitreous\",\"vivacious\",\"vivid\",\"vocal\",\"vocational\",\"voiceless\",\"voluminous\",\"voluntary\",\"vulnerable\",\"wandering\",\"warm\",\"wasteful\",\"watery\",\"weak\",\"wealthy\",\"weary\",\"wee\",\"weekly\",\"weird\",\"welcome\",\"well\",\"western\",\"wet\",\"whispering\",\"whole\",\"wicked\",\"wide\",\"widespread\",\"wild\",\"wilful\",\"willing\",\"willowy\",\"wily\",\"wise\",\"wispy\",\"wittering\",\"witty\",\"wonderful\",\"wooden\",\"working\",\"worldwide\",\"worried\",\"worrying\",\"worthwhile\",\"worthy\",\"written\",\"wrong\",\"xenacious\",\"xenial\",\"xenogeneic\",\"xenophobic\",\"xeric\",\"xerothermic\",\"yabbering\",\"yammering\",\"yappiest\",\"yappy\",\"yawning\",\"yearling\",\"yearning\",\"yeasty\",\"yelling\",\"yelping\",\"yielding\",\"yodelling\",\"young\",\"youngest\",\"youthful\",\"ytterbic\",\"yucky\",\"yummy\",\"zany\",\"zealous\",\"zeroth\",\"zestful\",\"zesty\",\"zippy\",\"zonal\",\"zoophagous\",\"zygomorphic\",\"zygotic\"],exports.animals=[\"aardvark\",\"aardwolf\",\"albatross\",\"alligator\",\"alpaca\",\"amphibian\",\"anaconda\",\"angelfish\",\"anglerfish\",\"ant\",\"anteater\",\"antelope\",\"antlion\",\"ape\",\"aphid\",\"armadillo\",\"asp\",\"baboon\",\"badger\",\"bandicoot\",\"barnacle\",\"barracuda\",\"basilisk\",\"bass\",\"bat\",\"bear\",\"beaver\",\"bedbug\",\"bee\",\"beetle\",\"bird\",\"bison\",\"blackbird\",\"boa\",\"boar\",\"bobcat\",\"bobolink\",\"bonobo\",\"booby\",\"bovid\",\"bug\",\"butterfly\",\"buzzard\",\"camel\",\"canid\",\"canidae\",\"capybara\",\"cardinal\",\"caribou\",\"carp\",\"cat\",\"caterpillar\",\"catfish\",\"catshark\",\"cattle\",\"centipede\",\"cephalopod\",\"chameleon\",\"cheetah\",\"chickadee\",\"chicken\",\"chimpanzee\",\"chinchilla\",\"chipmunk\",\"cicada\",\"clam\",\"clownfish\",\"cobra\",\"cockroach\",\"cod\",\"condor\",\"constrictor\",\"coral\",\"cougar\",\"cow\",\"coyote\",\"crab\",\"crane\",\"crawdad\",\"crayfish\",\"cricket\",\"crocodile\",\"crow\",\"cuckoo\",\"damselfly\",\"deer\",\"dingo\",\"dinosaur\",\"dog\",\"dolphin\",\"donkey\",\"dormouse\",\"dove\",\"dragon\",\"dragonfly\",\"duck\",\"eagle\",\"earthworm\",\"earwig\",\"echidna\",\"eel\",\"egret\",\"elephant\",\"elk\",\"emu\",\"ermine\",\"falcon\",\"felidae\",\"ferret\",\"finch\",\"firefly\",\"fish\",\"flamingo\",\"flea\",\"fly\",\"flyingfish\",\"fowl\",\"fox\",\"frog\",\"galliform\",\"gamefowl\",\"gayal\",\"gazelle\",\"gecko\",\"gerbil\",\"gibbon\",\"giraffe\",\"goat\",\"goldfish\",\"goose\",\"gopher\",\"gorilla\",\"grasshopper\",\"grouse\",\"guan\",\"guanaco\",\"guineafowl\",\"gull\",\"guppy\",\"haddock\",\"halibut\",\"hamster\",\"hare\",\"harrier\",\"hawk\",\"hedgehog\",\"heron\",\"herring\",\"hippopotamus\",\"hookworm\",\"hornet\",\"horse\",\"hoverfly\",\"hummingbird\",\"hyena\",\"iguana\",\"impala\",\"jackal\",\"jaguar\",\"jay\",\"jellyfish\",\"junglefowl\",\"kangaroo\",\"kingfisher\",\"kite\",\"kiwi\",\"koala\",\"koi\",\"krill\",\"ladybug\",\"lamprey\",\"landfowl\",\"lark\",\"leech\",\"lemming\",\"lemur\",\"leopard\",\"leopon\",\"limpet\",\"lion\",\"lizard\",\"llama\",\"lobster\",\"locust\",\"loon\",\"louse\",\"lungfish\",\"lynx\",\"macaw\",\"mackerel\",\"magpie\",\"mammal\",\"manatee\",\"mandrill\",\"marlin\",\"marmoset\",\"marmot\",\"marsupial\",\"marten\",\"mastodon\",\"meadowlark\",\"meerkat\",\"mink\",\"minnow\",\"mite\",\"mockingbird\",\"mole\",\"mollusk\",\"mongoose\",\"monkey\",\"moose\",\"mosquito\",\"moth\",\"mouse\",\"mule\",\"muskox\",\"narwhal\",\"newt\",\"nightingale\",\"ocelot\",\"octopus\",\"opossum\",\"orangutan\",\"orca\",\"ostrich\",\"otter\",\"owl\",\"ox\",\"panda\",\"panther\",\"parakeet\",\"parrot\",\"parrotfish\",\"partridge\",\"peacock\",\"peafowl\",\"pelican\",\"penguin\",\"perch\",\"pheasant\",\"pig\",\"pigeon\",\"pike\",\"pinniped\",\"piranha\",\"planarian\",\"platypus\",\"pony\",\"porcupine\",\"porpoise\",\"possum\",\"prawn\",\"primate\",\"ptarmigan\",\"puffin\",\"puma\",\"python\",\"quail\",\"quelea\",\"quokka\",\"rabbit\",\"raccoon\",\"rat\",\"rattlesnake\",\"raven\",\"reindeer\",\"reptile\",\"rhinoceros\",\"roadrunner\",\"rodent\",\"rook\",\"rooster\",\"roundworm\",\"sailfish\",\"salamander\",\"salmon\",\"sawfish\",\"scallop\",\"scorpion\",\"seahorse\",\"shark\",\"sheep\",\"shrew\",\"shrimp\",\"silkworm\",\"silverfish\",\"skink\",\"skunk\",\"sloth\",\"slug\",\"smelt\",\"snail\",\"snake\",\"snipe\",\"sole\",\"sparrow\",\"spider\",\"spoonbill\",\"squid\",\"squirrel\",\"starfish\",\"stingray\",\"stoat\",\"stork\",\"sturgeon\",\"swallow\",\"swan\",\"swift\",\"swordfish\",\"swordtail\",\"tahr\",\"takin\",\"tapir\",\"tarantula\",\"tarsier\",\"termite\",\"tern\",\"thrush\",\"tick\",\"tiger\",\"tiglon\",\"toad\",\"tortoise\",\"toucan\",\"trout\",\"tuna\",\"turkey\",\"turtle\",\"tyrannosaurus\",\"unicorn\",\"urial\",\"vicuna\",\"viper\",\"vole\",\"vulture\",\"wallaby\",\"walrus\",\"warbler\",\"wasp\",\"weasel\",\"whale\",\"whippet\",\"whitefish\",\"wildcat\",\"wildebeest\",\"wildfowl\",\"wolf\",\"wolverine\",\"wombat\",\"woodpecker\",\"worm\",\"wren\",\"xerinae\",\"yak\",\"zebra\"],exports.colors=[\"amaranth\",\"amber\",\"amethyst\",\"apricot\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"black\",\"blue\",\"blush\",\"bronze\",\"brown\",\"chocolate\",\"coffee\",\"copper\",\"coral\",\"crimson\",\"cyan\",\"emerald\",\"fuchsia\",\"gold\",\"gray\",\"green\",\"harlequin\",\"indigo\",\"ivory\",\"jade\",\"lavender\",\"lime\",\"magenta\",\"maroon\",\"moccasin\",\"olive\",\"orange\",\"peach\",\"pink\",\"plum\",\"purple\",\"red\",\"rose\",\"salmon\",\"sapphire\",\"scarlet\",\"silver\",\"tan\",\"teal\",\"tomato\",\"turquoise\",\"violet\",\"white\",\"yellow\"],exports.countries=[\"Afghanistan\",\"Åland Islands\",\"Albania\",\"Algeria\",\"American Samoa\",\"Andorra\",\"Angola\",\"Anguilla\",\"Antarctica\",\"Antigua & Barbuda\",\"Argentina\",\"Armenia\",\"Aruba\",\"Ascension Island\",\"Australia\",\"Austria\",\"Azerbaijan\",\"Bahamas\",\"Bahrain\",\"Bangladesh\",\"Barbados\",\"Belarus\",\"Belgium\",\"Belize\",\"Benin\",\"Bermuda\",\"Bhutan\",\"Bolivia\",\"Bosnia & Herzegovina\",\"Botswana\",\"Brazil\",\"British Indian Ocean Territory\",\"British Virgin Islands\",\"Brunei\",\"Bulgaria\",\"Burkina Faso\",\"Burundi\",\"Cambodia\",\"Cameroon\",\"Canada\",\"Canary Islands\",\"Cape Verde\",\"Caribbean Netherlands\",\"Cayman Islands\",\"Central African Republic\",\"Ceuta & Melilla\",\"Chad\",\"Chile\",\"China\",\"Christmas Island\",\"Cocos Islands\",\"Colombia\",\"Comoros\",\"Congo\",\"Cook Islands\",\"Costa Rica\",\"Côte d'Ivoire\",\"Croatia\",\"Cuba\",\"Curaçao\",\"Cyprus\",\"Czechia\",\"Denmark\",\"Diego Garcia\",\"Djibouti\",\"Dominica\",\"Dominican Republic\",\"Ecuador\",\"Egypt\",\"El Salvador\",\"Equatorial Guinea\",\"Eritrea\",\"Estonia\",\"Ethiopia\",\"Eurozone\",\"Falkland Islands\",\"Faroe Islands\",\"Fiji\",\"Finland\",\"France\",\"French Guiana\",\"French Polynesia\",\"French Southern Territories\",\"Gabon\",\"Gambia\",\"Georgia\",\"Germany\",\"Ghana\",\"Gibraltar\",\"Greece\",\"Greenland\",\"Grenada\",\"Guadeloupe\",\"Guam\",\"Guatemala\",\"Guernsey\",\"Guinea\",\"Guinea-Bissau\",\"Guyana\",\"Haiti\",\"Honduras\",\"Hong Kong SAR China\",\"Hungary\",\"Iceland\",\"India\",\"Indonesia\",\"Iran\",\"Iraq\",\"Ireland\",\"Isle of Man\",\"Israel\",\"Italy\",\"Jamaica\",\"Japan\",\"Jersey\",\"Jordan\",\"Kazakhstan\",\"Kenya\",\"Kiribati\",\"Kosovo\",\"Kuwait\",\"Kyrgyzstan\",\"Laos\",\"Latvia\",\"Lebanon\",\"Lesotho\",\"Liberia\",\"Libya\",\"Liechtenstein\",\"Lithuania\",\"Luxembourg\",\"Macau SAR China\",\"Macedonia\",\"Madagascar\",\"Malawi\",\"Malaysia\",\"Maldives\",\"Mali\",\"Malta\",\"Marshall Islands\",\"Martinique\",\"Mauritania\",\"Mauritius\",\"Mayotte\",\"Mexico\",\"Micronesia\",\"Moldova\",\"Monaco\",\"Mongolia\",\"Montenegro\",\"Montserrat\",\"Morocco\",\"Mozambique\",\"Myanmar\",\"Namibia\",\"Nauru\",\"Nepal\",\"Netherlands\",\"New Caledonia\",\"New Zealand\",\"Nicaragua\",\"Niger\",\"Nigeria\",\"Niue\",\"Norfolk Island\",\"North Korea\",\"Northern Mariana Islands\",\"Norway\",\"Oman\",\"Pakistan\",\"Palau\",\"Palestinian Territories\",\"Panama\",\"Papua New Guinea\",\"Paraguay\",\"Peru\",\"Philippines\",\"Pitcairn Islands\",\"Poland\",\"Portugal\",\"Puerto Rico\",\"Qatar\",\"Réunion\",\"Romania\",\"Russia\",\"Rwanda\",\"Samoa\",\"San Marino\",\"São Tomé & Príncipe\",\"Saudi Arabia\",\"Senegal\",\"Serbia\",\"Seychelles\",\"Sierra Leone\",\"Singapore\",\"Sint Maarten\",\"Slovakia\",\"Slovenia\",\"Solomon Islands\",\"Somalia\",\"South Africa\",\"South Georgia & South Sandwich Islands\",\"South Korea\",\"South Sudan\",\"Spain\",\"Sri Lanka\",\"St. Barthélemy\",\"St. Helena\",\"St. Kitts & Nevis\",\"St. Lucia\",\"St. Martin\",\"St. Pierre & Miquelon\",\"St. Vincent & Grenadines\",\"Sudan\",\"Suriname\",\"Svalbard & Jan Mayen\",\"Swaziland\",\"Sweden\",\"Switzerland\",\"Syria\",\"Taiwan\",\"Tajikistan\",\"Tanzania\",\"Thailand\",\"Timor-Leste\",\"Togo\",\"Tokelau\",\"Tonga\",\"Trinidad & Tobago\",\"Tristan da Cunha\",\"Tunisia\",\"Turkey\",\"Turkmenistan\",\"Turks & Caicos Islands\",\"Tuvalu\",\"U.S. Outlying Islands\",\"U.S. Virgin Islands\",\"Uganda\",\"Ukraine\",\"United Arab Emirates\",\"United Kingdom\",\"United Nations\",\"United States\",\"Uruguay\",\"Uzbekistan\",\"Vanuatu\",\"Vatican City\",\"Venezuela\",\"Vietnam\",\"Wallis & Futuna\",\"Western Sahara\",\"Yemen\",\"Zambia\",\"Zimbabwe\"],exports.languages=[\"Akan\",\"Amharic\",\"Arabic\",\"Assamese\",\"Awadhi\",\"Azerbaijani\",\"Balochi\",\"Belarusian\",\"Bengali\",\"Bhojpuri\",\"Burmese\",\"Cebuano\",\"Chewa\",\"Chhattisgarhi\",\"Chittagonian\",\"Czech\",\"Deccan\",\"Dhundhari\",\"Dutch\",\"English\",\"French\",\"Fula\",\"Gan\",\"German\",\"Greek\",\"Gujarati\",\"Hakka\",\"Haryanvi\",\"Hausa\",\"Hiligaynon\",\"Hindi\",\"Hmong\",\"Hungarian\",\"Igbo\",\"Ilocano\",\"Italian\",\"Japanese\",\"Javanese\",\"Jin\",\"Kannada\",\"Kazakh\",\"Khmer\",\"Kinyarwanda\",\"Kirundi\",\"Konkani\",\"Korean\",\"Kurdish\",\"Madurese\",\"Magahi\",\"Maithili\",\"Malagasy\",\"Malay\",\"Malayalam\",\"Mandarin\",\"Marathi\",\"Marwari\",\"Min\",\"Mossi\",\"Nepali\",\"Odia\",\"Oromo\",\"Pashto\",\"Persian\",\"Polish\",\"Portuguese\",\"Punjabi\",\"Quechua\",\"Romanian\",\"Russian\",\"Saraiki\",\"Shona\",\"Sindhi\",\"Sinhala\",\"Somali\",\"Spanish\",\"Sundanese\",\"Swedish\",\"Sylheti\",\"Tagalog\",\"Tamil\",\"Telugu\",\"Thai\",\"Turkish\",\"Turkmen\",\"Ukrainian\",\"Urdu\",\"Uyghur\",\"Uzbek\",\"Vietnamese\",\"Wu\",\"Xhosa\",\"Xiang\",\"Yoruba\",\"Yue\",\"Zhuang\",\"Zulu\"],exports.names=[\"Aaren\",\"Aarika\",\"Abagael\",\"Abagail\",\"Abbe\",\"Abbey\",\"Abbi\",\"Abbie\",\"Abby\",\"Abbye\",\"Abigael\",\"Abigail\",\"Abigale\",\"Abra\",\"Ada\",\"Adah\",\"Adaline\",\"Adan\",\"Adara\",\"Adda\",\"Addi\",\"Addia\",\"Addie\",\"Addy\",\"Adel\",\"Adela\",\"Adelaida\",\"Adelaide\",\"Adele\",\"Adelheid\",\"Adelice\",\"Adelina\",\"Adelind\",\"Adeline\",\"Adella\",\"Adelle\",\"Adena\",\"Adey\",\"Adi\",\"Adiana\",\"Adina\",\"Adora\",\"Adore\",\"Adoree\",\"Adorne\",\"Adrea\",\"Adria\",\"Adriaens\",\"Adrian\",\"Adriana\",\"Adriane\",\"Adrianna\",\"Adrianne\",\"Adriena\",\"Adrienne\",\"Aeriel\",\"Aeriela\",\"Aeriell\",\"Afton\",\"Ag\",\"Agace\",\"Agata\",\"Agatha\",\"Agathe\",\"Aggi\",\"Aggie\",\"Aggy\",\"Agna\",\"Agnella\",\"Agnes\",\"Agnese\",\"Agnesse\",\"Agneta\",\"Agnola\",\"Agretha\",\"Aida\",\"Aidan\",\"Aigneis\",\"Aila\",\"Aile\",\"Ailee\",\"Aileen\",\"Ailene\",\"Ailey\",\"Aili\",\"Ailina\",\"Ailis\",\"Ailsun\",\"Ailyn\",\"Aime\",\"Aimee\",\"Aimil\",\"Aindrea\",\"Ainslee\",\"Ainsley\",\"Ainslie\",\"Ajay\",\"Alaine\",\"Alameda\",\"Alana\",\"Alanah\",\"Alane\",\"Alanna\",\"Alayne\",\"Alberta\",\"Albertina\",\"Albertine\",\"Albina\",\"Alecia\",\"Aleda\",\"Aleece\",\"Aleen\",\"Alejandra\",\"Alejandrina\",\"Alena\",\"Alene\",\"Alessandra\",\"Aleta\",\"Alethea\",\"Alex\",\"Alexa\",\"Alexandra\",\"Alexandrina\",\"Alexi\",\"Alexia\",\"Alexina\",\"Alexine\",\"Alexis\",\"Alfi\",\"Alfie\",\"Alfreda\",\"Alfy\",\"Ali\",\"Alia\",\"Alica\",\"Alice\",\"Alicea\",\"Alicia\",\"Alida\",\"Alidia\",\"Alie\",\"Alika\",\"Alikee\",\"Alina\",\"Aline\",\"Alis\",\"Alisa\",\"Alisha\",\"Alison\",\"Alissa\",\"Alisun\",\"Alix\",\"Aliza\",\"Alla\",\"Alleen\",\"Allegra\",\"Allene\",\"Alli\",\"Allianora\",\"Allie\",\"Allina\",\"Allis\",\"Allison\",\"Allissa\",\"Allix\",\"Allsun\",\"Allx\",\"Ally\",\"Allyce\",\"Allyn\",\"Allys\",\"Allyson\",\"Alma\",\"Almeda\",\"Almeria\",\"Almeta\",\"Almira\",\"Almire\",\"Aloise\",\"Aloisia\",\"Aloysia\",\"Alta\",\"Althea\",\"Alvera\",\"Alverta\",\"Alvina\",\"Alvinia\",\"Alvira\",\"Alyce\",\"Alyda\",\"Alys\",\"Alysa\",\"Alyse\",\"Alysia\",\"Alyson\",\"Alyss\",\"Alyssa\",\"Amabel\",\"Amabelle\",\"Amalea\",\"Amalee\",\"Amaleta\",\"Amalia\",\"Amalie\",\"Amalita\",\"Amalle\",\"Amanda\",\"Amandi\",\"Amandie\",\"Amandy\",\"Amara\",\"Amargo\",\"Amata\",\"Amber\",\"Amberly\",\"Ambur\",\"Ame\",\"Amelia\",\"Amelie\",\"Amelina\",\"Ameline\",\"Amelita\",\"Ami\",\"Amie\",\"Amii\",\"Amil\",\"Amitie\",\"Amity\",\"Ammamaria\",\"Amy\",\"Amye\",\"Ana\",\"Anabal\",\"Anabel\",\"Anabella\",\"Anabelle\",\"Analiese\",\"Analise\",\"Anallese\",\"Anallise\",\"Anastasia\",\"Anastasie\",\"Anastassia\",\"Anatola\",\"Andee\",\"Andeee\",\"Anderea\",\"Andi\",\"Andie\",\"Andra\",\"Andrea\",\"Andreana\",\"Andree\",\"Andrei\",\"Andria\",\"Andriana\",\"Andriette\",\"Andromache\",\"Andy\",\"Anestassia\",\"Anet\",\"Anett\",\"Anetta\",\"Anette\",\"Ange\",\"Angel\",\"Angela\",\"Angele\",\"Angelia\",\"Angelica\",\"Angelika\",\"Angelina\",\"Angeline\",\"Angelique\",\"Angelita\",\"Angelle\",\"Angie\",\"Angil\",\"Angy\",\"Ania\",\"Anica\",\"Anissa\",\"Anita\",\"Anitra\",\"Anjanette\",\"Anjela\",\"Ann\",\"Ann-marie\",\"Anna\",\"Anna-diana\",\"Anna-diane\",\"Anna-maria\",\"Annabal\",\"Annabel\",\"Annabela\",\"Annabell\",\"Annabella\",\"Annabelle\",\"Annadiana\",\"Annadiane\",\"Annalee\",\"Annaliese\",\"Annalise\",\"Annamaria\",\"Annamarie\",\"Anne\",\"Anne-corinne\",\"Anne-marie\",\"Annecorinne\",\"Anneliese\",\"Annelise\",\"Annemarie\",\"Annetta\",\"Annette\",\"Anni\",\"Annice\",\"Annie\",\"Annis\",\"Annissa\",\"Annmaria\",\"Annmarie\",\"Annnora\",\"Annora\",\"Anny\",\"Anselma\",\"Ansley\",\"Anstice\",\"Anthe\",\"Anthea\",\"Anthia\",\"Anthiathia\",\"Antoinette\",\"Antonella\",\"Antonetta\",\"Antonia\",\"Antonie\",\"Antonietta\",\"Antonina\",\"Anya\",\"Appolonia\",\"April\",\"Aprilette\",\"Ara\",\"Arabel\",\"Arabela\",\"Arabele\",\"Arabella\",\"Arabelle\",\"Arda\",\"Ardath\",\"Ardeen\",\"Ardelia\",\"Ardelis\",\"Ardella\",\"Ardelle\",\"Arden\",\"Ardene\",\"Ardenia\",\"Ardine\",\"Ardis\",\"Ardisj\",\"Ardith\",\"Ardra\",\"Ardyce\",\"Ardys\",\"Ardyth\",\"Aretha\",\"Ariadne\",\"Ariana\",\"Aridatha\",\"Ariel\",\"Ariela\",\"Ariella\",\"Arielle\",\"Arlana\",\"Arlee\",\"Arleen\",\"Arlen\",\"Arlena\",\"Arlene\",\"Arleta\",\"Arlette\",\"Arleyne\",\"Arlie\",\"Arliene\",\"Arlina\",\"Arlinda\",\"Arline\",\"Arluene\",\"Arly\",\"Arlyn\",\"Arlyne\",\"Aryn\",\"Ashely\",\"Ashia\",\"Ashien\",\"Ashil\",\"Ashla\",\"Ashlan\",\"Ashlee\",\"Ashleigh\",\"Ashlen\",\"Ashley\",\"Ashli\",\"Ashlie\",\"Ashly\",\"Asia\",\"Astra\",\"Astrid\",\"Astrix\",\"Atalanta\",\"Athena\",\"Athene\",\"Atlanta\",\"Atlante\",\"Auberta\",\"Aubine\",\"Aubree\",\"Aubrette\",\"Aubrey\",\"Aubrie\",\"Aubry\",\"Audi\",\"Audie\",\"Audra\",\"Audre\",\"Audrey\",\"Audrie\",\"Audry\",\"Audrye\",\"Audy\",\"Augusta\",\"Auguste\",\"Augustina\",\"Augustine\",\"Aundrea\",\"Aura\",\"Aurea\",\"Aurel\",\"Aurelea\",\"Aurelia\",\"Aurelie\",\"Auria\",\"Aurie\",\"Aurilia\",\"Aurlie\",\"Auroora\",\"Aurora\",\"Aurore\",\"Austin\",\"Austina\",\"Austine\",\"Ava\",\"Aveline\",\"Averil\",\"Averyl\",\"Avie\",\"Avis\",\"Aviva\",\"Avivah\",\"Avril\",\"Avrit\",\"Ayn\",\"Bab\",\"Babara\",\"Babb\",\"Babbette\",\"Babbie\",\"Babette\",\"Babita\",\"Babs\",\"Bambi\",\"Bambie\",\"Bamby\",\"Barb\",\"Barbabra\",\"Barbara\",\"Barbara-anne\",\"Barbaraanne\",\"Barbe\",\"Barbee\",\"Barbette\",\"Barbey\",\"Barbi\",\"Barbie\",\"Barbra\",\"Barby\",\"Bari\",\"Barrie\",\"Barry\",\"Basia\",\"Bathsheba\",\"Batsheva\",\"Bea\",\"Beatrice\",\"Beatrisa\",\"Beatrix\",\"Beatriz\",\"Bebe\",\"Becca\",\"Becka\",\"Becki\",\"Beckie\",\"Becky\",\"Bee\",\"Beilul\",\"Beitris\",\"Bekki\",\"Bel\",\"Belia\",\"Belicia\",\"Belinda\",\"Belita\",\"Bell\",\"Bella\",\"Bellanca\",\"Belle\",\"Bellina\",\"Belva\",\"Belvia\",\"Bendite\",\"Benedetta\",\"Benedicta\",\"Benedikta\",\"Benetta\",\"Benita\",\"Benni\",\"Bennie\",\"Benny\",\"Benoite\",\"Berenice\",\"Beret\",\"Berget\",\"Berna\",\"Bernadene\",\"Bernadette\",\"Bernadina\",\"Bernadine\",\"Bernardina\",\"Bernardine\",\"Bernelle\",\"Bernete\",\"Bernetta\",\"Bernette\",\"Berni\",\"Bernice\",\"Bernie\",\"Bernita\",\"Berny\",\"Berri\",\"Berrie\",\"Berry\",\"Bert\",\"Berta\",\"Berte\",\"Bertha\",\"Berthe\",\"Berti\",\"Bertie\",\"Bertina\",\"Bertine\",\"Berty\",\"Beryl\",\"Beryle\",\"Bess\",\"Bessie\",\"Bessy\",\"Beth\",\"Bethanne\",\"Bethany\",\"Bethena\",\"Bethina\",\"Betsey\",\"Betsy\",\"Betta\",\"Bette\",\"Bette-ann\",\"Betteann\",\"Betteanne\",\"Betti\",\"Bettina\",\"Bettine\",\"Betty\",\"Bettye\",\"Beulah\",\"Bev\",\"Beverie\",\"Beverlee\",\"Beverley\",\"Beverlie\",\"Beverly\",\"Bevvy\",\"Bianca\",\"Bianka\",\"Bibbie\",\"Bibby\",\"Bibbye\",\"Bibi\",\"Biddie\",\"Biddy\",\"Bidget\",\"Bili\",\"Bill\",\"Billi\",\"Billie\",\"Billy\",\"Billye\",\"Binni\",\"Binnie\",\"Binny\",\"Bird\",\"Birdie\",\"Birgit\",\"Birgitta\",\"Blair\",\"Blaire\",\"Blake\",\"Blakelee\",\"Blakeley\",\"Blanca\",\"Blanch\",\"Blancha\",\"Blanche\",\"Blinni\",\"Blinnie\",\"Blinny\",\"Bliss\",\"Blisse\",\"Blithe\",\"Blondell\",\"Blondelle\",\"Blondie\",\"Blondy\",\"Blythe\",\"Bobbe\",\"Bobbee\",\"Bobbette\",\"Bobbi\",\"Bobbie\",\"Bobby\",\"Bobbye\",\"Bobette\",\"Bobina\",\"Bobine\",\"Bobinette\",\"Bonita\",\"Bonnee\",\"Bonni\",\"Bonnibelle\",\"Bonnie\",\"Bonny\",\"Brana\",\"Brandais\",\"Brande\",\"Brandea\",\"Brandi\",\"Brandice\",\"Brandie\",\"Brandise\",\"Brandy\",\"Breanne\",\"Brear\",\"Bree\",\"Breena\",\"Bren\",\"Brena\",\"Brenda\",\"Brenn\",\"Brenna\",\"Brett\",\"Bria\",\"Briana\",\"Brianna\",\"Brianne\",\"Bride\",\"Bridget\",\"Bridgette\",\"Bridie\",\"Brier\",\"Brietta\",\"Brigid\",\"Brigida\",\"Brigit\",\"Brigitta\",\"Brigitte\",\"Brina\",\"Briney\",\"Brinn\",\"Brinna\",\"Briny\",\"Brit\",\"Brita\",\"Britney\",\"Britni\",\"Britt\",\"Britta\",\"Brittan\",\"Brittaney\",\"Brittani\",\"Brittany\",\"Britte\",\"Britteny\",\"Brittne\",\"Brittney\",\"Brittni\",\"Brook\",\"Brooke\",\"Brooks\",\"Brunhilda\",\"Brunhilde\",\"Bryana\",\"Bryn\",\"Bryna\",\"Brynn\",\"Brynna\",\"Brynne\",\"Buffy\",\"Bunni\",\"Bunnie\",\"Bunny\",\"Cacilia\",\"Cacilie\",\"Cahra\",\"Cairistiona\",\"Caitlin\",\"Caitrin\",\"Cal\",\"Calida\",\"Calla\",\"Calley\",\"Calli\",\"Callida\",\"Callie\",\"Cally\",\"Calypso\",\"Cam\",\"Camala\",\"Camel\",\"Camella\",\"Camellia\",\"Cami\",\"Camila\",\"Camile\",\"Camilla\",\"Camille\",\"Cammi\",\"Cammie\",\"Cammy\",\"Candace\",\"Candi\",\"Candice\",\"Candida\",\"Candide\",\"Candie\",\"Candis\",\"Candra\",\"Candy\",\"Caprice\",\"Cara\",\"Caralie\",\"Caren\",\"Carena\",\"Caresa\",\"Caressa\",\"Caresse\",\"Carey\",\"Cari\",\"Caria\",\"Carie\",\"Caril\",\"Carilyn\",\"Carin\",\"Carina\",\"Carine\",\"Cariotta\",\"Carissa\",\"Carita\",\"Caritta\",\"Carla\",\"Carlee\",\"Carleen\",\"Carlen\",\"Carlene\",\"Carley\",\"Carlie\",\"Carlin\",\"Carlina\",\"Carline\",\"Carlita\",\"Carlota\",\"Carlotta\",\"Carly\",\"Carlye\",\"Carlyn\",\"Carlynn\",\"Carlynne\",\"Carma\",\"Carmel\",\"Carmela\",\"Carmelia\",\"Carmelina\",\"Carmelita\",\"Carmella\",\"Carmelle\",\"Carmen\",\"Carmencita\",\"Carmina\",\"Carmine\",\"Carmita\",\"Carmon\",\"Caro\",\"Carol\",\"Carol-jean\",\"Carola\",\"Carolan\",\"Carolann\",\"Carole\",\"Carolee\",\"Carolin\",\"Carolina\",\"Caroline\",\"Caroljean\",\"Carolyn\",\"Carolyne\",\"Carolynn\",\"Caron\",\"Carree\",\"Carri\",\"Carrie\",\"Carrissa\",\"Carroll\",\"Carry\",\"Cary\",\"Caryl\",\"Caryn\",\"Casandra\",\"Casey\",\"Casi\",\"Casie\",\"Cass\",\"Cassandra\",\"Cassandre\",\"Cassandry\",\"Cassaundra\",\"Cassey\",\"Cassi\",\"Cassie\",\"Cassondra\",\"Cassy\",\"Catarina\",\"Cate\",\"Caterina\",\"Catha\",\"Catharina\",\"Catharine\",\"Cathe\",\"Cathee\",\"Catherin\",\"Catherina\",\"Catherine\",\"Cathi\",\"Cathie\",\"Cathleen\",\"Cathlene\",\"Cathrin\",\"Cathrine\",\"Cathryn\",\"Cathy\",\"Cathyleen\",\"Cati\",\"Catie\",\"Catina\",\"Catlaina\",\"Catlee\",\"Catlin\",\"Catrina\",\"Catriona\",\"Caty\",\"Caye\",\"Cayla\",\"Cecelia\",\"Cecil\",\"Cecile\",\"Ceciley\",\"Cecilia\",\"Cecilla\",\"Cecily\",\"Ceil\",\"Cele\",\"Celene\",\"Celesta\",\"Celeste\",\"Celestia\",\"Celestina\",\"Celestine\",\"Celestyn\",\"Celestyna\",\"Celia\",\"Celie\",\"Celina\",\"Celinda\",\"Celine\",\"Celinka\",\"Celisse\",\"Celka\",\"Celle\",\"Cesya\",\"Chad\",\"Chanda\",\"Chandal\",\"Chandra\",\"Channa\",\"Chantal\",\"Chantalle\",\"Charil\",\"Charin\",\"Charis\",\"Charissa\",\"Charisse\",\"Charita\",\"Charity\",\"Charla\",\"Charlean\",\"Charleen\",\"Charlena\",\"Charlene\",\"Charline\",\"Charlot\",\"Charlotta\",\"Charlotte\",\"Charmain\",\"Charmaine\",\"Charmane\",\"Charmian\",\"Charmine\",\"Charmion\",\"Charo\",\"Charyl\",\"Chastity\",\"Chelsae\",\"Chelsea\",\"Chelsey\",\"Chelsie\",\"Chelsy\",\"Cher\",\"Chere\",\"Cherey\",\"Cheri\",\"Cherianne\",\"Cherice\",\"Cherida\",\"Cherie\",\"Cherilyn\",\"Cherilynn\",\"Cherin\",\"Cherise\",\"Cherish\",\"Cherlyn\",\"Cherri\",\"Cherrita\",\"Cherry\",\"Chery\",\"Cherye\",\"Cheryl\",\"Cheslie\",\"Chiarra\",\"Chickie\",\"Chicky\",\"Chiquia\",\"Chiquita\",\"Chlo\",\"Chloe\",\"Chloette\",\"Chloris\",\"Chris\",\"Chrissie\",\"Chrissy\",\"Christa\",\"Christabel\",\"Christabella\",\"Christal\",\"Christalle\",\"Christan\",\"Christean\",\"Christel\",\"Christen\",\"Christi\",\"Christian\",\"Christiana\",\"Christiane\",\"Christie\",\"Christin\",\"Christina\",\"Christine\",\"Christy\",\"Christye\",\"Christyna\",\"Chrysa\",\"Chrysler\",\"Chrystal\",\"Chryste\",\"Chrystel\",\"Cicely\",\"Cicily\",\"Ciel\",\"Cilka\",\"Cinda\",\"Cindee\",\"Cindelyn\",\"Cinderella\",\"Cindi\",\"Cindie\",\"Cindra\",\"Cindy\",\"Cinnamon\",\"Cissiee\",\"Cissy\",\"Clair\",\"Claire\",\"Clara\",\"Clarabelle\",\"Clare\",\"Claresta\",\"Clareta\",\"Claretta\",\"Clarette\",\"Clarey\",\"Clari\",\"Claribel\",\"Clarice\",\"Clarie\",\"Clarinda\",\"Clarine\",\"Clarissa\",\"Clarisse\",\"Clarita\",\"Clary\",\"Claude\",\"Claudelle\",\"Claudetta\",\"Claudette\",\"Claudia\",\"Claudie\",\"Claudina\",\"Claudine\",\"Clea\",\"Clem\",\"Clemence\",\"Clementia\",\"Clementina\",\"Clementine\",\"Clemmie\",\"Clemmy\",\"Cleo\",\"Cleopatra\",\"Clerissa\",\"Clio\",\"Clo\",\"Cloe\",\"Cloris\",\"Clotilda\",\"Clovis\",\"Codee\",\"Codi\",\"Codie\",\"Cody\",\"Coleen\",\"Colene\",\"Coletta\",\"Colette\",\"Colleen\",\"Collen\",\"Collete\",\"Collette\",\"Collie\",\"Colline\",\"Colly\",\"Con\",\"Concettina\",\"Conchita\",\"Concordia\",\"Conni\",\"Connie\",\"Conny\",\"Consolata\",\"Constance\",\"Constancia\",\"Constancy\",\"Constanta\",\"Constantia\",\"Constantina\",\"Constantine\",\"Consuela\",\"Consuelo\",\"Cookie\",\"Cora\",\"Corabel\",\"Corabella\",\"Corabelle\",\"Coral\",\"Coralie\",\"Coraline\",\"Coralyn\",\"Cordelia\",\"Cordelie\",\"Cordey\",\"Cordi\",\"Cordie\",\"Cordula\",\"Cordy\",\"Coreen\",\"Corella\",\"Corenda\",\"Corene\",\"Coretta\",\"Corette\",\"Corey\",\"Cori\",\"Corie\",\"Corilla\",\"Corina\",\"Corine\",\"Corinna\",\"Corinne\",\"Coriss\",\"Corissa\",\"Corliss\",\"Corly\",\"Cornela\",\"Cornelia\",\"Cornelle\",\"Cornie\",\"Corny\",\"Correna\",\"Correy\",\"Corri\",\"Corrianne\",\"Corrie\",\"Corrina\",\"Corrine\",\"Corrinne\",\"Corry\",\"Cortney\",\"Cory\",\"Cosetta\",\"Cosette\",\"Costanza\",\"Courtenay\",\"Courtnay\",\"Courtney\",\"Crin\",\"Cris\",\"Crissie\",\"Crissy\",\"Crista\",\"Cristabel\",\"Cristal\",\"Cristen\",\"Cristi\",\"Cristie\",\"Cristin\",\"Cristina\",\"Cristine\",\"Cristionna\",\"Cristy\",\"Crysta\",\"Crystal\",\"Crystie\",\"Cthrine\",\"Cyb\",\"Cybil\",\"Cybill\",\"Cymbre\",\"Cynde\",\"Cyndi\",\"Cyndia\",\"Cyndie\",\"Cyndy\",\"Cynthea\",\"Cynthia\",\"Cynthie\",\"Cynthy\",\"Dacey\",\"Dacia\",\"Dacie\",\"Dacy\",\"Dael\",\"Daffi\",\"Daffie\",\"Daffy\",\"Dagmar\",\"Dahlia\",\"Daile\",\"Daisey\",\"Daisi\",\"Daisie\",\"Daisy\",\"Dale\",\"Dalenna\",\"Dalia\",\"Dalila\",\"Dallas\",\"Daloris\",\"Damara\",\"Damaris\",\"Damita\",\"Dana\",\"Danell\",\"Danella\",\"Danette\",\"Dani\",\"Dania\",\"Danica\",\"Danice\",\"Daniela\",\"Daniele\",\"Daniella\",\"Danielle\",\"Danika\",\"Danila\",\"Danit\",\"Danita\",\"Danna\",\"Danni\",\"Dannie\",\"Danny\",\"Dannye\",\"Danya\",\"Danyelle\",\"Danyette\",\"Daphene\",\"Daphna\",\"Daphne\",\"Dara\",\"Darb\",\"Darbie\",\"Darby\",\"Darcee\",\"Darcey\",\"Darci\",\"Darcie\",\"Darcy\",\"Darda\",\"Dareen\",\"Darell\",\"Darelle\",\"Dari\",\"Daria\",\"Darice\",\"Darla\",\"Darleen\",\"Darlene\",\"Darline\",\"Darlleen\",\"Daron\",\"Darrelle\",\"Darryl\",\"Darsey\",\"Darsie\",\"Darya\",\"Daryl\",\"Daryn\",\"Dasha\",\"Dasi\",\"Dasie\",\"Dasya\",\"Datha\",\"Daune\",\"Daveen\",\"Daveta\",\"Davida\",\"Davina\",\"Davine\",\"Davita\",\"Dawn\",\"Dawna\",\"Dayle\",\"Dayna\",\"Ddene\",\"De\",\"Deana\",\"Deane\",\"Deanna\",\"Deanne\",\"Deb\",\"Debbi\",\"Debbie\",\"Debby\",\"Debee\",\"Debera\",\"Debi\",\"Debor\",\"Debora\",\"Deborah\",\"Debra\",\"Dede\",\"Dedie\",\"Dedra\",\"Dee\",\"Deeann\",\"Deeanne\",\"Deedee\",\"Deena\",\"Deerdre\",\"Deeyn\",\"Dehlia\",\"Deidre\",\"Deina\",\"Deirdre\",\"Del\",\"Dela\",\"Delcina\",\"Delcine\",\"Delia\",\"Delila\",\"Delilah\",\"Delinda\",\"Dell\",\"Della\",\"Delly\",\"Delora\",\"Delores\",\"Deloria\",\"Deloris\",\"Delphine\",\"Delphinia\",\"Demeter\",\"Demetra\",\"Demetria\",\"Demetris\",\"Dena\",\"Deni\",\"Denice\",\"Denise\",\"Denna\",\"Denni\",\"Dennie\",\"Denny\",\"Deny\",\"Denys\",\"Denyse\",\"Deonne\",\"Desdemona\",\"Desirae\",\"Desiree\",\"Desiri\",\"Deva\",\"Devan\",\"Devi\",\"Devin\",\"Devina\",\"Devinne\",\"Devon\",\"Devondra\",\"Devonna\",\"Devonne\",\"Devora\",\"Di\",\"Diahann\",\"Dian\",\"Diana\",\"Diandra\",\"Diane\",\"Diane-marie\",\"Dianemarie\",\"Diann\",\"Dianna\",\"Dianne\",\"Diannne\",\"Didi\",\"Dido\",\"Diena\",\"Dierdre\",\"Dina\",\"Dinah\",\"Dinnie\",\"Dinny\",\"Dion\",\"Dione\",\"Dionis\",\"Dionne\",\"Dita\",\"Dix\",\"Dixie\",\"Dniren\",\"Dode\",\"Dodi\",\"Dodie\",\"Dody\",\"Doe\",\"Doll\",\"Dolley\",\"Dolli\",\"Dollie\",\"Dolly\",\"Dolores\",\"Dolorita\",\"Doloritas\",\"Domeniga\",\"Dominga\",\"Domini\",\"Dominica\",\"Dominique\",\"Dona\",\"Donella\",\"Donelle\",\"Donetta\",\"Donia\",\"Donica\",\"Donielle\",\"Donna\",\"Donnamarie\",\"Donni\",\"Donnie\",\"Donny\",\"Dora\",\"Doralia\",\"Doralin\",\"Doralyn\",\"Doralynn\",\"Doralynne\",\"Dore\",\"Doreen\",\"Dorelia\",\"Dorella\",\"Dorelle\",\"Dorena\",\"Dorene\",\"Doretta\",\"Dorette\",\"Dorey\",\"Dori\",\"Doria\",\"Dorian\",\"Dorice\",\"Dorie\",\"Dorine\",\"Doris\",\"Dorisa\",\"Dorise\",\"Dorita\",\"Doro\",\"Dorolice\",\"Dorolisa\",\"Dorotea\",\"Doroteya\",\"Dorothea\",\"Dorothee\",\"Dorothy\",\"Dorree\",\"Dorri\",\"Dorrie\",\"Dorris\",\"Dorry\",\"Dorthea\",\"Dorthy\",\"Dory\",\"Dosi\",\"Dot\",\"Doti\",\"Dotti\",\"Dottie\",\"Dotty\",\"Dre\",\"Dreddy\",\"Dredi\",\"Drona\",\"Dru\",\"Druci\",\"Drucie\",\"Drucill\",\"Drucy\",\"Drusi\",\"Drusie\",\"Drusilla\",\"Drusy\",\"Dulce\",\"Dulcea\",\"Dulci\",\"Dulcia\",\"Dulciana\",\"Dulcie\",\"Dulcine\",\"Dulcinea\",\"Dulcy\",\"Dulsea\",\"Dusty\",\"Dyan\",\"Dyana\",\"Dyane\",\"Dyann\",\"Dyanna\",\"Dyanne\",\"Dyna\",\"Dynah\",\"Eachelle\",\"Eada\",\"Eadie\",\"Eadith\",\"Ealasaid\",\"Eartha\",\"Easter\",\"Eba\",\"Ebba\",\"Ebonee\",\"Ebony\",\"Eda\",\"Eddi\",\"Eddie\",\"Eddy\",\"Ede\",\"Edee\",\"Edeline\",\"Eden\",\"Edi\",\"Edie\",\"Edin\",\"Edita\",\"Edith\",\"Editha\",\"Edithe\",\"Ediva\",\"Edna\",\"Edwina\",\"Edy\",\"Edyth\",\"Edythe\",\"Effie\",\"Eileen\",\"Eilis\",\"Eimile\",\"Eirena\",\"Ekaterina\",\"Elaina\",\"Elaine\",\"Elana\",\"Elane\",\"Elayne\",\"Elberta\",\"Elbertina\",\"Elbertine\",\"Eleanor\",\"Eleanora\",\"Eleanore\",\"Electra\",\"Eleen\",\"Elena\",\"Elene\",\"Eleni\",\"Elenore\",\"Eleonora\",\"Eleonore\",\"Elfie\",\"Elfreda\",\"Elfrida\",\"Elfrieda\",\"Elga\",\"Elianora\",\"Elianore\",\"Elicia\",\"Elie\",\"Elinor\",\"Elinore\",\"Elisa\",\"Elisabet\",\"Elisabeth\",\"Elisabetta\",\"Elise\",\"Elisha\",\"Elissa\",\"Elita\",\"Eliza\",\"Elizabet\",\"Elizabeth\",\"Elka\",\"Elke\",\"Ella\",\"Elladine\",\"Elle\",\"Ellen\",\"Ellene\",\"Ellette\",\"Elli\",\"Ellie\",\"Ellissa\",\"Elly\",\"Ellyn\",\"Ellynn\",\"Elmira\",\"Elna\",\"Elnora\",\"Elnore\",\"Eloisa\",\"Eloise\",\"Elonore\",\"Elora\",\"Elsa\",\"Elsbeth\",\"Else\",\"Elset\",\"Elsey\",\"Elsi\",\"Elsie\",\"Elsinore\",\"Elspeth\",\"Elsy\",\"Elva\",\"Elvera\",\"Elvina\",\"Elvira\",\"Elwira\",\"Elyn\",\"Elyse\",\"Elysee\",\"Elysha\",\"Elysia\",\"Elyssa\",\"Em\",\"Ema\",\"Emalee\",\"Emalia\",\"Emelda\",\"Emelia\",\"Emelina\",\"Emeline\",\"Emelita\",\"Emelyne\",\"Emera\",\"Emilee\",\"Emili\",\"Emilia\",\"Emilie\",\"Emiline\",\"Emily\",\"Emlyn\",\"Emlynn\",\"Emlynne\",\"Emma\",\"Emmalee\",\"Emmaline\",\"Emmalyn\",\"Emmalynn\",\"Emmalynne\",\"Emmeline\",\"Emmey\",\"Emmi\",\"Emmie\",\"Emmy\",\"Emmye\",\"Emogene\",\"Emyle\",\"Emylee\",\"Engracia\",\"Enid\",\"Enrica\",\"Enrichetta\",\"Enrika\",\"Enriqueta\",\"Eolanda\",\"Eolande\",\"Eran\",\"Erda\",\"Erena\",\"Erica\",\"Ericha\",\"Ericka\",\"Erika\",\"Erin\",\"Erina\",\"Erinn\",\"Erinna\",\"Erma\",\"Ermengarde\",\"Ermentrude\",\"Ermina\",\"Erminia\",\"Erminie\",\"Erna\",\"Ernaline\",\"Ernesta\",\"Ernestine\",\"Ertha\",\"Eryn\",\"Esma\",\"Esmaria\",\"Esme\",\"Esmeralda\",\"Essa\",\"Essie\",\"Essy\",\"Esta\",\"Estel\",\"Estele\",\"Estell\",\"Estella\",\"Estelle\",\"Ester\",\"Esther\",\"Estrella\",\"Estrellita\",\"Ethel\",\"Ethelda\",\"Ethelin\",\"Ethelind\",\"Etheline\",\"Ethelyn\",\"Ethyl\",\"Etta\",\"Etti\",\"Ettie\",\"Etty\",\"Eudora\",\"Eugenia\",\"Eugenie\",\"Eugine\",\"Eula\",\"Eulalie\",\"Eunice\",\"Euphemia\",\"Eustacia\",\"Eva\",\"Evaleen\",\"Evangelia\",\"Evangelin\",\"Evangelina\",\"Evangeline\",\"Evania\",\"Evanne\",\"Eve\",\"Eveleen\",\"Evelina\",\"Eveline\",\"Evelyn\",\"Evey\",\"Evie\",\"Evita\",\"Evonne\",\"Evvie\",\"Evvy\",\"Evy\",\"Eyde\",\"Eydie\",\"Ezmeralda\",\"Fae\",\"Faina\",\"Faith\",\"Fallon\",\"Fan\",\"Fanchette\",\"Fanchon\",\"Fancie\",\"Fancy\",\"Fanechka\",\"Fania\",\"Fanni\",\"Fannie\",\"Fanny\",\"Fanya\",\"Fara\",\"Farah\",\"Farand\",\"Farica\",\"Farra\",\"Farrah\",\"Farrand\",\"Faun\",\"Faunie\",\"Faustina\",\"Faustine\",\"Fawn\",\"Fawne\",\"Fawnia\",\"Fay\",\"Faydra\",\"Faye\",\"Fayette\",\"Fayina\",\"Fayre\",\"Fayth\",\"Faythe\",\"Federica\",\"Fedora\",\"Felecia\",\"Felicdad\",\"Felice\",\"Felicia\",\"Felicity\",\"Felicle\",\"Felipa\",\"Felisha\",\"Felita\",\"Feliza\",\"Fenelia\",\"Feodora\",\"Ferdinanda\",\"Ferdinande\",\"Fern\",\"Fernanda\",\"Fernande\",\"Fernandina\",\"Ferne\",\"Fey\",\"Fiann\",\"Fianna\",\"Fidela\",\"Fidelia\",\"Fidelity\",\"Fifi\",\"Fifine\",\"Filia\",\"Filide\",\"Filippa\",\"Fina\",\"Fiona\",\"Fionna\",\"Fionnula\",\"Fiorenze\",\"Fleur\",\"Fleurette\",\"Flo\",\"Flor\",\"Flora\",\"Florance\",\"Flore\",\"Florella\",\"Florence\",\"Florencia\",\"Florentia\",\"Florenza\",\"Florette\",\"Flori\",\"Floria\",\"Florida\",\"Florie\",\"Florina\",\"Florinda\",\"Floris\",\"Florri\",\"Florrie\",\"Florry\",\"Flory\",\"Flossi\",\"Flossie\",\"Flossy\",\"Flss\",\"Fran\",\"Francene\",\"Frances\",\"Francesca\",\"Francine\",\"Francisca\",\"Franciska\",\"Francoise\",\"Francyne\",\"Frank\",\"Frankie\",\"Franky\",\"Franni\",\"Frannie\",\"Franny\",\"Frayda\",\"Fred\",\"Freda\",\"Freddi\",\"Freddie\",\"Freddy\",\"Fredelia\",\"Frederica\",\"Fredericka\",\"Frederique\",\"Fredi\",\"Fredia\",\"Fredra\",\"Fredrika\",\"Freida\",\"Frieda\",\"Friederike\",\"Fulvia\",\"Gabbey\",\"Gabbi\",\"Gabbie\",\"Gabey\",\"Gabi\",\"Gabie\",\"Gabriel\",\"Gabriela\",\"Gabriell\",\"Gabriella\",\"Gabrielle\",\"Gabriellia\",\"Gabrila\",\"Gaby\",\"Gae\",\"Gael\",\"Gail\",\"Gale\",\"Galina\",\"Garland\",\"Garnet\",\"Garnette\",\"Gates\",\"Gavra\",\"Gavrielle\",\"Gay\",\"Gaye\",\"Gayel\",\"Gayla\",\"Gayle\",\"Gayleen\",\"Gaylene\",\"Gaynor\",\"Gelya\",\"Gena\",\"Gene\",\"Geneva\",\"Genevieve\",\"Genevra\",\"Genia\",\"Genna\",\"Genni\",\"Gennie\",\"Gennifer\",\"Genny\",\"Genovera\",\"Genvieve\",\"George\",\"Georgeanna\",\"Georgeanne\",\"Georgena\",\"Georgeta\",\"Georgetta\",\"Georgette\",\"Georgia\",\"Georgiana\",\"Georgianna\",\"Georgianne\",\"Georgie\",\"Georgina\",\"Georgine\",\"Geralda\",\"Geraldine\",\"Gerda\",\"Gerhardine\",\"Geri\",\"Gerianna\",\"Gerianne\",\"Gerladina\",\"Germain\",\"Germaine\",\"Germana\",\"Gerri\",\"Gerrie\",\"Gerrilee\",\"Gerry\",\"Gert\",\"Gerta\",\"Gerti\",\"Gertie\",\"Gertrud\",\"Gertruda\",\"Gertrude\",\"Gertrudis\",\"Gerty\",\"Giacinta\",\"Giana\",\"Gianina\",\"Gianna\",\"Gigi\",\"Gilberta\",\"Gilberte\",\"Gilbertina\",\"Gilbertine\",\"Gilda\",\"Gilemette\",\"Gill\",\"Gillan\",\"Gilli\",\"Gillian\",\"Gillie\",\"Gilligan\",\"Gilly\",\"Gina\",\"Ginelle\",\"Ginevra\",\"Ginger\",\"Ginni\",\"Ginnie\",\"Ginnifer\",\"Ginny\",\"Giorgia\",\"Giovanna\",\"Gipsy\",\"Giralda\",\"Gisela\",\"Gisele\",\"Gisella\",\"Giselle\",\"Giuditta\",\"Giulia\",\"Giulietta\",\"Giustina\",\"Gizela\",\"Glad\",\"Gladi\",\"Gladys\",\"Gleda\",\"Glen\",\"Glenda\",\"Glenine\",\"Glenn\",\"Glenna\",\"Glennie\",\"Glennis\",\"Glori\",\"Gloria\",\"Gloriana\",\"Gloriane\",\"Glory\",\"Glyn\",\"Glynda\",\"Glynis\",\"Glynnis\",\"Gnni\",\"Godiva\",\"Golda\",\"Goldarina\",\"Goldi\",\"Goldia\",\"Goldie\",\"Goldina\",\"Goldy\",\"Grace\",\"Gracia\",\"Gracie\",\"Grata\",\"Gratia\",\"Gratiana\",\"Gray\",\"Grayce\",\"Grazia\",\"Greer\",\"Greta\",\"Gretal\",\"Gretchen\",\"Grete\",\"Gretel\",\"Grethel\",\"Gretna\",\"Gretta\",\"Grier\",\"Griselda\",\"Grissel\",\"Guendolen\",\"Guenevere\",\"Guenna\",\"Guglielma\",\"Gui\",\"Guillema\",\"Guillemette\",\"Guinevere\",\"Guinna\",\"Gunilla\",\"Gus\",\"Gusella\",\"Gussi\",\"Gussie\",\"Gussy\",\"Gusta\",\"Gusti\",\"Gustie\",\"Gusty\",\"Gwen\",\"Gwendolen\",\"Gwendolin\",\"Gwendolyn\",\"Gweneth\",\"Gwenette\",\"Gwenneth\",\"Gwenni\",\"Gwennie\",\"Gwenny\",\"Gwenora\",\"Gwenore\",\"Gwyn\",\"Gwyneth\",\"Gwynne\",\"Gypsy\",\"Hadria\",\"Hailee\",\"Haily\",\"Haleigh\",\"Halette\",\"Haley\",\"Hali\",\"Halie\",\"Halimeda\",\"Halley\",\"Halli\",\"Hallie\",\"Hally\",\"Hana\",\"Hanna\",\"Hannah\",\"Hanni\",\"Hannie\",\"Hannis\",\"Hanny\",\"Happy\",\"Harlene\",\"Harley\",\"Harli\",\"Harlie\",\"Harmonia\",\"Harmonie\",\"Harmony\",\"Harri\",\"Harrie\",\"Harriet\",\"Harriett\",\"Harrietta\",\"Harriette\",\"Harriot\",\"Harriott\",\"Hatti\",\"Hattie\",\"Hatty\",\"Hayley\",\"Hazel\",\"Heath\",\"Heather\",\"Heda\",\"Hedda\",\"Heddi\",\"Heddie\",\"Hedi\",\"Hedvig\",\"Hedvige\",\"Hedwig\",\"Hedwiga\",\"Hedy\",\"Heida\",\"Heidi\",\"Heidie\",\"Helaina\",\"Helaine\",\"Helen\",\"Helen-elizabeth\",\"Helena\",\"Helene\",\"Helenka\",\"Helga\",\"Helge\",\"Helli\",\"Heloise\",\"Helsa\",\"Helyn\",\"Hendrika\",\"Henka\",\"Henrie\",\"Henrieta\",\"Henrietta\",\"Henriette\",\"Henryetta\",\"Hephzibah\",\"Hermia\",\"Hermina\",\"Hermine\",\"Herminia\",\"Hermione\",\"Herta\",\"Hertha\",\"Hester\",\"Hesther\",\"Hestia\",\"Hetti\",\"Hettie\",\"Hetty\",\"Hilary\",\"Hilda\",\"Hildagard\",\"Hildagarde\",\"Hilde\",\"Hildegaard\",\"Hildegarde\",\"Hildy\",\"Hillary\",\"Hilliary\",\"Hinda\",\"Holli\",\"Hollie\",\"Holly\",\"Holly-anne\",\"Hollyanne\",\"Honey\",\"Honor\",\"Honoria\",\"Hope\",\"Horatia\",\"Hortense\",\"Hortensia\",\"Hulda\",\"Hyacinth\",\"Hyacintha\",\"Hyacinthe\",\"Hyacinthia\",\"Hyacinthie\",\"Hynda\",\"Ianthe\",\"Ibbie\",\"Ibby\",\"Ida\",\"Idalia\",\"Idalina\",\"Idaline\",\"Idell\",\"Idelle\",\"Idette\",\"Ileana\",\"Ileane\",\"Ilene\",\"Ilise\",\"Ilka\",\"Illa\",\"Ilsa\",\"Ilse\",\"Ilysa\",\"Ilyse\",\"Ilyssa\",\"Imelda\",\"Imogen\",\"Imogene\",\"Imojean\",\"Ina\",\"Indira\",\"Ines\",\"Inesita\",\"Inessa\",\"Inez\",\"Inga\",\"Ingaberg\",\"Ingaborg\",\"Inge\",\"Ingeberg\",\"Ingeborg\",\"Inger\",\"Ingrid\",\"Ingunna\",\"Inna\",\"Iolande\",\"Iolanthe\",\"Iona\",\"Iormina\",\"Ira\",\"Irena\",\"Irene\",\"Irina\",\"Iris\",\"Irita\",\"Irma\",\"Isa\",\"Isabel\",\"Isabelita\",\"Isabella\",\"Isabelle\",\"Isadora\",\"Isahella\",\"Iseabal\",\"Isidora\",\"Isis\",\"Isobel\",\"Issi\",\"Issie\",\"Issy\",\"Ivett\",\"Ivette\",\"Ivie\",\"Ivonne\",\"Ivory\",\"Ivy\",\"Izabel\",\"Jacenta\",\"Jacinda\",\"Jacinta\",\"Jacintha\",\"Jacinthe\",\"Jackelyn\",\"Jacki\",\"Jackie\",\"Jacklin\",\"Jacklyn\",\"Jackquelin\",\"Jackqueline\",\"Jacky\",\"Jaclin\",\"Jaclyn\",\"Jacquelin\",\"Jacqueline\",\"Jacquelyn\",\"Jacquelynn\",\"Jacquenetta\",\"Jacquenette\",\"Jacquetta\",\"Jacquette\",\"Jacqui\",\"Jacquie\",\"Jacynth\",\"Jada\",\"Jade\",\"Jaime\",\"Jaimie\",\"Jaine\",\"Jami\",\"Jamie\",\"Jamima\",\"Jammie\",\"Jan\",\"Jana\",\"Janaya\",\"Janaye\",\"Jandy\",\"Jane\",\"Janean\",\"Janeczka\",\"Janeen\",\"Janel\",\"Janela\",\"Janella\",\"Janelle\",\"Janene\",\"Janenna\",\"Janessa\",\"Janet\",\"Janeta\",\"Janetta\",\"Janette\",\"Janeva\",\"Janey\",\"Jania\",\"Janice\",\"Janie\",\"Janifer\",\"Janina\",\"Janine\",\"Janis\",\"Janith\",\"Janka\",\"Janna\",\"Jannel\",\"Jannelle\",\"Janot\",\"Jany\",\"Jaquelin\",\"Jaquelyn\",\"Jaquenetta\",\"Jaquenette\",\"Jaquith\",\"Jasmin\",\"Jasmina\",\"Jasmine\",\"Jayme\",\"Jaymee\",\"Jayne\",\"Jaynell\",\"Jazmin\",\"Jean\",\"Jeana\",\"Jeane\",\"Jeanelle\",\"Jeanette\",\"Jeanie\",\"Jeanine\",\"Jeanna\",\"Jeanne\",\"Jeannette\",\"Jeannie\",\"Jeannine\",\"Jehanna\",\"Jelene\",\"Jemie\",\"Jemima\",\"Jemimah\",\"Jemmie\",\"Jemmy\",\"Jen\",\"Jena\",\"Jenda\",\"Jenelle\",\"Jeni\",\"Jenica\",\"Jeniece\",\"Jenifer\",\"Jeniffer\",\"Jenilee\",\"Jenine\",\"Jenn\",\"Jenna\",\"Jennee\",\"Jennette\",\"Jenni\",\"Jennica\",\"Jennie\",\"Jennifer\",\"Jennilee\",\"Jennine\",\"Jenny\",\"Jeralee\",\"Jere\",\"Jeri\",\"Jermaine\",\"Jerrie\",\"Jerrilee\",\"Jerrilyn\",\"Jerrine\",\"Jerry\",\"Jerrylee\",\"Jess\",\"Jessa\",\"Jessalin\",\"Jessalyn\",\"Jessamine\",\"Jessamyn\",\"Jesse\",\"Jesselyn\",\"Jessi\",\"Jessica\",\"Jessie\",\"Jessika\",\"Jessy\",\"Jewel\",\"Jewell\",\"Jewelle\",\"Jill\",\"Jillana\",\"Jillane\",\"Jillayne\",\"Jilleen\",\"Jillene\",\"Jilli\",\"Jillian\",\"Jillie\",\"Jilly\",\"Jinny\",\"Jo\",\"Jo-ann\",\"Jo-anne\",\"Joan\",\"Joana\",\"Joane\",\"Joanie\",\"Joann\",\"Joanna\",\"Joanne\",\"Joannes\",\"Jobey\",\"Jobi\",\"Jobie\",\"Jobina\",\"Joby\",\"Jobye\",\"Jobyna\",\"Jocelin\",\"Joceline\",\"Jocelyn\",\"Jocelyne\",\"Jodee\",\"Jodi\",\"Jodie\",\"Jody\",\"Joeann\",\"Joela\",\"Joelie\",\"Joell\",\"Joella\",\"Joelle\",\"Joellen\",\"Joelly\",\"Joellyn\",\"Joelynn\",\"Joete\",\"Joey\",\"Johanna\",\"Johannah\",\"Johna\",\"Johnath\",\"Johnette\",\"Johnna\",\"Joice\",\"Jojo\",\"Jolee\",\"Joleen\",\"Jolene\",\"Joletta\",\"Joli\",\"Jolie\",\"Joline\",\"Joly\",\"Jolyn\",\"Jolynn\",\"Jonell\",\"Joni\",\"Jonie\",\"Jonis\",\"Jordain\",\"Jordan\",\"Jordana\",\"Jordanna\",\"Jorey\",\"Jori\",\"Jorie\",\"Jorrie\",\"Jorry\",\"Joscelin\",\"Josee\",\"Josefa\",\"Josefina\",\"Josepha\",\"Josephina\",\"Josephine\",\"Josey\",\"Josi\",\"Josie\",\"Josselyn\",\"Josy\",\"Jourdan\",\"Joy\",\"Joya\",\"Joyan\",\"Joyann\",\"Joyce\",\"Joycelin\",\"Joye\",\"Jsandye\",\"Juana\",\"Juanita\",\"Judi\",\"Judie\",\"Judith\",\"Juditha\",\"Judy\",\"Judye\",\"Juieta\",\"Julee\",\"Juli\",\"Julia\",\"Juliana\",\"Juliane\",\"Juliann\",\"Julianna\",\"Julianne\",\"Julie\",\"Julienne\",\"Juliet\",\"Julieta\",\"Julietta\",\"Juliette\",\"Julina\",\"Juline\",\"Julissa\",\"Julita\",\"June\",\"Junette\",\"Junia\",\"Junie\",\"Junina\",\"Justina\",\"Justine\",\"Justinn\",\"Jyoti\",\"Kacey\",\"Kacie\",\"Kacy\",\"Kaela\",\"Kai\",\"Kaia\",\"Kaila\",\"Kaile\",\"Kailey\",\"Kaitlin\",\"Kaitlyn\",\"Kaitlynn\",\"Kaja\",\"Kakalina\",\"Kala\",\"Kaleena\",\"Kali\",\"Kalie\",\"Kalila\",\"Kalina\",\"Kalinda\",\"Kalindi\",\"Kalli\",\"Kally\",\"Kameko\",\"Kamila\",\"Kamilah\",\"Kamillah\",\"Kandace\",\"Kandy\",\"Kania\",\"Kanya\",\"Kara\",\"Kara-lynn\",\"Karalee\",\"Karalynn\",\"Kare\",\"Karee\",\"Karel\",\"Karen\",\"Karena\",\"Kari\",\"Karia\",\"Karie\",\"Karil\",\"Karilynn\",\"Karin\",\"Karina\",\"Karine\",\"Kariotta\",\"Karisa\",\"Karissa\",\"Karita\",\"Karla\",\"Karlee\",\"Karleen\",\"Karlen\",\"Karlene\",\"Karlie\",\"Karlotta\",\"Karlotte\",\"Karly\",\"Karlyn\",\"Karmen\",\"Karna\",\"Karol\",\"Karola\",\"Karole\",\"Karolina\",\"Karoline\",\"Karoly\",\"Karon\",\"Karrah\",\"Karrie\",\"Karry\",\"Kary\",\"Karyl\",\"Karylin\",\"Karyn\",\"Kasey\",\"Kass\",\"Kassandra\",\"Kassey\",\"Kassi\",\"Kassia\",\"Kassie\",\"Kat\",\"Kata\",\"Katalin\",\"Kate\",\"Katee\",\"Katerina\",\"Katerine\",\"Katey\",\"Kath\",\"Katha\",\"Katharina\",\"Katharine\",\"Katharyn\",\"Kathe\",\"Katherina\",\"Katherine\",\"Katheryn\",\"Kathi\",\"Kathie\",\"Kathleen\",\"Kathlin\",\"Kathrine\",\"Kathryn\",\"Kathryne\",\"Kathy\",\"Kathye\",\"Kati\",\"Katie\",\"Katina\",\"Katine\",\"Katinka\",\"Katleen\",\"Katlin\",\"Katrina\",\"Katrine\",\"Katrinka\",\"Katti\",\"Kattie\",\"Katuscha\",\"Katusha\",\"Katy\",\"Katya\",\"Kay\",\"Kaycee\",\"Kaye\",\"Kayla\",\"Kayle\",\"Kaylee\",\"Kayley\",\"Kaylil\",\"Kaylyn\",\"Keeley\",\"Keelia\",\"Keely\",\"Kelcey\",\"Kelci\",\"Kelcie\",\"Kelcy\",\"Kelila\",\"Kellen\",\"Kelley\",\"Kelli\",\"Kellia\",\"Kellie\",\"Kellina\",\"Kellsie\",\"Kelly\",\"Kellyann\",\"Kelsey\",\"Kelsi\",\"Kelsy\",\"Kendra\",\"Kendre\",\"Kenna\",\"Keri\",\"Keriann\",\"Kerianne\",\"Kerri\",\"Kerrie\",\"Kerrill\",\"Kerrin\",\"Kerry\",\"Kerstin\",\"Kesley\",\"Keslie\",\"Kessia\",\"Kessiah\",\"Ketti\",\"Kettie\",\"Ketty\",\"Kevina\",\"Kevyn\",\"Ki\",\"Kiah\",\"Kial\",\"Kiele\",\"Kiersten\",\"Kikelia\",\"Kiley\",\"Kim\",\"Kimberlee\",\"Kimberley\",\"Kimberli\",\"Kimberly\",\"Kimberlyn\",\"Kimbra\",\"Kimmi\",\"Kimmie\",\"Kimmy\",\"Kinna\",\"Kip\",\"Kipp\",\"Kippie\",\"Kippy\",\"Kira\",\"Kirbee\",\"Kirbie\",\"Kirby\",\"Kiri\",\"Kirsten\",\"Kirsteni\",\"Kirsti\",\"Kirstin\",\"Kirstyn\",\"Kissee\",\"Kissiah\",\"Kissie\",\"Kit\",\"Kitti\",\"Kittie\",\"Kitty\",\"Kizzee\",\"Kizzie\",\"Klara\",\"Klarika\",\"Klarrisa\",\"Konstance\",\"Konstanze\",\"Koo\",\"Kora\",\"Koral\",\"Koralle\",\"Kordula\",\"Kore\",\"Korella\",\"Koren\",\"Koressa\",\"Kori\",\"Korie\",\"Korney\",\"Korrie\",\"Korry\",\"Kris\",\"Krissie\",\"Krissy\",\"Krista\",\"Kristal\",\"Kristan\",\"Kriste\",\"Kristel\",\"Kristen\",\"Kristi\",\"Kristien\",\"Kristin\",\"Kristina\",\"Kristine\",\"Kristy\",\"Kristyn\",\"Krysta\",\"Krystal\",\"Krystalle\",\"Krystle\",\"Krystyna\",\"Kyla\",\"Kyle\",\"Kylen\",\"Kylie\",\"Kylila\",\"Kylynn\",\"Kym\",\"Kynthia\",\"Kyrstin\",\"Lacee\",\"Lacey\",\"Lacie\",\"Lacy\",\"Ladonna\",\"Laetitia\",\"Laina\",\"Lainey\",\"Lana\",\"Lanae\",\"Lane\",\"Lanette\",\"Laney\",\"Lani\",\"Lanie\",\"Lanita\",\"Lanna\",\"Lanni\",\"Lanny\",\"Lara\",\"Laraine\",\"Lari\",\"Larina\",\"Larine\",\"Larisa\",\"Larissa\",\"Lark\",\"Laryssa\",\"Latashia\",\"Latia\",\"Latisha\",\"Latrena\",\"Latrina\",\"Laura\",\"Lauraine\",\"Laural\",\"Lauralee\",\"Laure\",\"Lauree\",\"Laureen\",\"Laurel\",\"Laurella\",\"Lauren\",\"Laurena\",\"Laurene\",\"Lauretta\",\"Laurette\",\"Lauri\",\"Laurianne\",\"Laurice\",\"Laurie\",\"Lauryn\",\"Lavena\",\"Laverna\",\"Laverne\",\"Lavina\",\"Lavinia\",\"Lavinie\",\"Layla\",\"Layne\",\"Layney\",\"Lea\",\"Leah\",\"Leandra\",\"Leann\",\"Leanna\",\"Leanor\",\"Leanora\",\"Lebbie\",\"Leda\",\"Lee\",\"Leeann\",\"Leeanne\",\"Leela\",\"Leelah\",\"Leena\",\"Leesa\",\"Leese\",\"Legra\",\"Leia\",\"Leigh\",\"Leigha\",\"Leila\",\"Leilah\",\"Leisha\",\"Lela\",\"Lelah\",\"Leland\",\"Lelia\",\"Lena\",\"Lenee\",\"Lenette\",\"Lenka\",\"Lenna\",\"Lenora\",\"Lenore\",\"Leodora\",\"Leoine\",\"Leola\",\"Leoline\",\"Leona\",\"Leonanie\",\"Leone\",\"Leonelle\",\"Leonie\",\"Leonora\",\"Leonore\",\"Leontine\",\"Leontyne\",\"Leora\",\"Leshia\",\"Lesley\",\"Lesli\",\"Leslie\",\"Lesly\",\"Lesya\",\"Leta\",\"Lethia\",\"Leticia\",\"Letisha\",\"Letitia\",\"Letizia\",\"Letta\",\"Letti\",\"Lettie\",\"Letty\",\"Lexi\",\"Lexie\",\"Lexine\",\"Lexis\",\"Lexy\",\"Leyla\",\"Lezlie\",\"Lia\",\"Lian\",\"Liana\",\"Liane\",\"Lianna\",\"Lianne\",\"Lib\",\"Libbey\",\"Libbi\",\"Libbie\",\"Libby\",\"Licha\",\"Lida\",\"Lidia\",\"Liesa\",\"Lil\",\"Lila\",\"Lilah\",\"Lilas\",\"Lilia\",\"Lilian\",\"Liliane\",\"Lilias\",\"Lilith\",\"Lilla\",\"Lilli\",\"Lillian\",\"Lillis\",\"Lilllie\",\"Lilly\",\"Lily\",\"Lilyan\",\"Lin\",\"Lina\",\"Lind\",\"Linda\",\"Lindi\",\"Lindie\",\"Lindsay\",\"Lindsey\",\"Lindsy\",\"Lindy\",\"Linea\",\"Linell\",\"Linet\",\"Linette\",\"Linn\",\"Linnea\",\"Linnell\",\"Linnet\",\"Linnie\",\"Linzy\",\"Lira\",\"Lisa\",\"Lisabeth\",\"Lisbeth\",\"Lise\",\"Lisetta\",\"Lisette\",\"Lisha\",\"Lishe\",\"Lissa\",\"Lissi\",\"Lissie\",\"Lissy\",\"Lita\",\"Liuka\",\"Liv\",\"Liva\",\"Livia\",\"Livvie\",\"Livvy\",\"Livvyy\",\"Livy\",\"Liz\",\"Liza\",\"Lizabeth\",\"Lizbeth\",\"Lizette\",\"Lizzie\",\"Lizzy\",\"Loella\",\"Lois\",\"Loise\",\"Lola\",\"Loleta\",\"Lolita\",\"Lolly\",\"Lona\",\"Lonee\",\"Loni\",\"Lonna\",\"Lonni\",\"Lonnie\",\"Lora\",\"Lorain\",\"Loraine\",\"Loralee\",\"Loralie\",\"Loralyn\",\"Loree\",\"Loreen\",\"Lorelei\",\"Lorelle\",\"Loren\",\"Lorena\",\"Lorene\",\"Lorenza\",\"Loretta\",\"Lorette\",\"Lori\",\"Loria\",\"Lorianna\",\"Lorianne\",\"Lorie\",\"Lorilee\",\"Lorilyn\",\"Lorinda\",\"Lorine\",\"Lorita\",\"Lorna\",\"Lorne\",\"Lorraine\",\"Lorrayne\",\"Lorri\",\"Lorrie\",\"Lorrin\",\"Lorry\",\"Lory\",\"Lotta\",\"Lotte\",\"Lotti\",\"Lottie\",\"Lotty\",\"Lou\",\"Louella\",\"Louisa\",\"Louise\",\"Louisette\",\"Loutitia\",\"Lu\",\"Luce\",\"Luci\",\"Lucia\",\"Luciana\",\"Lucie\",\"Lucienne\",\"Lucila\",\"Lucilia\",\"Lucille\",\"Lucina\",\"Lucinda\",\"Lucine\",\"Lucita\",\"Lucky\",\"Lucretia\",\"Lucy\",\"Ludovika\",\"Luella\",\"Luelle\",\"Luisa\",\"Luise\",\"Lula\",\"Lulita\",\"Lulu\",\"Lura\",\"Lurette\",\"Lurleen\",\"Lurlene\",\"Lurline\",\"Lusa\",\"Luz\",\"Lyda\",\"Lydia\",\"Lydie\",\"Lyn\",\"Lynda\",\"Lynde\",\"Lyndel\",\"Lyndell\",\"Lyndsay\",\"Lyndsey\",\"Lyndsie\",\"Lyndy\",\"Lynea\",\"Lynelle\",\"Lynett\",\"Lynette\",\"Lynn\",\"Lynna\",\"Lynne\",\"Lynnea\",\"Lynnell\",\"Lynnelle\",\"Lynnet\",\"Lynnett\",\"Lynnette\",\"Lynsey\",\"Lyssa\",\"Mab\",\"Mabel\",\"Mabelle\",\"Mable\",\"Mada\",\"Madalena\",\"Madalyn\",\"Maddalena\",\"Maddi\",\"Maddie\",\"Maddy\",\"Madel\",\"Madelaine\",\"Madeleine\",\"Madelena\",\"Madelene\",\"Madelin\",\"Madelina\",\"Madeline\",\"Madella\",\"Madelle\",\"Madelon\",\"Madelyn\",\"Madge\",\"Madlen\",\"Madlin\",\"Madonna\",\"Mady\",\"Mae\",\"Maegan\",\"Mag\",\"Magda\",\"Magdaia\",\"Magdalen\",\"Magdalena\",\"Magdalene\",\"Maggee\",\"Maggi\",\"Maggie\",\"Maggy\",\"Mahala\",\"Mahalia\",\"Maia\",\"Maible\",\"Maiga\",\"Maighdiln\",\"Mair\",\"Maire\",\"Maisey\",\"Maisie\",\"Maitilde\",\"Mala\",\"Malanie\",\"Malena\",\"Malia\",\"Malina\",\"Malinda\",\"Malinde\",\"Malissa\",\"Malissia\",\"Mallissa\",\"Mallorie\",\"Mallory\",\"Malorie\",\"Malory\",\"Malva\",\"Malvina\",\"Malynda\",\"Mame\",\"Mamie\",\"Manda\",\"Mandi\",\"Mandie\",\"Mandy\",\"Manon\",\"Manya\",\"Mara\",\"Marabel\",\"Marcela\",\"Marcelia\",\"Marcella\",\"Marcelle\",\"Marcellina\",\"Marcelline\",\"Marchelle\",\"Marci\",\"Marcia\",\"Marcie\",\"Marcile\",\"Marcille\",\"Marcy\",\"Mareah\",\"Maren\",\"Marena\",\"Maressa\",\"Marga\",\"Margalit\",\"Margalo\",\"Margaret\",\"Margareta\",\"Margarete\",\"Margaretha\",\"Margarethe\",\"Margaretta\",\"Margarette\",\"Margarita\",\"Margaux\",\"Marge\",\"Margeaux\",\"Margery\",\"Marget\",\"Margette\",\"Margi\",\"Margie\",\"Margit\",\"Margo\",\"Margot\",\"Margret\",\"Marguerite\",\"Margy\",\"Mari\",\"Maria\",\"Mariam\",\"Marian\",\"Mariana\",\"Mariann\",\"Marianna\",\"Marianne\",\"Maribel\",\"Maribelle\",\"Maribeth\",\"Marice\",\"Maridel\",\"Marie\",\"Marie-ann\",\"Marie-jeanne\",\"Marieann\",\"Mariejeanne\",\"Mariel\",\"Mariele\",\"Marielle\",\"Mariellen\",\"Marietta\",\"Mariette\",\"Marigold\",\"Marijo\",\"Marika\",\"Marilee\",\"Marilin\",\"Marillin\",\"Marilyn\",\"Marin\",\"Marina\",\"Marinna\",\"Marion\",\"Mariquilla\",\"Maris\",\"Marisa\",\"Mariska\",\"Marissa\",\"Marita\",\"Maritsa\",\"Mariya\",\"Marj\",\"Marja\",\"Marje\",\"Marji\",\"Marjie\",\"Marjorie\",\"Marjory\",\"Marjy\",\"Marketa\",\"Marla\",\"Marlane\",\"Marleah\",\"Marlee\",\"Marleen\",\"Marlena\",\"Marlene\",\"Marley\",\"Marlie\",\"Marline\",\"Marlo\",\"Marlyn\",\"Marna\",\"Marne\",\"Marney\",\"Marni\",\"Marnia\",\"Marnie\",\"Marquita\",\"Marrilee\",\"Marris\",\"Marrissa\",\"Marsha\",\"Marsiella\",\"Marta\",\"Martelle\",\"Martguerita\",\"Martha\",\"Marthe\",\"Marthena\",\"Marti\",\"Martica\",\"Martie\",\"Martina\",\"Martita\",\"Marty\",\"Martynne\",\"Mary\",\"Marya\",\"Maryann\",\"Maryanna\",\"Maryanne\",\"Marybelle\",\"Marybeth\",\"Maryellen\",\"Maryjane\",\"Maryjo\",\"Maryl\",\"Marylee\",\"Marylin\",\"Marylinda\",\"Marylou\",\"Marylynne\",\"Maryrose\",\"Marys\",\"Marysa\",\"Masha\",\"Matelda\",\"Mathilda\",\"Mathilde\",\"Matilda\",\"Matilde\",\"Matti\",\"Mattie\",\"Matty\",\"Maud\",\"Maude\",\"Maudie\",\"Maura\",\"Maure\",\"Maureen\",\"Maureene\",\"Maurene\",\"Maurine\",\"Maurise\",\"Maurita\",\"Maurizia\",\"Mavis\",\"Mavra\",\"Max\",\"Maxi\",\"Maxie\",\"Maxine\",\"Maxy\",\"May\",\"Maybelle\",\"Maye\",\"Mead\",\"Meade\",\"Meagan\",\"Meaghan\",\"Meara\",\"Mechelle\",\"Meg\",\"Megan\",\"Megen\",\"Meggi\",\"Meggie\",\"Meggy\",\"Meghan\",\"Meghann\",\"Mehetabel\",\"Mei\",\"Mel\",\"Mela\",\"Melamie\",\"Melania\",\"Melanie\",\"Melantha\",\"Melany\",\"Melba\",\"Melesa\",\"Melessa\",\"Melicent\",\"Melina\",\"Melinda\",\"Melinde\",\"Melisa\",\"Melisande\",\"Melisandra\",\"Melisenda\",\"Melisent\",\"Melissa\",\"Melisse\",\"Melita\",\"Melitta\",\"Mella\",\"Melli\",\"Mellicent\",\"Mellie\",\"Mellisa\",\"Mellisent\",\"Melloney\",\"Melly\",\"Melodee\",\"Melodie\",\"Melody\",\"Melonie\",\"Melony\",\"Melosa\",\"Melva\",\"Mercedes\",\"Merci\",\"Mercie\",\"Mercy\",\"Meredith\",\"Meredithe\",\"Meridel\",\"Meridith\",\"Meriel\",\"Merilee\",\"Merilyn\",\"Meris\",\"Merissa\",\"Merl\",\"Merla\",\"Merle\",\"Merlina\",\"Merline\",\"Merna\",\"Merola\",\"Merralee\",\"Merridie\",\"Merrie\",\"Merrielle\",\"Merrile\",\"Merrilee\",\"Merrili\",\"Merrill\",\"Merrily\",\"Merry\",\"Mersey\",\"Meryl\",\"Meta\",\"Mia\",\"Micaela\",\"Michaela\",\"Michaelina\",\"Michaeline\",\"Michaella\",\"Michal\",\"Michel\",\"Michele\",\"Michelina\",\"Micheline\",\"Michell\",\"Michelle\",\"Micki\",\"Mickie\",\"Micky\",\"Midge\",\"Mignon\",\"Mignonne\",\"Miguela\",\"Miguelita\",\"Mikaela\",\"Mil\",\"Mildred\",\"Mildrid\",\"Milena\",\"Milicent\",\"Milissent\",\"Milka\",\"Milli\",\"Millicent\",\"Millie\",\"Millisent\",\"Milly\",\"Milzie\",\"Mimi\",\"Min\",\"Mina\",\"Minda\",\"Mindy\",\"Minerva\",\"Minetta\",\"Minette\",\"Minna\",\"Minnaminnie\",\"Minne\",\"Minni\",\"Minnie\",\"Minnnie\",\"Minny\",\"Minta\",\"Miquela\",\"Mira\",\"Mirabel\",\"Mirabella\",\"Mirabelle\",\"Miran\",\"Miranda\",\"Mireielle\",\"Mireille\",\"Mirella\",\"Mirelle\",\"Miriam\",\"Mirilla\",\"Mirna\",\"Misha\",\"Missie\",\"Missy\",\"Misti\",\"Misty\",\"Mitzi\",\"Modesta\",\"Modestia\",\"Modestine\",\"Modesty\",\"Moina\",\"Moira\",\"Moll\",\"Mollee\",\"Molli\",\"Mollie\",\"Molly\",\"Mommy\",\"Mona\",\"Monah\",\"Monica\",\"Monika\",\"Monique\",\"Mora\",\"Moreen\",\"Morena\",\"Morgan\",\"Morgana\",\"Morganica\",\"Morganne\",\"Morgen\",\"Moria\",\"Morissa\",\"Morna\",\"Moselle\",\"Moyna\",\"Moyra\",\"Mozelle\",\"Muffin\",\"Mufi\",\"Mufinella\",\"Muire\",\"Mureil\",\"Murial\",\"Muriel\",\"Murielle\",\"Myra\",\"Myrah\",\"Myranda\",\"Myriam\",\"Myrilla\",\"Myrle\",\"Myrlene\",\"Myrna\",\"Myrta\",\"Myrtia\",\"Myrtice\",\"Myrtie\",\"Myrtle\",\"Nada\",\"Nadean\",\"Nadeen\",\"Nadia\",\"Nadine\",\"Nadiya\",\"Nady\",\"Nadya\",\"Nalani\",\"Nan\",\"Nana\",\"Nananne\",\"Nance\",\"Nancee\",\"Nancey\",\"Nanci\",\"Nancie\",\"Nancy\",\"Nanete\",\"Nanette\",\"Nani\",\"Nanice\",\"Nanine\",\"Nannette\",\"Nanni\",\"Nannie\",\"Nanny\",\"Nanon\",\"Naoma\",\"Naomi\",\"Nara\",\"Nari\",\"Nariko\",\"Nat\",\"Nata\",\"Natala\",\"Natalee\",\"Natalie\",\"Natalina\",\"Nataline\",\"Natalya\",\"Natasha\",\"Natassia\",\"Nathalia\",\"Nathalie\",\"Natividad\",\"Natka\",\"Natty\",\"Neala\",\"Neda\",\"Nedda\",\"Nedi\",\"Neely\",\"Neila\",\"Neile\",\"Neilla\",\"Neille\",\"Nelia\",\"Nelie\",\"Nell\",\"Nelle\",\"Nelli\",\"Nellie\",\"Nelly\",\"Nerissa\",\"Nerita\",\"Nert\",\"Nerta\",\"Nerte\",\"Nerti\",\"Nertie\",\"Nerty\",\"Nessa\",\"Nessi\",\"Nessie\",\"Nessy\",\"Nesta\",\"Netta\",\"Netti\",\"Nettie\",\"Nettle\",\"Netty\",\"Nevsa\",\"Neysa\",\"Nichol\",\"Nichole\",\"Nicholle\",\"Nicki\",\"Nickie\",\"Nicky\",\"Nicol\",\"Nicola\",\"Nicole\",\"Nicolea\",\"Nicolette\",\"Nicoli\",\"Nicolina\",\"Nicoline\",\"Nicolle\",\"Nikaniki\",\"Nike\",\"Niki\",\"Nikki\",\"Nikkie\",\"Nikoletta\",\"Nikolia\",\"Nina\",\"Ninetta\",\"Ninette\",\"Ninnetta\",\"Ninnette\",\"Ninon\",\"Nissa\",\"Nisse\",\"Nissie\",\"Nissy\",\"Nita\",\"Nixie\",\"Noami\",\"Noel\",\"Noelani\",\"Noell\",\"Noella\",\"Noelle\",\"Noellyn\",\"Noelyn\",\"Noemi\",\"Nola\",\"Nolana\",\"Nolie\",\"Nollie\",\"Nomi\",\"Nona\",\"Nonah\",\"Noni\",\"Nonie\",\"Nonna\",\"Nonnah\",\"Nora\",\"Norah\",\"Norean\",\"Noreen\",\"Norene\",\"Norina\",\"Norine\",\"Norma\",\"Norri\",\"Norrie\",\"Norry\",\"Novelia\",\"Nydia\",\"Nyssa\",\"Octavia\",\"Odele\",\"Odelia\",\"Odelinda\",\"Odella\",\"Odelle\",\"Odessa\",\"Odetta\",\"Odette\",\"Odilia\",\"Odille\",\"Ofelia\",\"Ofella\",\"Ofilia\",\"Ola\",\"Olenka\",\"Olga\",\"Olia\",\"Olimpia\",\"Olive\",\"Olivette\",\"Olivia\",\"Olivie\",\"Oliy\",\"Ollie\",\"Olly\",\"Olva\",\"Olwen\",\"Olympe\",\"Olympia\",\"Olympie\",\"Ondrea\",\"Oneida\",\"Onida\",\"Oona\",\"Opal\",\"Opalina\",\"Opaline\",\"Ophelia\",\"Ophelie\",\"Ora\",\"Oralee\",\"Oralia\",\"Oralie\",\"Oralla\",\"Oralle\",\"Orel\",\"Orelee\",\"Orelia\",\"Orelie\",\"Orella\",\"Orelle\",\"Oriana\",\"Orly\",\"Orsa\",\"Orsola\",\"Ortensia\",\"Otha\",\"Othelia\",\"Othella\",\"Othilia\",\"Othilie\",\"Ottilie\",\"Page\",\"Paige\",\"Paloma\",\"Pam\",\"Pamela\",\"Pamelina\",\"Pamella\",\"Pammi\",\"Pammie\",\"Pammy\",\"Pandora\",\"Pansie\",\"Pansy\",\"Paola\",\"Paolina\",\"Papagena\",\"Pat\",\"Patience\",\"Patrica\",\"Patrice\",\"Patricia\",\"Patrizia\",\"Patsy\",\"Patti\",\"Pattie\",\"Patty\",\"Paula\",\"Paule\",\"Pauletta\",\"Paulette\",\"Pauli\",\"Paulie\",\"Paulina\",\"Pauline\",\"Paulita\",\"Pauly\",\"Pavia\",\"Pavla\",\"Pearl\",\"Pearla\",\"Pearle\",\"Pearline\",\"Peg\",\"Pegeen\",\"Peggi\",\"Peggie\",\"Peggy\",\"Pen\",\"Penelopa\",\"Penelope\",\"Penni\",\"Pennie\",\"Penny\",\"Pepi\",\"Pepita\",\"Peri\",\"Peria\",\"Perl\",\"Perla\",\"Perle\",\"Perri\",\"Perrine\",\"Perry\",\"Persis\",\"Pet\",\"Peta\",\"Petra\",\"Petrina\",\"Petronella\",\"Petronia\",\"Petronilla\",\"Petronille\",\"Petunia\",\"Phaedra\",\"Phaidra\",\"Phebe\",\"Phedra\",\"Phelia\",\"Phil\",\"Philipa\",\"Philippa\",\"Philippe\",\"Philippine\",\"Philis\",\"Phillida\",\"Phillie\",\"Phillis\",\"Philly\",\"Philomena\",\"Phoebe\",\"Phylis\",\"Phyllida\",\"Phyllis\",\"Phyllys\",\"Phylys\",\"Pia\",\"Pier\",\"Pierette\",\"Pierrette\",\"Pietra\",\"Piper\",\"Pippa\",\"Pippy\",\"Polly\",\"Pollyanna\",\"Pooh\",\"Poppy\",\"Portia\",\"Pris\",\"Prisca\",\"Priscella\",\"Priscilla\",\"Prissie\",\"Pru\",\"Prudence\",\"Prudi\",\"Prudy\",\"Prue\",\"Queenie\",\"Quentin\",\"Querida\",\"Quinn\",\"Quinta\",\"Quintana\",\"Quintilla\",\"Quintina\",\"Rachael\",\"Rachel\",\"Rachele\",\"Rachelle\",\"Rae\",\"Raeann\",\"Raf\",\"Rafa\",\"Rafaela\",\"Rafaelia\",\"Rafaelita\",\"Rahal\",\"Rahel\",\"Raina\",\"Raine\",\"Rakel\",\"Ralina\",\"Ramona\",\"Ramonda\",\"Rana\",\"Randa\",\"Randee\",\"Randene\",\"Randi\",\"Randie\",\"Randy\",\"Ranee\",\"Rani\",\"Rania\",\"Ranice\",\"Ranique\",\"Ranna\",\"Raphaela\",\"Raquel\",\"Raquela\",\"Rasia\",\"Rasla\",\"Raven\",\"Ray\",\"Raychel\",\"Raye\",\"Rayna\",\"Raynell\",\"Rayshell\",\"Rea\",\"Reba\",\"Rebbecca\",\"Rebe\",\"Rebeca\",\"Rebecca\",\"Rebecka\",\"Rebeka\",\"Rebekah\",\"Rebekkah\",\"Ree\",\"Reeba\",\"Reena\",\"Reeta\",\"Reeva\",\"Regan\",\"Reggi\",\"Reggie\",\"Regina\",\"Regine\",\"Reiko\",\"Reina\",\"Reine\",\"Remy\",\"Rena\",\"Renae\",\"Renata\",\"Renate\",\"Rene\",\"Renee\",\"Renell\",\"Renelle\",\"Renie\",\"Rennie\",\"Reta\",\"Retha\",\"Revkah\",\"Rey\",\"Reyna\",\"Rhea\",\"Rheba\",\"Rheta\",\"Rhetta\",\"Rhiamon\",\"Rhianna\",\"Rhianon\",\"Rhoda\",\"Rhodia\",\"Rhodie\",\"Rhody\",\"Rhona\",\"Rhonda\",\"Riane\",\"Riannon\",\"Rianon\",\"Rica\",\"Ricca\",\"Rici\",\"Ricki\",\"Rickie\",\"Ricky\",\"Riki\",\"Rikki\",\"Rina\",\"Risa\",\"Rita\",\"Riva\",\"Rivalee\",\"Rivi\",\"Rivkah\",\"Rivy\",\"Roana\",\"Roanna\",\"Roanne\",\"Robbi\",\"Robbie\",\"Robbin\",\"Robby\",\"Robbyn\",\"Robena\",\"Robenia\",\"Roberta\",\"Robin\",\"Robina\",\"Robinet\",\"Robinett\",\"Robinetta\",\"Robinette\",\"Robinia\",\"Roby\",\"Robyn\",\"Roch\",\"Rochell\",\"Rochella\",\"Rochelle\",\"Rochette\",\"Roda\",\"Rodi\",\"Rodie\",\"Rodina\",\"Rois\",\"Romola\",\"Romona\",\"Romonda\",\"Romy\",\"Rona\",\"Ronalda\",\"Ronda\",\"Ronica\",\"Ronna\",\"Ronni\",\"Ronnica\",\"Ronnie\",\"Ronny\",\"Roobbie\",\"Rora\",\"Rori\",\"Rorie\",\"Rory\",\"Ros\",\"Rosa\",\"Rosabel\",\"Rosabella\",\"Rosabelle\",\"Rosaleen\",\"Rosalia\",\"Rosalie\",\"Rosalind\",\"Rosalinda\",\"Rosalinde\",\"Rosaline\",\"Rosalyn\",\"Rosalynd\",\"Rosamond\",\"Rosamund\",\"Rosana\",\"Rosanna\",\"Rosanne\",\"Rose\",\"Roseann\",\"Roseanna\",\"Roseanne\",\"Roselia\",\"Roselin\",\"Roseline\",\"Rosella\",\"Roselle\",\"Rosemaria\",\"Rosemarie\",\"Rosemary\",\"Rosemonde\",\"Rosene\",\"Rosetta\",\"Rosette\",\"Roshelle\",\"Rosie\",\"Rosina\",\"Rosita\",\"Roslyn\",\"Rosmunda\",\"Rosy\",\"Row\",\"Rowe\",\"Rowena\",\"Roxana\",\"Roxane\",\"Roxanna\",\"Roxanne\",\"Roxi\",\"Roxie\",\"Roxine\",\"Roxy\",\"Roz\",\"Rozalie\",\"Rozalin\",\"Rozamond\",\"Rozanna\",\"Rozanne\",\"Roze\",\"Rozele\",\"Rozella\",\"Rozelle\",\"Rozina\",\"Rubetta\",\"Rubi\",\"Rubia\",\"Rubie\",\"Rubina\",\"Ruby\",\"Ruperta\",\"Ruth\",\"Ruthann\",\"Ruthanne\",\"Ruthe\",\"Ruthi\",\"Ruthie\",\"Ruthy\",\"Ryann\",\"Rycca\",\"Saba\",\"Sabina\",\"Sabine\",\"Sabra\",\"Sabrina\",\"Sacha\",\"Sada\",\"Sadella\",\"Sadie\",\"Sadye\",\"Saidee\",\"Sal\",\"Salaidh\",\"Sallee\",\"Salli\",\"Sallie\",\"Sally\",\"Sallyann\",\"Sallyanne\",\"Saloma\",\"Salome\",\"Salomi\",\"Sam\",\"Samantha\",\"Samara\",\"Samaria\",\"Sammy\",\"Sande\",\"Sandi\",\"Sandie\",\"Sandra\",\"Sandy\",\"Sandye\",\"Sapphira\",\"Sapphire\",\"Sara\",\"Sara-ann\",\"Saraann\",\"Sarah\",\"Sarajane\",\"Saree\",\"Sarena\",\"Sarene\",\"Sarette\",\"Sari\",\"Sarina\",\"Sarine\",\"Sarita\",\"Sascha\",\"Sasha\",\"Sashenka\",\"Saudra\",\"Saundra\",\"Savina\",\"Sayre\",\"Scarlet\",\"Scarlett\",\"Sean\",\"Seana\",\"Seka\",\"Sela\",\"Selena\",\"Selene\",\"Selestina\",\"Selia\",\"Selie\",\"Selina\",\"Selinda\",\"Seline\",\"Sella\",\"Selle\",\"Selma\",\"Sena\",\"Sephira\",\"Serena\",\"Serene\",\"Shae\",\"Shaina\",\"Shaine\",\"Shalna\",\"Shalne\",\"Shana\",\"Shanda\",\"Shandee\",\"Shandeigh\",\"Shandie\",\"Shandra\",\"Shandy\",\"Shane\",\"Shani\",\"Shanie\",\"Shanna\",\"Shannah\",\"Shannen\",\"Shannon\",\"Shanon\",\"Shanta\",\"Shantee\",\"Shara\",\"Sharai\",\"Shari\",\"Sharia\",\"Sharity\",\"Sharl\",\"Sharla\",\"Sharleen\",\"Sharlene\",\"Sharline\",\"Sharon\",\"Sharona\",\"Sharron\",\"Sharyl\",\"Shaun\",\"Shauna\",\"Shawn\",\"Shawna\",\"Shawnee\",\"Shay\",\"Shayla\",\"Shaylah\",\"Shaylyn\",\"Shaylynn\",\"Shayna\",\"Shayne\",\"Shea\",\"Sheba\",\"Sheela\",\"Sheelagh\",\"Sheelah\",\"Sheena\",\"Sheeree\",\"Sheila\",\"Sheila-kathryn\",\"Sheilah\",\"Shel\",\"Shela\",\"Shelagh\",\"Shelba\",\"Shelbi\",\"Shelby\",\"Shelia\",\"Shell\",\"Shelley\",\"Shelli\",\"Shellie\",\"Shelly\",\"Shena\",\"Sher\",\"Sheree\",\"Sheri\",\"Sherie\",\"Sherill\",\"Sherilyn\",\"Sherline\",\"Sherri\",\"Sherrie\",\"Sherry\",\"Sherye\",\"Sheryl\",\"Shina\",\"Shir\",\"Shirl\",\"Shirlee\",\"Shirleen\",\"Shirlene\",\"Shirley\",\"Shirline\",\"Shoshana\",\"Shoshanna\",\"Siana\",\"Sianna\",\"Sib\",\"Sibbie\",\"Sibby\",\"Sibeal\",\"Sibel\",\"Sibella\",\"Sibelle\",\"Sibilla\",\"Sibley\",\"Sibyl\",\"Sibylla\",\"Sibylle\",\"Sidoney\",\"Sidonia\",\"Sidonnie\",\"Sigrid\",\"Sile\",\"Sileas\",\"Silva\",\"Silvana\",\"Silvia\",\"Silvie\",\"Simona\",\"Simone\",\"Simonette\",\"Simonne\",\"Sindee\",\"Siobhan\",\"Sioux\",\"Siouxie\",\"Sisely\",\"Sisile\",\"Sissie\",\"Sissy\",\"Siusan\",\"Sofia\",\"Sofie\",\"Sondra\",\"Sonia\",\"Sonja\",\"Sonni\",\"Sonnie\",\"Sonnnie\",\"Sonny\",\"Sonya\",\"Sophey\",\"Sophi\",\"Sophia\",\"Sophie\",\"Sophronia\",\"Sorcha\",\"Sosanna\",\"Stace\",\"Stacee\",\"Stacey\",\"Staci\",\"Stacia\",\"Stacie\",\"Stacy\",\"Stafani\",\"Star\",\"Starla\",\"Starlene\",\"Starlin\",\"Starr\",\"Stefa\",\"Stefania\",\"Stefanie\",\"Steffane\",\"Steffi\",\"Steffie\",\"Stella\",\"Stepha\",\"Stephana\",\"Stephani\",\"Stephanie\",\"Stephannie\",\"Stephenie\",\"Stephi\",\"Stephie\",\"Stephine\",\"Stesha\",\"Stevana\",\"Stevena\",\"Stoddard\",\"Storm\",\"Stormi\",\"Stormie\",\"Stormy\",\"Sue\",\"Suellen\",\"Sukey\",\"Suki\",\"Sula\",\"Sunny\",\"Sunshine\",\"Susan\",\"Susana\",\"Susanetta\",\"Susann\",\"Susanna\",\"Susannah\",\"Susanne\",\"Susette\",\"Susi\",\"Susie\",\"Susy\",\"Suzann\",\"Suzanna\",\"Suzanne\",\"Suzette\",\"Suzi\",\"Suzie\",\"Suzy\",\"Sybil\",\"Sybila\",\"Sybilla\",\"Sybille\",\"Sybyl\",\"Sydel\",\"Sydelle\",\"Sydney\",\"Sylvia\",\"Tabatha\",\"Tabbatha\",\"Tabbi\",\"Tabbie\",\"Tabbitha\",\"Tabby\",\"Tabina\",\"Tabitha\",\"Taffy\",\"Talia\",\"Tallia\",\"Tallie\",\"Tallou\",\"Tallulah\",\"Tally\",\"Talya\",\"Talyah\",\"Tamar\",\"Tamara\",\"Tamarah\",\"Tamarra\",\"Tamera\",\"Tami\",\"Tamiko\",\"Tamma\",\"Tammara\",\"Tammi\",\"Tammie\",\"Tammy\",\"Tamqrah\",\"Tamra\",\"Tana\",\"Tandi\",\"Tandie\",\"Tandy\",\"Tanhya\",\"Tani\",\"Tania\",\"Tanitansy\",\"Tansy\",\"Tanya\",\"Tara\",\"Tarah\",\"Tarra\",\"Tarrah\",\"Taryn\",\"Tasha\",\"Tasia\",\"Tate\",\"Tatiana\",\"Tatiania\",\"Tatum\",\"Tawnya\",\"Tawsha\",\"Ted\",\"Tedda\",\"Teddi\",\"Teddie\",\"Teddy\",\"Tedi\",\"Tedra\",\"Teena\",\"Teirtza\",\"Teodora\",\"Tera\",\"Teresa\",\"Terese\",\"Teresina\",\"Teresita\",\"Teressa\",\"Teri\",\"Teriann\",\"Terra\",\"Terri\",\"Terrie\",\"Terrijo\",\"Terry\",\"Terrye\",\"Tersina\",\"Terza\",\"Tess\",\"Tessa\",\"Tessi\",\"Tessie\",\"Tessy\",\"Thalia\",\"Thea\",\"Theadora\",\"Theda\",\"Thekla\",\"Thelma\",\"Theo\",\"Theodora\",\"Theodosia\",\"Theresa\",\"Therese\",\"Theresina\",\"Theresita\",\"Theressa\",\"Therine\",\"Thia\",\"Thomasa\",\"Thomasin\",\"Thomasina\",\"Thomasine\",\"Tiena\",\"Tierney\",\"Tiertza\",\"Tiff\",\"Tiffani\",\"Tiffanie\",\"Tiffany\",\"Tiffi\",\"Tiffie\",\"Tiffy\",\"Tilda\",\"Tildi\",\"Tildie\",\"Tildy\",\"Tillie\",\"Tilly\",\"Tim\",\"Timi\",\"Timmi\",\"Timmie\",\"Timmy\",\"Timothea\",\"Tina\",\"Tine\",\"Tiphani\",\"Tiphanie\",\"Tiphany\",\"Tish\",\"Tisha\",\"Tobe\",\"Tobey\",\"Tobi\",\"Toby\",\"Tobye\",\"Toinette\",\"Toma\",\"Tomasina\",\"Tomasine\",\"Tomi\",\"Tommi\",\"Tommie\",\"Tommy\",\"Toni\",\"Tonia\",\"Tonie\",\"Tony\",\"Tonya\",\"Tonye\",\"Tootsie\",\"Torey\",\"Tori\",\"Torie\",\"Torrie\",\"Tory\",\"Tova\",\"Tove\",\"Tracee\",\"Tracey\",\"Traci\",\"Tracie\",\"Tracy\",\"Trenna\",\"Tresa\",\"Trescha\",\"Tressa\",\"Tricia\",\"Trina\",\"Trish\",\"Trisha\",\"Trista\",\"Trix\",\"Trixi\",\"Trixie\",\"Trixy\",\"Truda\",\"Trude\",\"Trudey\",\"Trudi\",\"Trudie\",\"Trudy\",\"Trula\",\"Tuesday\",\"Twila\",\"Twyla\",\"Tybi\",\"Tybie\",\"Tyne\",\"Ula\",\"Ulla\",\"Ulrica\",\"Ulrika\",\"Ulrikaumeko\",\"Ulrike\",\"Umeko\",\"Una\",\"Ursa\",\"Ursala\",\"Ursola\",\"Ursula\",\"Ursulina\",\"Ursuline\",\"Uta\",\"Val\",\"Valaree\",\"Valaria\",\"Vale\",\"Valeda\",\"Valencia\",\"Valene\",\"Valenka\",\"Valentia\",\"Valentina\",\"Valentine\",\"Valera\",\"Valeria\",\"Valerie\",\"Valery\",\"Valerye\",\"Valida\",\"Valina\",\"Valli\",\"Vallie\",\"Vally\",\"Valma\",\"Valry\",\"Van\",\"Vanda\",\"Vanessa\",\"Vania\",\"Vanna\",\"Vanni\",\"Vannie\",\"Vanny\",\"Vanya\",\"Veda\",\"Velma\",\"Velvet\",\"Venita\",\"Venus\",\"Vera\",\"Veradis\",\"Vere\",\"Verena\",\"Verene\",\"Veriee\",\"Verile\",\"Verina\",\"Verine\",\"Verla\",\"Verna\",\"Vernice\",\"Veronica\",\"Veronika\",\"Veronike\",\"Veronique\",\"Vevay\",\"Vi\",\"Vicki\",\"Vickie\",\"Vicky\",\"Victoria\",\"Vida\",\"Viki\",\"Vikki\",\"Vikky\",\"Vilhelmina\",\"Vilma\",\"Vin\",\"Vina\",\"Vinita\",\"Vinni\",\"Vinnie\",\"Vinny\",\"Viola\",\"Violante\",\"Viole\",\"Violet\",\"Violetta\",\"Violette\",\"Virgie\",\"Virgina\",\"Virginia\",\"Virginie\",\"Vita\",\"Vitia\",\"Vitoria\",\"Vittoria\",\"Viv\",\"Viva\",\"Vivi\",\"Vivia\",\"Vivian\",\"Viviana\",\"Vivianna\",\"Vivianne\",\"Vivie\",\"Vivien\",\"Viviene\",\"Vivienne\",\"Viviyan\",\"Vivyan\",\"Vivyanne\",\"Vonni\",\"Vonnie\",\"Vonny\",\"Vyky\",\"Wallie\",\"Wallis\",\"Walliw\",\"Wally\",\"Waly\",\"Wanda\",\"Wandie\",\"Wandis\",\"Waneta\",\"Wanids\",\"Wenda\",\"Wendeline\",\"Wendi\",\"Wendie\",\"Wendy\",\"Wendye\",\"Wenona\",\"Wenonah\",\"Whitney\",\"Wileen\",\"Wilhelmina\",\"Wilhelmine\",\"Wilie\",\"Willa\",\"Willabella\",\"Willamina\",\"Willetta\",\"Willette\",\"Willi\",\"Willie\",\"Willow\",\"Willy\",\"Willyt\",\"Wilma\",\"Wilmette\",\"Wilona\",\"Wilone\",\"Wilow\",\"Windy\",\"Wini\",\"Winifred\",\"Winna\",\"Winnah\",\"Winne\",\"Winni\",\"Winnie\",\"Winnifred\",\"Winny\",\"Winona\",\"Winonah\",\"Wren\",\"Wrennie\",\"Wylma\",\"Wynn\",\"Wynne\",\"Wynnie\",\"Wynny\",\"Xaviera\",\"Xena\",\"Xenia\",\"Xylia\",\"Xylina\",\"Yalonda\",\"Yasmeen\",\"Yasmin\",\"Yelena\",\"Yetta\",\"Yettie\",\"Yetty\",\"Yevette\",\"Ynes\",\"Ynez\",\"Yoko\",\"Yolanda\",\"Yolande\",\"Yolane\",\"Yolanthe\",\"Yoshi\",\"Yoshiko\",\"Yovonnda\",\"Ysabel\",\"Yvette\",\"Yvonne\",\"Zabrina\",\"Zahara\",\"Zandra\",\"Zaneta\",\"Zara\",\"Zarah\",\"Zaria\",\"Zarla\",\"Zea\",\"Zelda\",\"Zelma\",\"Zena\",\"Zenia\",\"Zia\",\"Zilvia\",\"Zita\",\"Zitella\",\"Zoe\",\"Zola\",\"Zonda\",\"Zondra\",\"Zonnya\",\"Zora\",\"Zorah\",\"Zorana\",\"Zorina\",\"Zorine\",\"Zsazsa\",\"Zulema\",\"Zuzana\"],exports.starWars=[\"Ackbar\",\"Adi Gallia\",\"Anakin Skywalker\",\"Arvel Crynyd\",\"Ayla Secura\",\"Bail Prestor Organa\",\"Barriss Offee\",\"Ben Quadinaros\",\"Beru Whitesun lars\",\"Bib Fortuna\",\"Biggs Darklighter\",\"Boba Fett\",\"Bossk\",\"C-3PO\",\"Chewbacca\",\"Cliegg Lars\",\"Cordé\",\"Darth Maul\",\"Darth Vader\",\"Dexter Jettster\",\"Dooku\",\"Dormé\",\"Dud Bolt\",\"Eeth Koth\",\"Finis Valorum\",\"Gasgano\",\"Greedo\",\"Gregar Typho\",\"Grievous\",\"Han Solo\",\"IG-88\",\"Jabba Desilijic Tiure\",\"Jango Fett\",\"Jar Jar Binks\",\"Jek Tono Porkins\",\"Jocasta Nu\",\"Ki-Adi-Mundi\",\"Kit Fisto\",\"Lama Su\",\"Lando Calrissian\",\"Leia Organa\",\"Lobot\",\"Luke Skywalker\",\"Luminara Unduli\",\"Mace Windu\",\"Mas Amedda\",\"Mon Mothma\",\"Nien Nunb\",\"Nute Gunray\",\"Obi-Wan Kenobi\",\"Owen Lars\",\"Padmé Amidala\",\"Palpatine\",\"Plo Koon\",\"Poggle the Lesser\",\"Quarsh Panaka\",\"Qui-Gon Jinn\",\"R2-D2\",\"R4-P17\",\"R5-D4\",\"Ratts Tyerel\",\"Raymus Antilles\",\"Ric Olié\",\"Roos Tarpals\",\"Rugor Nass\",\"Saesee Tiin\",\"San Hill\",\"Sebulba\",\"Shaak Ti\",\"Shmi Skywalker\",\"Sly Moore\",\"Tarfful\",\"Taun We\",\"Tion Medon\",\"Wat Tambor\",\"Watto\",\"Wedge Antilles\",\"Wicket Systri Warrick\",\"Wilhuff Tarkin\",\"Yarael Poof\",\"Yoda\",\"Zam Wesell\"],exports.uniqueNamesGenerator=a=>{const n=[...a&&a.dictionaries||i.dictionaries],l={...i,...a,length:a&&a.length||n.length,dictionaries:n};if(!a||!a.dictionaries||!a.dictionaries.length)throw new Error('A \"dictionaries\" array must be provided. This is a breaking change introduced starting from Unique Name Generator v4. Read more about the breaking change here: https://github.com/andreasonny83/unique-names-generator#migration-guide');return new e(l).generate()};\n//# sourceMappingURL=index.js.map\n",
|
|
6
|
-
"import {\n type ActionEventPayload,\n asUUID,\n ChannelType,\n composePromptFromState,\n type Content,\n ContentType,\n createUniqueUuid,\n type EntityPayload,\n type EvaluatorEventPayload,\n type EventPayload,\n EventType,\n type IAgentRuntime,\n imageDescriptionTemplate,\n type InvokePayload,\n logger,\n type Media,\n type Memory,\n messageHandlerTemplate,\n type MessagePayload,\n type MessageReceivedHandlerParams,\n ModelType,\n parseKeyValueXml,\n type Plugin,\n PluginEvents,\n postCreationTemplate,\n parseBooleanFromText,\n Role,\n type Room,\n type RunEventPayload,\n shouldRespondTemplate,\n truncateToCompleteSentence,\n type UUID,\n type WorldPayload,\n getLocalServerUrl,\n multiStepDecisionTemplate,\n multiStepSummaryTemplate,\n type State,\n} from '@elizaos/core';\nimport { v4 } from 'uuid';\n\nimport * as actions from './actions/index.ts';\nimport * as evaluators from './evaluators/index.ts';\nimport * as providers from './providers/index.ts';\n\nimport { TaskService } from './services/task.ts';\nimport { EmbeddingGenerationService } from './services/embedding.ts';\n\nexport * from './actions/index.ts';\nexport * from './evaluators/index.ts';\nexport * from './providers/index.ts';\n\n/**\n * Represents media data containing a buffer of data and the media type.\n * @typedef {Object} MediaData\n * @property {Buffer} data - The buffer of data.\n * @property {string} mediaType - The type of media.\n */\ntype MediaData = {\n data: Buffer;\n mediaType: string;\n};\n\n/**\n * Multi-step workflow execution result\n */\ninterface MultiStepActionResult {\n data: { actionName: string };\n success: boolean;\n text?: string;\n error?: string | Error;\n values?: Record<string, any>;\n}\n\n/**\n * Multi-step workflow state\n */\ninterface MultiStepState extends State {\n data: {\n actionResults: MultiStepActionResult[];\n [key: string]: any;\n };\n}\n\nconst latestResponseIds = new Map<string, Map<string, string>>();\n\n/**\n * Escapes special characters in a string to make it JSON-safe.\n */\n/* // Removing JSON specific helpers\nfunction escapeForJson(input: string): string {\n return input\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n')\n .replace(/```/g, '\\\\`\\\\`\\\\`');\n}\n\nfunction sanitizeJson(rawJson: string): string {\n try {\n // Try parsing directly\n JSON.parse(rawJson);\n return rawJson; // Already valid\n } catch {\n // Continue to sanitization\n }\n\n // first, replace all newlines with \\n\n const sanitized = rawJson\n .replace(/\\n/g, '\\\\n')\n\n // then, replace all backticks with \\\\\\`\n .replace(/`/g, '\\\\\\`');\n\n // Regex to find and escape the \"text\" field\n const fixed = sanitized.replace(/\"text\"\\s*:\\s*\"([\\s\\S]*?)\"\\s*,\\s*\"simple\"/, (_match, group) => {\n const escapedText = escapeForJson(group);\n return `\"text\": \"${escapedText}\", \"simple\"`;\n });\n\n // Validate that the result is actually parseable\n try {\n JSON.parse(fixed);\n return fixed;\n } catch (e) {\n throw new Error(`Failed to sanitize JSON: ${e.message}`);\n }\n}\n*/\n\n/**\n * Fetches media data from a list of attachments, supporting both HTTP URLs and local file paths.\n *\n * @param attachments Array of Media objects containing URLs or file paths to fetch media from\n * @returns Promise that resolves with an array of MediaData objects containing the fetched media data and content type\n */\n/**\n * Fetches media data from given attachments.\n * @param {Media[]} attachments - Array of Media objects to fetch data from.\n * @returns {Promise<MediaData[]>} - A Promise that resolves with an array of MediaData objects.\n */\nexport async function fetchMediaData(attachments: Media[]): Promise<MediaData[]> {\n return Promise.all(\n attachments.map(async (attachment: Media) => {\n if (/^(http|https):\\/\\//.test(attachment.url)) {\n // Handle HTTP URLs\n const response = await fetch(attachment.url);\n if (!response.ok) {\n throw new Error(`Failed to fetch file: ${attachment.url}`);\n }\n const mediaBuffer = Buffer.from(await response.arrayBuffer());\n const mediaType = attachment.contentType || 'image/png';\n return { data: mediaBuffer, mediaType };\n }\n // if (fs.existsSync(attachment.url)) {\n // // Handle local file paths\n // const mediaBuffer = await fs.promises.readFile(path.resolve(attachment.url));\n // const mediaType = attachment.contentType || 'image/png';\n // return { data: mediaBuffer, mediaType };\n // }\n throw new Error(`File not found: ${attachment.url}. Make sure the path is correct.`);\n })\n );\n}\n\n/**\n * Processes attachments by generating descriptions for supported media types.\n * Currently supports image description generation.\n *\n * @param {Media[]} attachments - Array of attachments to process\n * @param {IAgentRuntime} runtime - The agent runtime for accessing AI models\n * @returns {Promise<Media[]>} - Returns a new array of processed attachments with added description, title, and text properties\n */\nexport async function processAttachments(\n attachments: Media[],\n runtime: IAgentRuntime\n): Promise<Media[]> {\n if (!attachments || attachments.length === 0) {\n return [];\n }\n runtime.logger.debug(`[Bootstrap] Processing ${attachments.length} attachment(s)`);\n\n const processedAttachments: Media[] = [];\n\n for (const attachment of attachments) {\n try {\n // Start with the original attachment\n const processedAttachment: Media = { ...attachment };\n\n const isRemote = /^(http|https):\\/\\//.test(attachment.url);\n const url = isRemote ? attachment.url : getLocalServerUrl(attachment.url);\n // Only process images that don't already have descriptions\n if (attachment.contentType === ContentType.IMAGE && !attachment.description) {\n runtime.logger.debug(`[Bootstrap] Generating description for image: ${attachment.url}`);\n\n let imageUrl = url;\n\n if (!isRemote) {\n // Only convert local/internal media to base64\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to fetch image: ${res.statusText}`);\n\n const arrayBuffer = await res.arrayBuffer();\n const buffer = Buffer.from(arrayBuffer);\n const contentType = res.headers.get('content-type') || 'application/octet-stream';\n imageUrl = `data:${contentType};base64,${buffer.toString('base64')}`;\n }\n\n try {\n const response = await runtime.useModel(ModelType.IMAGE_DESCRIPTION, {\n prompt: imageDescriptionTemplate,\n imageUrl,\n });\n\n if (typeof response === 'string') {\n // Parse XML response\n const parsedXml = parseKeyValueXml(response);\n\n if (parsedXml && (parsedXml.description || parsedXml.text)) {\n processedAttachment.description = parsedXml.description || '';\n processedAttachment.title = parsedXml.title || 'Image';\n processedAttachment.text = parsedXml.text || parsedXml.description || '';\n\n runtime.logger.debug(\n `[Bootstrap] Generated description: ${processedAttachment.description?.substring(0, 100)}...`\n );\n } else {\n // Fallback: Try simple regex parsing if parseKeyValueXml fails\n const responseStr = response as string;\n const titleMatch = responseStr.match(/<title>([^<]+)<\\/title>/);\n const descMatch = responseStr.match(/<description>([^<]+)<\\/description>/);\n const textMatch = responseStr.match(/<text>([^<]+)<\\/text>/);\n\n if (titleMatch || descMatch || textMatch) {\n processedAttachment.title = titleMatch?.[1] || 'Image';\n processedAttachment.description = descMatch?.[1] || '';\n processedAttachment.text = textMatch?.[1] || descMatch?.[1] || '';\n\n runtime.logger.debug(\n `[Bootstrap] Used fallback XML parsing - description: ${processedAttachment.description?.substring(0, 100)}...`\n );\n } else {\n runtime.logger.warn(\n `[Bootstrap] Failed to parse XML response for image description`\n );\n }\n }\n } else if (response && typeof response === 'object' && 'description' in response) {\n // Handle object responses for backwards compatibility\n processedAttachment.description = response.description;\n processedAttachment.title = response.title || 'Image';\n processedAttachment.text = response.description;\n\n runtime.logger.debug(\n `[Bootstrap] Generated description: ${processedAttachment.description?.substring(0, 100)}...`\n );\n } else {\n runtime.logger.warn(`[Bootstrap] Unexpected response format for image description`);\n }\n } catch (error) {\n runtime.logger.error({ error }, `[Bootstrap] Error generating image description:`);\n // Continue processing without description\n }\n } else if (attachment.contentType === ContentType.DOCUMENT && !attachment.text) {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to fetch document: ${res.statusText}`);\n\n const contentType = res.headers.get('content-type') || '';\n const isPlainText = contentType.startsWith('text/plain');\n\n if (isPlainText) {\n runtime.logger.debug(`[Bootstrap] Processing plain text document: ${attachment.url}`);\n\n const textContent = await res.text();\n processedAttachment.text = textContent;\n processedAttachment.title = processedAttachment.title || 'Text File';\n\n runtime.logger.debug(\n `[Bootstrap] Extracted text content (first 100 chars): ${processedAttachment.text?.substring(0, 100)}...`\n );\n } else {\n runtime.logger.warn(`[Bootstrap] Skipping non-plain-text document: ${contentType}`);\n }\n }\n\n processedAttachments.push(processedAttachment);\n } catch (error) {\n runtime.logger.error(\n { error, attachmentUrl: attachment.url },\n `[Bootstrap] Failed to process attachment ${attachment.url}:`\n );\n // Add the original attachment if processing fails\n processedAttachments.push(attachment);\n }\n }\n\n return processedAttachments;\n}\n\n/**\n * Determines whether to skip the shouldRespond logic based on room type and message source.\n * Supports both default values and runtime-configurable overrides via env settings.\n */\nexport function shouldBypassShouldRespond(\n runtime: IAgentRuntime,\n room?: Room,\n source?: string\n): boolean {\n if (!room) return false;\n\n function normalizeEnvList(value: unknown): string[] {\n if (!value || typeof value !== 'string') return [];\n\n const cleaned = value.trim().replace(/^\\[|\\]$/g, '');\n return cleaned\n .split(',')\n .map((v) => v.trim())\n .filter(Boolean);\n }\n\n const defaultBypassTypes = [\n ChannelType.DM,\n ChannelType.VOICE_DM,\n ChannelType.SELF,\n ChannelType.API,\n ];\n\n const defaultBypassSources = ['client_chat'];\n\n const bypassTypesSetting = normalizeEnvList(runtime.getSetting('SHOULD_RESPOND_BYPASS_TYPES'));\n const bypassSourcesSetting = normalizeEnvList(\n runtime.getSetting('SHOULD_RESPOND_BYPASS_SOURCES')\n );\n\n const bypassTypes = new Set(\n [...defaultBypassTypes.map((t) => t.toString()), ...bypassTypesSetting].map((s: string) =>\n s.trim().toLowerCase()\n )\n );\n\n const bypassSources = [...defaultBypassSources, ...bypassSourcesSetting].map((s: string) =>\n s.trim().toLowerCase()\n );\n\n const roomType = room.type?.toString().toLowerCase();\n const sourceStr = source?.toLowerCase() || '';\n\n return bypassTypes.has(roomType) || bypassSources.some((pattern) => sourceStr.includes(pattern));\n}\n\n/**\n * Handles incoming messages and generates responses based on the provided runtime and message information.\n *\n * @param {MessageReceivedHandlerParams} params - The parameters needed for message handling, including runtime, message, and callback.\n * @returns {Promise<void>} - A promise that resolves once the message handling and response generation is complete.\n */\nconst messageReceivedHandler = async ({\n runtime,\n message,\n callback,\n onComplete,\n}: MessageReceivedHandlerParams): Promise<void> => {\n // Set up timeout monitoring\n const useMultiStep = runtime.getSetting('USE_MULTI_STEP');\n const timeoutDuration = 60 * 60 * 1000; // 1 hour\n let timeoutId: NodeJS.Timeout | undefined = undefined;\n\n try {\n runtime.logger.info(\n `[Bootstrap] Message received from ${message.entityId} in room ${message.roomId}`\n );\n\n // Generate a new response ID\n const responseId = v4();\n // Get or create the agent-specific map\n if (!latestResponseIds.has(runtime.agentId)) {\n latestResponseIds.set(runtime.agentId, new Map<string, string>());\n }\n const agentResponses = latestResponseIds.get(runtime.agentId);\n if (!agentResponses) throw new Error('Agent responses map not found');\n\n // Log when we're updating the response ID\n const previousResponseId = agentResponses.get(message.roomId);\n if (previousResponseId) {\n logger.warn(\n `[Bootstrap] Updating response ID for room ${message.roomId} from ${previousResponseId} to ${responseId} - this may discard in-progress responses`\n );\n }\n\n // Set this as the latest response ID for this agent+room\n agentResponses.set(message.roomId, responseId);\n\n // Use runtime's run tracking for this message processing\n const runId = runtime.startRun();\n const startTime = Date.now();\n\n // Emit run started event\n await runtime.emitEvent(EventType.RUN_STARTED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'started',\n source: 'messageHandler',\n // this shouldn't be a standard\n // but we need to expose content somewhere\n metadata: message.content,\n });\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n timeoutId = setTimeout(async () => {\n await runtime.emitEvent(EventType.RUN_TIMEOUT, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'timeout',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n error: 'Run exceeded 60 minute timeout',\n source: 'messageHandler',\n });\n reject(new Error('Run exceeded 60 minute timeout'));\n }, timeoutDuration);\n });\n\n const processingPromise = (async () => {\n try {\n if (message.entityId === runtime.agentId) {\n runtime.logger.debug(`[Bootstrap] Skipping message from self (${runtime.agentId})`);\n throw new Error('Message is from the agent itself');\n }\n\n runtime.logger.debug(\n `[Bootstrap] Processing message: ${truncateToCompleteSentence(message.content.text || '', 50)}...`\n );\n\n // First, save the incoming message\n runtime.logger.debug('[Bootstrap] Saving message to memory and queueing embeddings');\n\n // Check if memory already exists (it might have been created by MessageBusService)\n let memoryToQueue: Memory;\n\n if (message.id) {\n const existingMemory = await runtime.getMemoryById(message.id);\n if (existingMemory) {\n runtime.logger.debug('[Bootstrap] Memory already exists, skipping creation');\n memoryToQueue = existingMemory;\n } else {\n // Create memory with the existing ID (preserving external IDs)\n const createdMemoryId = await runtime.createMemory(message, 'messages');\n // Use the created memory with the actual ID returned by the database\n memoryToQueue = { ...message, id: createdMemoryId };\n }\n // Queue with high priority for messages with pre-existing IDs\n await runtime.queueEmbeddingGeneration(memoryToQueue, 'high');\n } else {\n // No ID, create new memory and queue embedding\n const memoryId = await runtime.createMemory(message, 'messages');\n // Set the ID on the message for downstream processing\n message.id = memoryId;\n // Create a memory object with the new ID for queuing\n memoryToQueue = { ...message, id: memoryId };\n await runtime.queueEmbeddingGeneration(memoryToQueue, 'normal');\n }\n\n const agentUserState = await runtime.getParticipantUserState(\n message.roomId,\n runtime.agentId\n );\n\n // default LLM to off\n const defLllmOff = parseBooleanFromText(runtime.getSetting('BOOTSTRAP_DEFLLMOFF'));\n if (defLllmOff && agentUserState === null) {\n runtime.logger.debug('bootstrap - LLM is off by default');\n // allow some other subsystem to handle this event\n // maybe emit an event\n\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'off',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return;\n }\n\n if (\n agentUserState === 'MUTED' &&\n !message.content.text?.toLowerCase().includes(runtime.character.name.toLowerCase())\n ) {\n runtime.logger.debug(`[Bootstrap] Ignoring muted room ${message.roomId}`);\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'muted',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return;\n }\n\n let state = await runtime.composeState(\n message,\n ['ANXIETY', 'SHOULD_RESPOND', 'ENTITIES', 'CHARACTER', 'RECENT_MESSAGES', 'ACTIONS'],\n true\n );\n\n // Skip shouldRespond check for DM and VOICE_DM channels\n const room = await runtime.getRoom(message.roomId);\n const shouldSkipShouldRespond = shouldBypassShouldRespond(\n runtime,\n room ?? undefined,\n message.content.source\n );\n\n if (message.content.attachments && message.content.attachments.length > 0) {\n message.content.attachments = await processAttachments(\n message.content.attachments,\n runtime\n );\n if (message.id) {\n await runtime.updateMemory({ id: message.id, content: message.content });\n }\n }\n\n let shouldRespond = true;\n\n // Handle shouldRespond\n if (!shouldSkipShouldRespond) {\n const shouldRespondPrompt = composePromptFromState({\n state,\n template: runtime.character.templates?.shouldRespondTemplate || shouldRespondTemplate,\n });\n\n runtime.logger.debug(\n `[Bootstrap] Evaluating response for ${runtime.character.name}\\nPrompt: ${shouldRespondPrompt}`\n );\n\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: shouldRespondPrompt,\n });\n\n runtime.logger.debug(\n `[Bootstrap] Response evaluation for ${runtime.character.name}:\\n${response}`\n );\n runtime.logger.debug(`[Bootstrap] Response type: ${typeof response}`);\n\n // Try to preprocess response by removing code blocks markers if present\n // let processedResponse = response.replace('```json', '').replaceAll('```', '').trim(); // No longer needed for XML\n\n const responseObject = parseKeyValueXml(response);\n runtime.logger.debug({ responseObject }, '[Bootstrap] Parsed response:');\n\n // If an action is provided, the agent intends to respond in some way\n // Only exclude explicit non-response actions\n const nonResponseActions = ['IGNORE', 'NONE'];\n shouldRespond =\n responseObject?.action &&\n !nonResponseActions.includes(responseObject.action.toUpperCase());\n } else {\n runtime.logger.debug(\n `[Bootstrap] Skipping shouldRespond check for ${runtime.character.name} because ${room?.type} ${room?.source}`\n );\n shouldRespond = true;\n }\n\n // I don't think we need these right now\n //runtime.logger.debug('shouldRespond is', shouldRespond);\n //runtime.logger.debug('shouldSkipShouldRespond', shouldSkipShouldRespond);\n\n let responseContent: Content | null = null;\n let responseMessages: Memory[] = [];\n\n if (shouldRespond) {\n const result = useMultiStep\n ? await runMultiStepCore({ runtime, message, state, callback })\n : await runSingleShotCore({ runtime, message, state });\n\n responseContent = result.responseContent;\n responseMessages = result.responseMessages;\n state = result.state;\n\n // Race check before we send anything\n const currentResponseId = agentResponses.get(message.roomId);\n if (currentResponseId !== responseId) {\n runtime.logger.info(\n `Response discarded - newer message being processed for agent: ${runtime.agentId}, room: ${message.roomId}`\n );\n return;\n }\n\n if (responseContent && message.id) {\n responseContent.inReplyTo = createUniqueUuid(runtime, message.id);\n }\n\n if (responseContent?.providers?.length && responseContent.providers.length > 0) {\n state = await runtime.composeState(message, responseContent.providers || []);\n }\n\n if (responseContent) {\n const mode = result.mode ?? ('actions' as StrategyMode);\n\n if (mode === 'simple') {\n // Log provider usage for simple responses\n if (responseContent.providers && responseContent.providers.length > 0) {\n runtime.logger.debug(\n { providers: responseContent.providers },\n '[Bootstrap] Simple response used providers'\n );\n }\n // without actions there can't be more than one message\n await callback(responseContent);\n } else if (mode === 'actions') {\n await runtime.processActions(\n message,\n responseMessages,\n state,\n async (content, files) => {\n runtime.logger.debug({ content, files }, 'action callback');\n responseContent!.actionCallbacks = content;\n return callback(content, files);\n }\n );\n }\n }\n } else {\n // Handle the case where the agent decided not to respond\n runtime.logger.debug(\n '[Bootstrap] Agent decided not to respond (shouldRespond is false).'\n );\n\n // Check if we still have the latest response ID\n const currentResponseId = agentResponses.get(message.roomId);\n // helpful for swarms\n const keepResp = parseBooleanFromText(runtime.getSetting('BOOTSTRAP_KEEP_RESP'));\n if (currentResponseId !== responseId && !keepResp) {\n runtime.logger.info(\n `Ignore response discarded - newer message being processed for agent: ${runtime.agentId}, room: ${message.roomId}`\n );\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'replaced',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return; // Stop processing if a newer message took over\n }\n\n if (!message.id) {\n runtime.logger.error(\n '[Bootstrap] Message ID is missing, cannot create ignore response.'\n );\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'noMessageId',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return;\n }\n\n // Construct a minimal content object indicating ignore, include a generic thought\n const ignoreContent: Content = {\n thought: 'Agent decided not to respond to this message.',\n actions: ['IGNORE'],\n simple: true, // Treat it as simple for callback purposes\n inReplyTo: createUniqueUuid(runtime, message.id), // Reference original message\n };\n\n // Call the callback directly with the ignore content\n await callback(ignoreContent);\n\n // Also save this ignore action/thought to memory\n const ignoreMemory: Memory = {\n id: asUUID(v4()),\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: ignoreContent,\n roomId: message.roomId,\n createdAt: Date.now(),\n };\n await runtime.createMemory(ignoreMemory, 'messages');\n runtime.logger.debug('[Bootstrap] Saved ignore response to memory', {\n memoryId: ignoreMemory.id,\n });\n\n // Optionally, evaluate the decision to ignore (if relevant evaluators exist)\n // await runtime.evaluate(message, state, shouldRespond, callback, []);\n }\n\n // Clean up the response ID since we handled it\n agentResponses.delete(message.roomId);\n if (agentResponses.size === 0) {\n latestResponseIds.delete(runtime.agentId);\n }\n\n await runtime.evaluate(\n message,\n state,\n shouldRespond,\n async (content) => {\n runtime.logger.debug({ content }, 'evaluate callback');\n if (responseContent) {\n responseContent.evalCallbacks = content;\n }\n return callback(content);\n },\n responseMessages\n );\n\n // ok who are they\n let entityName = 'noname';\n if (message.metadata && 'entityName' in message.metadata) {\n entityName = (message.metadata as any).entityName;\n }\n\n const isDM = message.content?.channelType?.toUpperCase() === 'DM';\n let roomName = entityName;\n if (!isDM) {\n const roomDatas = await runtime.getRoomsByIds([message.roomId]);\n if (roomDatas?.length) {\n const roomData = roomDatas[0];\n if (roomData.name) {\n // server/guild name?\n roomName = roomData.name;\n }\n // how do I get worldName\n if (roomData.worldId) {\n const worldData = await runtime.getWorld(roomData.worldId);\n if (worldData) {\n roomName = worldData.name + '-' + roomName;\n }\n }\n }\n }\n\n const date = new Date();\n\n // get available actions\n const availableActions = state.data?.providers?.ACTIONS?.data?.actionsData?.map(\n (a) => a.name\n ) || [-1];\n\n // generate data of interest\n const logData = {\n at: date.toString(),\n timestamp: parseInt('' + date.getTime() / 1000),\n messageId: message.id, // can extract roomId or whatever\n userEntityId: message.entityId,\n input: message.content.text,\n thought: responseContent?.thought,\n simple: responseContent?.simple,\n availableActions,\n actions: responseContent?.actions,\n providers: responseContent?.providers,\n irt: responseContent?.inReplyTo,\n output: responseContent?.text,\n // to strip out\n entityName,\n source: message.content.source,\n channelType: message.content.channelType,\n roomName,\n };\n\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'completed',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n entityName,\n responseContent,\n metadata: logData,\n });\n } catch (error: any) {\n console.error('error is', error);\n // Emit run ended event with error\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'error',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n error: error.message,\n source: 'messageHandler',\n });\n }\n })();\n\n await Promise.race([processingPromise, timeoutPromise]);\n } finally {\n clearTimeout(timeoutId);\n onComplete?.();\n }\n};\n\ntype StrategyMode = 'simple' | 'actions' | 'none';\ntype StrategyResult = {\n responseContent: Content | null;\n responseMessages: Memory[];\n state: any;\n mode: StrategyMode;\n};\n\nasync function runSingleShotCore({ runtime, message, state }): Promise<StrategyResult> {\n state = await runtime.composeState(message, ['ACTIONS']);\n\n if (!state.values?.actionNames) {\n runtime.logger.warn('actionNames data missing from state, even though it was requested');\n }\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.messageHandlerTemplate || messageHandlerTemplate,\n });\n\n let responseContent: Content | null = null;\n\n // Retry if missing required fields\n let retries = 0;\n const maxRetries = 3;\n\n while (retries < maxRetries && (!responseContent?.thought || !responseContent?.actions)) {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, { prompt });\n\n runtime.logger.debug({ response }, '[Bootstrap] *** Raw LLM Response ***');\n\n // Attempt to parse the XML response\n const parsedXml = parseKeyValueXml(response);\n runtime.logger.debug({ parsedXml }, '[Bootstrap] *** Parsed XML Content ***');\n\n // Map parsed XML to Content type, handling potential missing fields\n if (parsedXml) {\n responseContent = {\n ...parsedXml,\n thought: parsedXml.thought || '',\n actions: parsedXml.actions || ['IGNORE'],\n providers: parsedXml.providers || [],\n text: parsedXml.text || '',\n simple: parsedXml.simple || false,\n };\n } else {\n responseContent = null;\n }\n\n retries++;\n if (!responseContent?.thought || !responseContent?.actions) {\n runtime.logger.warn(\n { response, parsedXml, responseContent },\n '[Bootstrap] *** Missing required fields (thought or actions), retrying... ***'\n );\n }\n }\n\n if (!responseContent) {\n return { responseContent: null, responseMessages: [], state, mode: 'none' };\n }\n\n // --- LLM IGNORE/REPLY ambiguity handling ---\n // Sometimes the LLM outputs actions like [\"REPLY\", \"IGNORE\"], which breaks isSimple detection\n // and triggers unnecessary large LLM calls. We clarify intent here:\n // - If IGNORE is present with other actions:\n // - If text is empty, we assume the LLM intended to IGNORE and drop all other actions.\n // - If text is present, we assume the LLM intended to REPLY and remove IGNORE from actions.\n // This ensures consistent, clear behavior and preserves reply speed optimizations.\n if (responseContent.actions && responseContent.actions.length > 1) {\n // filter out all NONE actions, there's nothing to be done with them\n // oh but there is a none action in bootstrap\n //responseContent.actions = responseContent.actions.filter(a => a !== 'NONE')\n\n // Helper function to safely check if an action is IGNORE\n const isIgnore = (a: unknown) => typeof a === 'string' && a.toUpperCase() === 'IGNORE';\n\n // Check if any action is IGNORE\n const hasIgnore = responseContent.actions.some(isIgnore);\n\n if (hasIgnore) {\n if (!responseContent.text || responseContent.text.trim() === '') {\n // No text, truly meant to IGNORE\n responseContent.actions = ['IGNORE'];\n } else {\n // Text present, LLM intended to reply, remove IGNORE\n const filtered = responseContent.actions.filter((a) => !isIgnore(a));\n // Ensure we don't end up with an empty actions array when text is present\n // If all actions were IGNORE, default to REPLY\n responseContent.actions = filtered.length ? filtered : ['REPLY'];\n }\n }\n }\n\n // Automatically determine if response is simple based on providers and actions\n // Simple = REPLY action with no providers used\n const isSimple =\n responseContent.actions?.length === 1 &&\n typeof responseContent.actions[0] === 'string' &&\n responseContent.actions[0].toUpperCase() === 'REPLY' &&\n (!responseContent.providers || responseContent.providers.length === 0);\n\n responseContent.simple = isSimple;\n\n const responseMessages: Memory[] = [\n {\n id: asUUID(v4()),\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: responseContent,\n roomId: message.roomId,\n createdAt: Date.now(),\n },\n ];\n\n return {\n responseContent,\n responseMessages,\n state,\n mode: isSimple && responseContent.text ? 'simple' : 'actions',\n };\n}\n\nasync function runMultiStepCore({ runtime, message, state, callback }): Promise<StrategyResult> {\n const traceActionResult: MultiStepActionResult[] = [];\n let accumulatedState: MultiStepState = state;\n const maxIterations = parseInt(runtime.getSetting('MAX_MULTISTEP_ITERATIONS') || '6');\n let iterationCount = 0;\n\n while (iterationCount < maxIterations) {\n iterationCount++;\n runtime.logger.debug(`[MultiStep] Starting iteration ${iterationCount}/${maxIterations}`);\n\n accumulatedState = await runtime.composeState(message, ['RECENT_MESSAGES', 'ACTION_STATE']);\n accumulatedState.data.actionResults = traceActionResult;\n\n const prompt = composePromptFromState({\n state: accumulatedState,\n template: runtime.character.templates?.multiStepDecisionTemplate || multiStepDecisionTemplate,\n });\n\n const stepResultRaw = await runtime.useModel(ModelType.TEXT_LARGE, { prompt });\n const parsedStep = parseKeyValueXml(stepResultRaw);\n\n if (!parsedStep) {\n runtime.logger.warn(`[MultiStep] Failed to parse step result at iteration ${iterationCount}`);\n traceActionResult.push({\n data: { actionName: 'parse_error' },\n success: false,\n error: 'Failed to parse step result',\n });\n break;\n }\n\n const { thought, providers = [], action, isFinish } = parsedStep;\n\n // Check for completion condition\n if (isFinish === 'true' || isFinish === true) {\n runtime.logger.info(`[MultiStep] Task marked as complete at iteration ${iterationCount}`);\n await callback({\n text: '',\n thought: thought ?? '',\n });\n break;\n }\n\n // Validate that we have something to do in this step\n if ((!providers || providers.length === 0) && !action) {\n runtime.logger.warn(\n `[MultiStep] No providers or action specified at iteration ${iterationCount}, forcing completion`\n );\n break;\n }\n\n try {\n for (const providerName of providers) {\n const provider = runtime.providers.find((p: any) => p.name === providerName);\n if (!provider) {\n runtime.logger.warn(`[MultiStep] Provider not found: ${providerName}`);\n traceActionResult.push({\n data: { actionName: providerName },\n success: false,\n error: `Provider not found: ${providerName}`,\n });\n continue;\n }\n\n const providerResult = await provider.get(runtime, message, state);\n if (!providerResult) {\n runtime.logger.warn(`[MultiStep] Provider returned no result: ${providerName}`);\n traceActionResult.push({\n data: { actionName: providerName },\n success: false,\n error: `Provider returned no result`,\n });\n continue;\n }\n\n const success = !!providerResult.text;\n\n traceActionResult.push({\n data: { actionName: providerName },\n success,\n text: success ? providerResult.text : undefined,\n error: success ? undefined : providerResult?.error,\n });\n\n await callback({\n text: `🔎 Provider executed: ${providerName}`,\n actions: [providerName],\n thought: thought ?? '',\n });\n }\n\n if (action) {\n const actionContent = {\n text: `🔎 Executing action: ${action}`,\n actions: [action],\n thought: thought ?? '',\n };\n await runtime.processActions(\n message,\n [\n {\n id: v4() as UUID,\n entityId: runtime.agentId,\n roomId: message.roomId,\n createdAt: Date.now(),\n content: actionContent,\n },\n ],\n state,\n async () => {\n return [];\n }\n );\n\n const cachedState = runtime.stateCache.get(`${message.id}_action_results`);\n const actionResults = cachedState?.values?.actionResults || [];\n const result = actionResults.length > 0 ? actionResults[0] : null;\n const success = result?.success ?? false;\n\n traceActionResult.push({\n data: { actionName: action },\n success,\n text: result?.text,\n values: result?.values,\n error: success ? undefined : result?.text,\n });\n }\n } catch (err) {\n runtime.logger.error({ err }, '[MultiStep] Error executing step');\n traceActionResult.push({\n data: { actionName: action || 'unknown' },\n success: false,\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n\n if (iterationCount >= maxIterations) {\n runtime.logger.warn(\n `[MultiStep] Reached maximum iterations (${maxIterations}), forcing completion`\n );\n }\n\n accumulatedState = await runtime.composeState(message, ['RECENT_MESSAGES', 'ACTION_STATE']);\n const summaryPrompt = composePromptFromState({\n state: accumulatedState,\n template: runtime.character.templates?.multiStepSummaryTemplate || multiStepSummaryTemplate,\n });\n\n const finalOutput = await runtime.useModel(ModelType.TEXT_LARGE, { prompt: summaryPrompt });\n const summary = parseKeyValueXml(finalOutput);\n\n let responseContent: Content | null = null;\n if (summary?.text) {\n responseContent = {\n actions: ['MULTI_STEP_SUMMARY'],\n text: summary.text,\n thought: summary.thought || 'Final user-facing message after task completion.',\n simple: true,\n };\n }\n\n const responseMessages: Memory[] = responseContent\n ? [\n {\n id: asUUID(v4()),\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: responseContent,\n roomId: message.roomId,\n createdAt: Date.now(),\n },\n ]\n : [];\n\n return {\n responseContent,\n responseMessages,\n state: accumulatedState,\n mode: responseContent ? 'simple' : 'none',\n };\n}\n\n/**\n * Handles the receipt of a reaction message and creates a memory in the designated memory manager.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {Memory} params.message - The reaction message to be stored in memory.\n * @returns {void}\n */\nconst reactionReceivedHandler = async ({\n runtime,\n message,\n}: {\n runtime: IAgentRuntime;\n message: Memory;\n}) => {\n try {\n await runtime.createMemory(message, 'messages');\n } catch (error: any) {\n if (error.code === '23505') {\n runtime.logger.warn('[Bootstrap] Duplicate reaction memory, skipping');\n return;\n }\n runtime.logger.error({ error }, '[Bootstrap] Error in reaction handler:');\n }\n};\n\n/**\n * Handles message deletion events by removing the corresponding memory from the agent's memory store.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {Memory} params.message - The message memory that was deleted.\n * @returns {void}\n */\nconst messageDeletedHandler = async ({\n runtime,\n message,\n}: {\n runtime: IAgentRuntime;\n message: Memory;\n}) => {\n try {\n if (!message.id) {\n runtime.logger.error('[Bootstrap] Cannot delete memory: message ID is missing');\n return;\n }\n\n runtime.logger.info(\n '[Bootstrap] Deleting memory for message',\n message.id,\n 'from room',\n message.roomId\n );\n await runtime.deleteMemory(message.id);\n runtime.logger.debug(\n { messageId: message.id },\n '[Bootstrap] Successfully deleted memory for message'\n );\n } catch (error: unknown) {\n runtime.logger.error({ error }, '[Bootstrap] Error in message deleted handler:');\n }\n};\n\n/**\n * Handles channel cleared events by removing all message memories from the specified room.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {UUID} params.roomId - The room ID to clear message memories from.\n * @param {string} params.channelId - The original channel ID.\n * @param {number} params.memoryCount - Number of memories found.\n * @returns {void}\n */\nconst channelClearedHandler = async ({\n runtime,\n roomId,\n channelId,\n memoryCount,\n}: {\n runtime: IAgentRuntime;\n roomId: UUID;\n channelId: string;\n memoryCount: number;\n}) => {\n try {\n runtime.logger.info(\n `[Bootstrap] Clearing ${memoryCount} message memories from channel ${channelId} -> room ${roomId}`\n );\n\n // Get all message memories for this room\n const memories = await runtime.getMemoriesByRoomIds({\n tableName: 'messages',\n roomIds: [roomId],\n });\n\n // Delete each message memory\n let deletedCount = 0;\n for (const memory of memories) {\n if (memory.id) {\n try {\n await runtime.deleteMemory(memory.id);\n deletedCount++;\n } catch (error) {\n runtime.logger.warn(\n { error, memoryId: memory.id },\n `[Bootstrap] Failed to delete message memory ${memory.id}:`\n );\n }\n }\n }\n\n runtime.logger.info(\n `[Bootstrap] Successfully cleared ${deletedCount}/${memories.length} message memories from channel ${channelId}`\n );\n } catch (error: unknown) {\n runtime.logger.error({ error }, '[Bootstrap] Error in channel cleared handler:');\n }\n};\n\n/**\n * Handles the generation of a post (like a Tweet) and creates a memory for it.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {Memory} params.message - The post message to be processed.\n * @param {HandlerCallback} params.callback - The callback function to execute after processing.\n * @returns {Promise<void>}\n */\nconst postGeneratedHandler = async ({\n runtime,\n callback,\n worldId,\n userId,\n roomId,\n source,\n}: InvokePayload) => {\n runtime.logger.info('[Bootstrap] Generating new post...');\n // Ensure world exists first\n await runtime.ensureWorldExists({\n id: worldId,\n name: `${runtime.character.name}'s Feed`,\n agentId: runtime.agentId,\n serverId: userId,\n });\n\n // Ensure timeline room exists\n await runtime.ensureRoomExists({\n id: roomId,\n name: `${runtime.character.name}'s Feed`,\n source,\n type: ChannelType.FEED,\n channelId: `${userId}-home`,\n serverId: userId,\n worldId: worldId,\n });\n\n const message = {\n id: createUniqueUuid(runtime, `tweet-${Date.now()}`) as UUID,\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n roomId: roomId,\n content: {},\n metadata: {\n entityName: runtime.character.name,\n type: 'message',\n },\n };\n\n // generate thought of which providers to use using messageHandlerTemplate\n\n // Compose state with relevant context for tweet generation\n let state = await runtime.composeState(message, [\n 'PROVIDERS',\n 'CHARACTER',\n 'RECENT_MESSAGES',\n 'ENTITIES',\n ]);\n\n // get twitterUserName\n const entity = await runtime.getEntityById(runtime.agentId);\n if ((entity?.metadata?.twitter as any)?.userName || entity?.metadata?.userName) {\n state.values.twitterUserName =\n (entity?.metadata?.twitter as any)?.userName || entity?.metadata?.userName;\n }\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.messageHandlerTemplate || messageHandlerTemplate,\n });\n\n let responseContent: Content | null = null;\n\n // Retry if missing required fields\n let retries = 0;\n const maxRetries = 3;\n while (retries < maxRetries && (!responseContent?.thought || !responseContent?.actions)) {\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt,\n });\n\n // Parse XML\n const parsedXml = parseKeyValueXml(response);\n if (parsedXml) {\n responseContent = {\n thought: parsedXml.thought || '',\n actions: parsedXml.actions || ['IGNORE'],\n providers: parsedXml.providers || [],\n text: parsedXml.text || '',\n simple: parsedXml.simple || false,\n };\n } else {\n responseContent = null;\n }\n\n retries++;\n if (!responseContent?.thought || !responseContent?.actions) {\n runtime.logger.warn(\n '[Bootstrap] *** Missing required fields, retrying... ***\\n',\n response,\n parsedXml,\n responseContent\n );\n }\n }\n\n // update stats with correct providers\n state = await runtime.composeState(message, responseContent?.providers);\n\n // Generate prompt for tweet content\n const postPrompt = composePromptFromState({\n state,\n template: runtime.character.templates?.postCreationTemplate || postCreationTemplate,\n });\n\n // Use TEXT_LARGE model as we expect structured XML text, not a JSON object\n const xmlResponseText = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: postPrompt,\n });\n\n // Parse the XML response\n const parsedXmlResponse = parseKeyValueXml(xmlResponseText);\n\n if (!parsedXmlResponse) {\n runtime.logger.error(\n '[Bootstrap] Failed to parse XML response for post creation. Raw response:',\n xmlResponseText\n );\n // Handle the error appropriately, maybe retry or return an error state\n return;\n }\n\n /**\n * Cleans up a tweet text by removing quotes and fixing newlines\n */\n function cleanupPostText(text: string): string {\n // Remove quotes\n let cleanedText = text.replace(/^['\"](.*)['\"]$/, '$1');\n // Fix newlines\n cleanedText = cleanedText.replaceAll(/\\\\n/g, '\\n\\n');\n cleanedText = cleanedText.replace(/([^\\n])\\n([^\\n])/g, '$1\\n\\n$2');\n\n return cleanedText;\n }\n\n // Cleanup the tweet text\n const cleanedText = cleanupPostText(parsedXmlResponse.post || '');\n\n // Prepare media if included\n // const mediaData: MediaData[] = [];\n // if (jsonResponse.imagePrompt) {\n // \tconst images = await runtime.useModel(ModelType.IMAGE, {\n // \t\tprompt: jsonResponse.imagePrompt,\n // \t\toutput: \"no-schema\",\n // \t});\n // \ttry {\n // \t\t// Convert image prompt to Media format for fetchMediaData\n // \t\tconst imagePromptMedia: any[] = images\n\n // \t\t// Fetch media using the utility function\n // \t\tconst fetchedMedia = await fetchMediaData(imagePromptMedia);\n // \t\tmediaData.push(...fetchedMedia);\n // \t} catch (error) {\n // \t\truntime.logger.error(\"Error fetching media for tweet:\", error);\n // \t}\n // }\n\n // have we posted it before?\n const RM = state.providerData?.find((pd) => pd.providerName === 'RECENT_MESSAGES');\n if (RM) {\n for (const m of RM.data.recentMessages) {\n if (cleanedText === m.content.text) {\n runtime.logger.info({ cleanedText }, '[Bootstrap] Already recently posted that, retrying');\n postGeneratedHandler({\n runtime,\n callback,\n worldId,\n userId,\n roomId,\n source,\n });\n return; // don't call callbacks\n }\n }\n }\n\n // GPT 3.5/4: /(i\\s+do\\s+not|i'?m\\s+not)\\s+(feel\\s+)?comfortable\\s+generating\\s+that\\s+type\\s+of\\s+content|(inappropriate|explicit|offensive|communicate\\s+respectfully|aim\\s+to\\s+(be\\s+)?helpful)/i\n const oaiRefusalRegex =\n /((i\\s+do\\s+not|i'm\\s+not)\\s+(feel\\s+)?comfortable\\s+generating\\s+that\\s+type\\s+of\\s+content)|(inappropriate|explicit|respectful|offensive|guidelines|aim\\s+to\\s+(be\\s+)?helpful|communicate\\s+respectfully)/i;\n const anthropicRefusalRegex =\n /(i'?m\\s+unable\\s+to\\s+help\\s+with\\s+that\\s+request|due\\s+to\\s+safety\\s+concerns|that\\s+may\\s+violate\\s+(our\\s+)?guidelines|provide\\s+helpful\\s+and\\s+safe\\s+responses|let'?s\\s+try\\s+a\\s+different\\s+direction|goes\\s+against\\s+(our\\s+)?use\\s+case\\s+policies|ensure\\s+safe\\s+and\\s+responsible\\s+use)/i;\n const googleRefusalRegex =\n /(i\\s+can'?t\\s+help\\s+with\\s+that|that\\s+goes\\s+against\\s+(our\\s+)?(policy|policies)|i'?m\\s+still\\s+learning|response\\s+must\\s+follow\\s+(usage|safety)\\s+policies|i'?ve\\s+been\\s+designed\\s+to\\s+avoid\\s+that)/i;\n //const cohereRefusalRegex = /(request\\s+cannot\\s+be\\s+processed|violates\\s+(our\\s+)?content\\s+policy|not\\s+permitted\\s+by\\s+usage\\s+restrictions)/i\n const generalRefusalRegex =\n /(response\\s+was\\s+withheld|content\\s+was\\s+filtered|this\\s+request\\s+cannot\\s+be\\s+completed|violates\\s+our\\s+safety\\s+policy|content\\s+is\\s+not\\s+available)/i;\n\n if (\n oaiRefusalRegex.test(cleanedText) ||\n anthropicRefusalRegex.test(cleanedText) ||\n googleRefusalRegex.test(cleanedText) ||\n generalRefusalRegex.test(cleanedText)\n ) {\n runtime.logger.info({ cleanedText }, '[Bootstrap] Got prompt moderation refusal, retrying');\n postGeneratedHandler({\n runtime,\n callback,\n worldId,\n userId,\n roomId,\n source,\n });\n return; // don't call callbacks\n }\n\n // Create the response memory\n const responseMessages = [\n {\n id: v4() as UUID,\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: {\n text: cleanedText,\n source,\n channelType: ChannelType.FEED,\n thought: parsedXmlResponse.thought || '',\n type: 'post',\n },\n roomId: message.roomId,\n createdAt: Date.now(),\n },\n ];\n\n for (const message of responseMessages) {\n await callback?.(message.content);\n }\n\n // Process the actions and execute the callback\n // await runtime.processActions(message, responseMessages, state, callback);\n\n // // Run any configured evaluators\n // await runtime.evaluate(\n // \tmessage,\n // \tstate,\n // \ttrue, // Post generation is always a \"responding\" scenario\n // \tcallback,\n // \tresponseMessages,\n // );\n};\n\n/**\n * Syncs a single user into an entity\n */\n/**\n * Asynchronously sync a single user with the specified parameters.\n *\n * @param {UUID} entityId - The unique identifier for the entity.\n * @param {IAgentRuntime} runtime - The runtime environment for the agent.\n * @param {any} user - The user object to sync.\n * @param {string} serverId - The unique identifier for the server.\n * @param {string} channelId - The unique identifier for the channel.\n * @param {ChannelType} type - The type of channel.\n * @param {string} source - The source of the user data.\n * @returns {Promise<void>} A promise that resolves once the user is synced.\n */\nconst syncSingleUser = async (\n entityId: UUID,\n runtime: IAgentRuntime,\n serverId: string,\n channelId: string,\n type: ChannelType,\n source: string\n) => {\n try {\n const entity = await runtime.getEntityById(entityId);\n runtime.logger.info(`[Bootstrap] Syncing user: ${entity?.metadata?.username || entityId}`);\n\n // Ensure we're not using WORLD type and that we have a valid channelId\n if (!channelId) {\n runtime.logger.warn(`[Bootstrap] Cannot sync user ${entity?.id} without a valid channelId`);\n return;\n }\n\n const roomId = createUniqueUuid(runtime, channelId);\n const worldId = createUniqueUuid(runtime, serverId);\n\n // Create world with ownership metadata for DM connections (onboarding)\n const worldMetadata =\n type === ChannelType.DM\n ? {\n ownership: {\n ownerId: entityId,\n },\n roles: {\n [entityId]: Role.OWNER,\n },\n settings: {}, // Initialize empty settings for onboarding\n }\n : undefined;\n\n runtime.logger.info(\n `[Bootstrap] syncSingleUser - type: ${type}, isDM: ${type === ChannelType.DM}, worldMetadata: ${JSON.stringify(worldMetadata)}`\n );\n\n await runtime.ensureConnection({\n entityId,\n roomId,\n name: (entity?.metadata?.name || entity?.metadata?.username || `User${entityId}`) as\n | undefined\n | string,\n source,\n channelId,\n serverId,\n type,\n worldId,\n metadata: worldMetadata,\n });\n\n // Verify the world was created with proper metadata\n try {\n const createdWorld = await runtime.getWorld(worldId);\n runtime.logger.info(\n `[Bootstrap] Created world check - ID: ${worldId}, metadata: ${JSON.stringify(createdWorld?.metadata)}`\n );\n } catch (error) {\n runtime.logger.error(`[Bootstrap] Failed to verify created world: ${error}`);\n }\n\n runtime.logger.success(`[Bootstrap] Successfully synced user: ${entity?.id}`);\n } catch (error) {\n runtime.logger.error(\n `[Bootstrap] Error syncing user: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n};\n\n/**\n * Handles standardized server data for both WORLD_JOINED and WORLD_CONNECTED events\n */\nconst handleServerSync = async ({\n runtime,\n world,\n rooms,\n entities,\n source,\n onComplete,\n}: WorldPayload) => {\n runtime.logger.debug(`[Bootstrap] Handling server sync event for server: ${world.name}`);\n try {\n await runtime.ensureConnections(entities, rooms, source, world);\n runtime.logger.debug(`Successfully synced standardized world structure for ${world.name}`);\n onComplete?.();\n } catch (error) {\n runtime.logger.error(\n `Error processing standardized server data: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n};\n\n/**\n * Handles control messages for enabling or disabling UI elements in the frontend\n * @param {Object} params - Parameters for the handler\n * @param {IAgentRuntime} params.runtime - The runtime instance\n * @param {Object} params.message - The control message\n * @param {string} params.source - Source of the message\n */\nconst controlMessageHandler = async ({\n runtime,\n message,\n}: {\n runtime: IAgentRuntime;\n message: {\n type: 'control';\n payload: {\n action: 'enable_input' | 'disable_input';\n target?: string;\n };\n roomId: UUID;\n };\n source: string;\n}) => {\n try {\n runtime.logger.debug(\n `[controlMessageHandler] Processing control message: ${message.payload.action} for room ${message.roomId}`\n );\n\n // Here we would use a WebSocket service to send the control message to the frontend\n // This would typically be handled by a registered service with sendMessage capability\n\n // Get any registered WebSocket service\n const serviceNames = Array.from(runtime.getAllServices().keys()) as string[];\n const websocketServiceName = serviceNames.find(\n (name: string) =>\n name.toLowerCase().includes('websocket') || name.toLowerCase().includes('socket')\n );\n\n if (websocketServiceName) {\n const websocketService = runtime.getService(websocketServiceName);\n if (websocketService && 'sendMessage' in websocketService) {\n // Send the control message through the WebSocket service\n await (websocketService as any).sendMessage({\n type: 'controlMessage',\n payload: {\n action: message.payload.action,\n target: message.payload.target,\n roomId: message.roomId,\n },\n });\n\n runtime.logger.debug(\n `[controlMessageHandler] Control message ${message.payload.action} sent successfully`\n );\n } else {\n runtime.logger.error(\n '[controlMessageHandler] WebSocket service does not have sendMessage method'\n );\n }\n } else {\n runtime.logger.error(\n '[controlMessageHandler] No WebSocket service found to send control message'\n );\n }\n } catch (error) {\n runtime.logger.error(`[controlMessageHandler] Error processing control message: ${error}`);\n }\n};\n\nconst events = {\n [EventType.MESSAGE_RECEIVED]: [\n async (payload: MessagePayload) => {\n if (!payload.callback) {\n payload.runtime.logger.error('No callback provided for message');\n return;\n }\n await messageReceivedHandler({\n runtime: payload.runtime,\n message: payload.message,\n callback: payload.callback,\n onComplete: payload.onComplete,\n });\n },\n ],\n\n [EventType.VOICE_MESSAGE_RECEIVED]: [\n async (payload: MessagePayload) => {\n if (!payload.callback) {\n payload.runtime.logger.error('No callback provided for voice message');\n return;\n }\n await messageReceivedHandler({\n runtime: payload.runtime,\n message: payload.message,\n callback: payload.callback,\n onComplete: payload.onComplete,\n });\n },\n ],\n\n [EventType.REACTION_RECEIVED]: [\n async (payload: MessagePayload) => {\n await reactionReceivedHandler({\n runtime: payload.runtime,\n message: payload.message,\n });\n },\n ],\n\n [EventType.POST_GENERATED]: [\n async (payload: InvokePayload) => {\n await postGeneratedHandler(payload);\n },\n ],\n\n [EventType.MESSAGE_SENT]: [\n async (payload: MessagePayload) => {\n payload.runtime.logger.debug(`[Bootstrap] Message sent: ${payload.message.content.text}`);\n },\n ],\n\n [EventType.MESSAGE_DELETED]: [\n async (payload: MessagePayload) => {\n await messageDeletedHandler({\n runtime: payload.runtime,\n message: payload.message,\n });\n },\n ],\n\n [EventType.CHANNEL_CLEARED]: [\n async (payload: EventPayload & { roomId: UUID; channelId: string; memoryCount: number }) => {\n await channelClearedHandler({\n runtime: payload.runtime,\n roomId: payload.roomId,\n channelId: payload.channelId,\n memoryCount: payload.memoryCount,\n });\n },\n ],\n\n [EventType.WORLD_JOINED]: [\n async (payload: WorldPayload) => {\n await handleServerSync(payload);\n },\n ],\n\n [EventType.WORLD_CONNECTED]: [\n async (payload: WorldPayload) => {\n await handleServerSync(payload);\n },\n ],\n\n [EventType.ENTITY_JOINED]: [\n async (payload: EntityPayload) => {\n payload.runtime.logger.debug(\n `[Bootstrap] ENTITY_JOINED event received for entity ${payload.entityId}`\n );\n\n if (!payload.worldId) {\n payload.runtime.logger.error('[Bootstrap] No worldId provided for entity joined');\n return;\n }\n if (!payload.roomId) {\n payload.runtime.logger.error('[Bootstrap] No roomId provided for entity joined');\n return;\n }\n if (!payload.metadata?.type) {\n payload.runtime.logger.error('[Bootstrap] No type provided for entity joined');\n return;\n }\n\n await syncSingleUser(\n payload.entityId,\n payload.runtime,\n payload.worldId,\n payload.roomId,\n payload.metadata.type,\n payload.source\n );\n },\n ],\n\n [EventType.ENTITY_LEFT]: [\n async (payload: EntityPayload) => {\n try {\n // Update entity to inactive\n const entity = await payload.runtime.getEntityById(payload.entityId);\n if (entity) {\n entity.metadata = {\n ...entity.metadata,\n status: 'INACTIVE',\n leftAt: Date.now(),\n };\n await payload.runtime.updateEntity(entity);\n }\n payload.runtime.logger.info(\n `[Bootstrap] User ${payload.entityId} left world ${payload.worldId}`\n );\n } catch (error: any) {\n payload.runtime.logger.error(\n '[Bootstrap] Error handling user left:',\n error instanceof Error ? error.message : String(error)\n );\n }\n },\n ],\n\n [EventType.ACTION_STARTED]: [\n async (payload: ActionEventPayload) => {\n try {\n // Only notify for client_chat messages\n if (payload.content?.source === 'client_chat') {\n const messageBusService = payload.runtime.getService('message-bus-service') as any;\n if (messageBusService) {\n await messageBusService.notifyActionStart(\n payload.roomId,\n payload.world,\n payload.content,\n payload.messageId\n );\n }\n }\n } catch (error) {\n logger.error(`[Bootstrap] Error sending refetch request: ${error}`);\n }\n },\n async (payload: ActionEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.runtime.agentId,\n roomId: payload.roomId,\n type: 'action_event',\n body: {\n runId: payload.content?.runId,\n actionId: payload.content?.actionId,\n actionName: payload.content?.actions?.[0],\n roomId: payload.roomId,\n messageId: payload.messageId,\n timestamp: Date.now(),\n planStep: payload.content?.planStep,\n source: 'actionHandler',\n },\n });\n logger.debug(\n `[Bootstrap] Logged ACTION_STARTED event for action ${payload.content?.actions?.[0]}`\n );\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log ACTION_STARTED event: ${error}`);\n }\n },\n ],\n\n [EventType.ACTION_COMPLETED]: [\n async (payload: ActionEventPayload) => {\n try {\n // Only notify for client_chat messages\n if (payload.content?.source === 'client_chat') {\n const messageBusService = payload.runtime.getService('message-bus-service') as any;\n if (messageBusService) {\n await messageBusService.notifyActionUpdate(\n payload.roomId,\n payload.world,\n payload.content,\n payload.messageId\n );\n }\n }\n } catch (error) {\n logger.error(`[Bootstrap] Error sending refetch request: ${error}`);\n }\n },\n ],\n\n [EventType.EVALUATOR_STARTED]: [\n async (payload: EvaluatorEventPayload) => {\n logger.debug(\n `[Bootstrap] Evaluator started: ${payload.evaluatorName} (${payload.evaluatorId})`\n );\n },\n ],\n\n [EventType.EVALUATOR_COMPLETED]: [\n async (payload: EvaluatorEventPayload) => {\n const status = payload.error ? `failed: ${payload.error.message}` : 'completed';\n logger.debug(\n `[Bootstrap] Evaluator ${status}: ${payload.evaluatorName} (${payload.evaluatorId})`\n );\n },\n ],\n\n [EventType.RUN_STARTED]: [\n async (payload: RunEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.entityId,\n roomId: payload.roomId,\n type: 'run_event',\n body: {\n runId: payload.runId,\n status: payload.status,\n messageId: payload.messageId,\n roomId: payload.roomId,\n entityId: payload.entityId,\n startTime: payload.startTime,\n source: payload.source || 'unknown',\n },\n });\n logger.debug(`[Bootstrap] Logged RUN_STARTED event for run ${payload.runId}`);\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log RUN_STARTED event: ${error}`);\n }\n },\n ],\n\n [EventType.RUN_ENDED]: [\n async (payload: RunEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.entityId,\n roomId: payload.roomId,\n type: 'run_event',\n body: {\n runId: payload.runId,\n status: payload.status,\n messageId: payload.messageId,\n roomId: payload.roomId,\n entityId: payload.entityId,\n startTime: payload.startTime,\n endTime: payload.endTime,\n duration: payload.duration,\n error: payload.error,\n source: payload.source || 'unknown',\n },\n });\n logger.debug(\n `[Bootstrap] Logged RUN_ENDED event for run ${payload.runId} with status ${payload.status}`\n );\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log RUN_ENDED event: ${error}`);\n }\n },\n ],\n\n [EventType.RUN_TIMEOUT]: [\n async (payload: RunEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.entityId,\n roomId: payload.roomId,\n type: 'run_event',\n body: {\n runId: payload.runId,\n status: payload.status,\n messageId: payload.messageId,\n roomId: payload.roomId,\n entityId: payload.entityId,\n startTime: payload.startTime,\n endTime: payload.endTime,\n duration: payload.duration,\n error: payload.error,\n source: payload.source || 'unknown',\n },\n });\n logger.debug(`[Bootstrap] Logged RUN_TIMEOUT event for run ${payload.runId}`);\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log RUN_TIMEOUT event: ${error}`);\n }\n },\n ],\n\n CONTROL_MESSAGE: [controlMessageHandler],\n};\n\nexport const bootstrapPlugin: Plugin = {\n name: 'bootstrap',\n description: 'Agent bootstrap with basic actions and evaluators',\n actions: [\n actions.replyAction,\n actions.followRoomAction,\n actions.unfollowRoomAction,\n actions.ignoreAction,\n actions.noneAction,\n actions.muteRoomAction,\n actions.unmuteRoomAction,\n actions.sendMessageAction,\n actions.updateEntityAction,\n actions.choiceAction,\n actions.updateRoleAction,\n actions.updateSettingsAction,\n actions.generateImageAction,\n ],\n // this is jank, these events are not valid\n events: events as any as PluginEvents,\n evaluators: [evaluators.reflectionEvaluator],\n providers: [\n providers.evaluatorsProvider,\n providers.anxietyProvider,\n providers.timeProvider,\n providers.entitiesProvider,\n providers.relationshipsProvider,\n providers.choiceProvider,\n providers.factsProvider,\n providers.roleProvider,\n providers.settingsProvider,\n // there is given no reason for this - odi\n //providers.capabilitiesProvider,\n providers.attachmentsProvider,\n providers.providersProvider,\n providers.actionsProvider,\n providers.actionStateProvider,\n providers.characterProvider,\n providers.recentMessagesProvider,\n providers.worldProvider,\n ],\n services: [TaskService, EmbeddingGenerationService],\n};\n\nexport default bootstrapPlugin;\n",
|
|
6
|
+
"import {\n type ActionEventPayload,\n asUUID,\n ChannelType,\n composePromptFromState,\n type Content,\n type ControlMessage,\n ContentType,\n createUniqueUuid,\n type EntityPayload,\n type EvaluatorEventPayload,\n type EventPayload,\n EventType,\n type IAgentRuntime,\n imageDescriptionTemplate,\n type InvokePayload,\n logger,\n type Media,\n type Memory,\n messageHandlerTemplate,\n type MessagePayload,\n ModelType,\n parseKeyValueXml,\n type Plugin,\n PluginEvents,\n postCreationTemplate,\n parseBooleanFromText,\n Role,\n type Room,\n type RunEventPayload,\n shouldRespondTemplate,\n truncateToCompleteSentence,\n type UUID,\n type WorldPayload,\n getLocalServerUrl,\n multiStepDecisionTemplate,\n multiStepSummaryTemplate,\n type State,\n} from '@elizaos/core';\nimport { v4 } from 'uuid';\n\nimport * as actions from './actions/index.ts';\nimport * as evaluators from './evaluators/index.ts';\nimport * as providers from './providers/index.ts';\n\nimport { TaskService } from './services/task.ts';\nimport { EmbeddingGenerationService } from './services/embedding.ts';\n\nexport * from './actions/index.ts';\nexport * from './evaluators/index.ts';\nexport * from './providers/index.ts';\n\n/**\n * Represents media data containing a buffer of data and the media type.\n * @typedef {Object} MediaData\n * @property {Buffer} data - The buffer of data.\n * @property {string} mediaType - The type of media.\n */\ntype MediaData = {\n data: Buffer;\n mediaType: string;\n};\n\n/**\n * Multi-step workflow execution result\n */\ninterface MultiStepActionResult {\n data: { actionName: string };\n success: boolean;\n text?: string;\n error?: string | Error;\n values?: Record<string, any>;\n}\n\n/**\n * Multi-step workflow state\n */\ninterface MultiStepState extends State {\n data: {\n actionResults: MultiStepActionResult[];\n [key: string]: any;\n };\n}\n\nconst latestResponseIds = new Map<string, Map<string, string>>();\n\n/**\n * Escapes special characters in a string to make it JSON-safe.\n */\n/* // Removing JSON specific helpers\nfunction escapeForJson(input: string): string {\n return input\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/\\n/g, '\\\\n')\n .replace(/```/g, '\\\\`\\\\`\\\\`');\n}\n\nfunction sanitizeJson(rawJson: string): string {\n try {\n // Try parsing directly\n JSON.parse(rawJson);\n return rawJson; // Already valid\n } catch {\n // Continue to sanitization\n }\n\n // first, replace all newlines with \\n\n const sanitized = rawJson\n .replace(/\\n/g, '\\\\n')\n\n // then, replace all backticks with \\\\\\`\n .replace(/`/g, '\\\\\\`');\n\n // Regex to find and escape the \"text\" field\n const fixed = sanitized.replace(/\"text\"\\s*:\\s*\"([\\s\\S]*?)\"\\s*,\\s*\"simple\"/, (_match, group) => {\n const escapedText = escapeForJson(group);\n return `\"text\": \"${escapedText}\", \"simple\"`;\n });\n\n // Validate that the result is actually parseable\n try {\n JSON.parse(fixed);\n return fixed;\n } catch (e) {\n throw new Error(`Failed to sanitize JSON: ${e.message}`);\n }\n}\n*/\n\n/**\n * Fetches media data from a list of attachments, supporting both HTTP URLs and local file paths.\n *\n * @param attachments Array of Media objects containing URLs or file paths to fetch media from\n * @returns Promise that resolves with an array of MediaData objects containing the fetched media data and content type\n */\n/**\n * Fetches media data from given attachments.\n * @param {Media[]} attachments - Array of Media objects to fetch data from.\n * @returns {Promise<MediaData[]>} - A Promise that resolves with an array of MediaData objects.\n */\nexport async function fetchMediaData(attachments: Media[]): Promise<MediaData[]> {\n return Promise.all(\n attachments.map(async (attachment: Media) => {\n if (/^(http|https):\\/\\//.test(attachment.url)) {\n // Handle HTTP URLs\n const response = await fetch(attachment.url);\n if (!response.ok) {\n throw new Error(`Failed to fetch file: ${attachment.url}`);\n }\n const mediaBuffer = Buffer.from(await response.arrayBuffer());\n const mediaType = attachment.contentType || 'image/png';\n return { data: mediaBuffer, mediaType };\n }\n // if (fs.existsSync(attachment.url)) {\n // // Handle local file paths\n // const mediaBuffer = await fs.promises.readFile(path.resolve(attachment.url));\n // const mediaType = attachment.contentType || 'image/png';\n // return { data: mediaBuffer, mediaType };\n // }\n throw new Error(`File not found: ${attachment.url}. Make sure the path is correct.`);\n })\n );\n}\n\n/**\n * Processes attachments by generating descriptions for supported media types.\n * Currently supports image description generation.\n *\n * @param {Media[]} attachments - Array of attachments to process\n * @param {IAgentRuntime} runtime - The agent runtime for accessing AI models\n * @returns {Promise<Media[]>} - Returns a new array of processed attachments with added description, title, and text properties\n */\nexport async function processAttachments(\n attachments: Media[],\n runtime: IAgentRuntime\n): Promise<Media[]> {\n if (!attachments || attachments.length === 0) {\n return [];\n }\n runtime.logger.debug(`[Bootstrap] Processing ${attachments.length} attachment(s)`);\n\n const processedAttachments: Media[] = [];\n\n for (const attachment of attachments) {\n try {\n // Start with the original attachment\n const processedAttachment: Media = { ...attachment };\n\n const isRemote = /^(http|https):\\/\\//.test(attachment.url);\n const url = isRemote ? attachment.url : getLocalServerUrl(attachment.url);\n // Only process images that don't already have descriptions\n if (attachment.contentType === ContentType.IMAGE && !attachment.description) {\n runtime.logger.debug(`[Bootstrap] Generating description for image: ${attachment.url}`);\n\n let imageUrl = url;\n\n if (!isRemote) {\n // Only convert local/internal media to base64\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to fetch image: ${res.statusText}`);\n\n const arrayBuffer = await res.arrayBuffer();\n const buffer = Buffer.from(arrayBuffer);\n const contentType = res.headers.get('content-type') || 'application/octet-stream';\n imageUrl = `data:${contentType};base64,${buffer.toString('base64')}`;\n }\n\n try {\n const response = await runtime.useModel(ModelType.IMAGE_DESCRIPTION, {\n prompt: imageDescriptionTemplate,\n imageUrl,\n });\n\n if (typeof response === 'string') {\n // Parse XML response\n const parsedXml = parseKeyValueXml(response);\n\n if (parsedXml && (parsedXml.description || parsedXml.text)) {\n processedAttachment.description = parsedXml.description || '';\n processedAttachment.title = parsedXml.title || 'Image';\n processedAttachment.text = parsedXml.text || parsedXml.description || '';\n\n runtime.logger.debug(\n `[Bootstrap] Generated description: ${processedAttachment.description?.substring(0, 100)}...`\n );\n } else {\n // Fallback: Try simple regex parsing if parseKeyValueXml fails\n const responseStr = response as string;\n const titleMatch = responseStr.match(/<title>([^<]+)<\\/title>/);\n const descMatch = responseStr.match(/<description>([^<]+)<\\/description>/);\n const textMatch = responseStr.match(/<text>([^<]+)<\\/text>/);\n\n if (titleMatch || descMatch || textMatch) {\n processedAttachment.title = titleMatch?.[1] || 'Image';\n processedAttachment.description = descMatch?.[1] || '';\n processedAttachment.text = textMatch?.[1] || descMatch?.[1] || '';\n\n runtime.logger.debug(\n `[Bootstrap] Used fallback XML parsing - description: ${processedAttachment.description?.substring(0, 100)}...`\n );\n } else {\n runtime.logger.warn(\n `[Bootstrap] Failed to parse XML response for image description`\n );\n }\n }\n } else if (response && typeof response === 'object' && 'description' in response) {\n // Handle object responses for backwards compatibility\n processedAttachment.description = response.description;\n processedAttachment.title = response.title || 'Image';\n processedAttachment.text = response.description;\n\n runtime.logger.debug(\n `[Bootstrap] Generated description: ${processedAttachment.description?.substring(0, 100)}...`\n );\n } else {\n runtime.logger.warn(`[Bootstrap] Unexpected response format for image description`);\n }\n } catch (error) {\n runtime.logger.error({ error }, `[Bootstrap] Error generating image description:`);\n // Continue processing without description\n }\n } else if (attachment.contentType === ContentType.DOCUMENT && !attachment.text) {\n const res = await fetch(url);\n if (!res.ok) throw new Error(`Failed to fetch document: ${res.statusText}`);\n\n const contentType = res.headers.get('content-type') || '';\n const isPlainText = contentType.startsWith('text/plain');\n\n if (isPlainText) {\n runtime.logger.debug(`[Bootstrap] Processing plain text document: ${attachment.url}`);\n\n const textContent = await res.text();\n processedAttachment.text = textContent;\n processedAttachment.title = processedAttachment.title || 'Text File';\n\n runtime.logger.debug(\n `[Bootstrap] Extracted text content (first 100 chars): ${processedAttachment.text?.substring(0, 100)}...`\n );\n } else {\n runtime.logger.warn(`[Bootstrap] Skipping non-plain-text document: ${contentType}`);\n }\n }\n\n processedAttachments.push(processedAttachment);\n } catch (error) {\n runtime.logger.error(\n { error, attachmentUrl: attachment.url },\n `[Bootstrap] Failed to process attachment ${attachment.url}:`\n );\n // Add the original attachment if processing fails\n processedAttachments.push(attachment);\n }\n }\n\n return processedAttachments;\n}\n\n/**\n * Determines whether to skip the shouldRespond logic based on room type and message source.\n * Supports both default values and runtime-configurable overrides via env settings.\n */\nexport function shouldBypassShouldRespond(\n runtime: IAgentRuntime,\n room?: Room,\n source?: string\n): boolean {\n if (!room) return false;\n\n function normalizeEnvList(value: unknown): string[] {\n if (!value || typeof value !== 'string') return [];\n\n const cleaned = value.trim().replace(/^\\[|\\]$/g, '');\n return cleaned\n .split(',')\n .map((v) => v.trim())\n .filter(Boolean);\n }\n\n const defaultBypassTypes = [\n ChannelType.DM,\n ChannelType.VOICE_DM,\n ChannelType.SELF,\n ChannelType.API,\n ];\n\n const defaultBypassSources = ['client_chat'];\n\n const bypassTypesSetting = normalizeEnvList(runtime.getSetting('SHOULD_RESPOND_BYPASS_TYPES'));\n const bypassSourcesSetting = normalizeEnvList(\n runtime.getSetting('SHOULD_RESPOND_BYPASS_SOURCES')\n );\n\n const bypassTypes = new Set(\n [...defaultBypassTypes.map((t) => t.toString()), ...bypassTypesSetting].map((s: string) =>\n s.trim().toLowerCase()\n )\n );\n\n const bypassSources = [...defaultBypassSources, ...bypassSourcesSetting].map((s: string) =>\n s.trim().toLowerCase()\n );\n\n const roomType = room.type?.toString().toLowerCase();\n const sourceStr = source?.toLowerCase() || '';\n\n return bypassTypes.has(roomType) || bypassSources.some((pattern) => sourceStr.includes(pattern));\n}\n\n/**\n * Handles incoming messages and generates responses based on the provided runtime and message information.\n *\n * @param {MessagePayload} payload - The message payload containing runtime, message, and callback.\n * @returns {Promise<void>} - A promise that resolves once the message handling and response generation is complete.\n */\nconst messageReceivedHandler = async ({\n runtime,\n message,\n callback,\n onComplete,\n}: MessagePayload): Promise<void> => {\n // Set up timeout monitoring\n const useMultiStep = runtime.getSetting('USE_MULTI_STEP');\n const timeoutDuration = 60 * 60 * 1000; // 1 hour\n let timeoutId: NodeJS.Timeout | undefined = undefined;\n\n try {\n runtime.logger.info(\n `[Bootstrap] Message received from ${message.entityId} in room ${message.roomId}`\n );\n\n // Generate a new response ID\n const responseId = v4();\n // Get or create the agent-specific map\n if (!latestResponseIds.has(runtime.agentId)) {\n latestResponseIds.set(runtime.agentId, new Map<string, string>());\n }\n const agentResponses = latestResponseIds.get(runtime.agentId);\n if (!agentResponses) throw new Error('Agent responses map not found');\n\n // Log when we're updating the response ID\n const previousResponseId = agentResponses.get(message.roomId);\n if (previousResponseId) {\n logger.warn(\n `[Bootstrap] Updating response ID for room ${message.roomId} from ${previousResponseId} to ${responseId} - this may discard in-progress responses`\n );\n }\n\n // Set this as the latest response ID for this agent+room\n agentResponses.set(message.roomId, responseId);\n\n // Use runtime's run tracking for this message processing\n const runId = runtime.startRun();\n const startTime = Date.now();\n\n // Emit run started event\n await runtime.emitEvent(EventType.RUN_STARTED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'started',\n source: 'messageHandler',\n // this shouldn't be a standard\n // but we need to expose content somewhere\n metadata: message.content,\n });\n\n const timeoutPromise = new Promise<never>((_, reject) => {\n timeoutId = setTimeout(async () => {\n await runtime.emitEvent(EventType.RUN_TIMEOUT, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'timeout',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n error: 'Run exceeded 60 minute timeout',\n source: 'messageHandler',\n });\n reject(new Error('Run exceeded 60 minute timeout'));\n }, timeoutDuration);\n });\n\n const processingPromise = (async () => {\n try {\n if (message.entityId === runtime.agentId) {\n runtime.logger.debug(`[Bootstrap] Skipping message from self (${runtime.agentId})`);\n throw new Error('Message is from the agent itself');\n }\n\n runtime.logger.debug(\n `[Bootstrap] Processing message: ${truncateToCompleteSentence(message.content.text || '', 50)}...`\n );\n\n // First, save the incoming message\n runtime.logger.debug('[Bootstrap] Saving message to memory and queueing embeddings');\n\n // Check if memory already exists (it might have been created by MessageBusService)\n let memoryToQueue: Memory;\n\n if (message.id) {\n const existingMemory = await runtime.getMemoryById(message.id);\n if (existingMemory) {\n runtime.logger.debug('[Bootstrap] Memory already exists, skipping creation');\n memoryToQueue = existingMemory;\n } else {\n // Create memory with the existing ID (preserving external IDs)\n const createdMemoryId = await runtime.createMemory(message, 'messages');\n // Use the created memory with the actual ID returned by the database\n memoryToQueue = { ...message, id: createdMemoryId };\n }\n // Queue with high priority for messages with pre-existing IDs\n await runtime.queueEmbeddingGeneration(memoryToQueue, 'high');\n } else {\n // No ID, create new memory and queue embedding\n const memoryId = await runtime.createMemory(message, 'messages');\n // Set the ID on the message for downstream processing\n message.id = memoryId;\n // Create a memory object with the new ID for queuing\n memoryToQueue = { ...message, id: memoryId };\n await runtime.queueEmbeddingGeneration(memoryToQueue, 'normal');\n }\n\n const agentUserState = await runtime.getParticipantUserState(\n message.roomId,\n runtime.agentId\n );\n\n // default LLM to off\n const defLllmOff = parseBooleanFromText(runtime.getSetting('BOOTSTRAP_DEFLLMOFF'));\n if (defLllmOff && agentUserState === null) {\n runtime.logger.debug('bootstrap - LLM is off by default');\n // allow some other subsystem to handle this event\n // maybe emit an event\n\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'off',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return;\n }\n\n if (\n agentUserState === 'MUTED' &&\n !message.content.text?.toLowerCase().includes(runtime.character.name.toLowerCase())\n ) {\n runtime.logger.debug(`[Bootstrap] Ignoring muted room ${message.roomId}`);\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'muted',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return;\n }\n\n let state = await runtime.composeState(\n message,\n ['ANXIETY', 'SHOULD_RESPOND', 'ENTITIES', 'CHARACTER', 'RECENT_MESSAGES', 'ACTIONS'],\n true\n );\n\n // Skip shouldRespond check for DM and VOICE_DM channels\n const room = await runtime.getRoom(message.roomId);\n const shouldSkipShouldRespond = shouldBypassShouldRespond(\n runtime,\n room ?? undefined,\n message.content.source\n );\n\n if (message.content.attachments && message.content.attachments.length > 0) {\n message.content.attachments = await processAttachments(\n message.content.attachments,\n runtime\n );\n if (message.id) {\n await runtime.updateMemory({ id: message.id, content: message.content });\n }\n }\n\n let shouldRespond = true;\n\n // Handle shouldRespond\n if (!shouldSkipShouldRespond) {\n const shouldRespondPrompt = composePromptFromState({\n state,\n template: runtime.character.templates?.shouldRespondTemplate || shouldRespondTemplate,\n });\n\n runtime.logger.debug(\n `[Bootstrap] Evaluating response for ${runtime.character.name}\\nPrompt: ${shouldRespondPrompt}`\n );\n\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: shouldRespondPrompt,\n });\n\n runtime.logger.debug(\n `[Bootstrap] Response evaluation for ${runtime.character.name}:\\n${response}`\n );\n runtime.logger.debug(`[Bootstrap] Response type: ${typeof response}`);\n\n // Try to preprocess response by removing code blocks markers if present\n // let processedResponse = response.replace('```json', '').replaceAll('```', '').trim(); // No longer needed for XML\n\n const responseObject = parseKeyValueXml(response);\n runtime.logger.debug({ responseObject }, '[Bootstrap] Parsed response:');\n\n // If an action is provided, the agent intends to respond in some way\n // Only exclude explicit non-response actions\n const nonResponseActions = ['IGNORE', 'NONE'];\n shouldRespond =\n responseObject?.action &&\n !nonResponseActions.includes(responseObject.action.toUpperCase());\n } else {\n runtime.logger.debug(\n `[Bootstrap] Skipping shouldRespond check for ${runtime.character.name} because ${room?.type} ${room?.source}`\n );\n shouldRespond = true;\n }\n\n // I don't think we need these right now\n //runtime.logger.debug('shouldRespond is', shouldRespond);\n //runtime.logger.debug('shouldSkipShouldRespond', shouldSkipShouldRespond);\n\n let responseContent: Content | null = null;\n let responseMessages: Memory[] = [];\n\n if (shouldRespond) {\n const result = useMultiStep\n ? await runMultiStepCore({ runtime, message, state, callback })\n : await runSingleShotCore({ runtime, message, state });\n\n responseContent = result.responseContent;\n responseMessages = result.responseMessages;\n state = result.state;\n\n // Race check before we send anything\n const currentResponseId = agentResponses.get(message.roomId);\n if (currentResponseId !== responseId) {\n runtime.logger.info(\n `Response discarded - newer message being processed for agent: ${runtime.agentId}, room: ${message.roomId}`\n );\n return;\n }\n\n if (responseContent && message.id) {\n responseContent.inReplyTo = createUniqueUuid(runtime, message.id);\n }\n\n if (responseContent?.providers?.length && responseContent.providers.length > 0) {\n state = await runtime.composeState(message, responseContent.providers || []);\n }\n\n if (responseContent) {\n const mode = result.mode ?? ('actions' as StrategyMode);\n\n if (mode === 'simple') {\n // Log provider usage for simple responses\n if (responseContent.providers && responseContent.providers.length > 0) {\n runtime.logger.debug(\n { providers: responseContent.providers },\n '[Bootstrap] Simple response used providers'\n );\n }\n // without actions there can't be more than one message\n if (callback) {\n await callback(responseContent);\n }\n } else if (mode === 'actions') {\n await runtime.processActions(message, responseMessages, state, async (content) => {\n runtime.logger.debug({ content }, 'action callback');\n responseContent!.actionCallbacks = content;\n if (callback) {\n return callback(content);\n }\n return [];\n });\n }\n }\n } else {\n // Handle the case where the agent decided not to respond\n runtime.logger.debug(\n '[Bootstrap] Agent decided not to respond (shouldRespond is false).'\n );\n\n // Check if we still have the latest response ID\n const currentResponseId = agentResponses.get(message.roomId);\n // helpful for swarms\n const keepResp = parseBooleanFromText(runtime.getSetting('BOOTSTRAP_KEEP_RESP'));\n if (currentResponseId !== responseId && !keepResp) {\n runtime.logger.info(\n `Ignore response discarded - newer message being processed for agent: ${runtime.agentId}, room: ${message.roomId}`\n );\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'replaced',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return; // Stop processing if a newer message took over\n }\n\n if (!message.id) {\n runtime.logger.error(\n '[Bootstrap] Message ID is missing, cannot create ignore response.'\n );\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'noMessageId',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n });\n return;\n }\n\n // Construct a minimal content object indicating ignore, include a generic thought\n const ignoreContent: Content = {\n thought: 'Agent decided not to respond to this message.',\n actions: ['IGNORE'],\n simple: true, // Treat it as simple for callback purposes\n inReplyTo: createUniqueUuid(runtime, message.id), // Reference original message\n };\n\n // Call the callback directly with the ignore content\n if (callback) {\n await callback(ignoreContent);\n }\n\n // Also save this ignore action/thought to memory\n const ignoreMemory: Memory = {\n id: asUUID(v4()),\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: ignoreContent,\n roomId: message.roomId,\n createdAt: Date.now(),\n };\n await runtime.createMemory(ignoreMemory, 'messages');\n runtime.logger.debug(\n '[Bootstrap] Saved ignore response to memory',\n `memoryId: ${ignoreMemory.id}`\n );\n\n // Optionally, evaluate the decision to ignore (if relevant evaluators exist)\n // await runtime.evaluate(message, state, shouldRespond, callback, []);\n }\n\n // Clean up the response ID since we handled it\n agentResponses.delete(message.roomId);\n if (agentResponses.size === 0) {\n latestResponseIds.delete(runtime.agentId);\n }\n\n await runtime.evaluate(\n message,\n state,\n shouldRespond,\n async (content) => {\n runtime.logger.debug({ content }, 'evaluate callback');\n if (responseContent) {\n responseContent.evalCallbacks = content;\n }\n if (callback) {\n return callback(content);\n }\n return [];\n },\n responseMessages\n );\n\n // ok who are they\n let entityName = 'noname';\n if (message.metadata && 'entityName' in message.metadata) {\n entityName = (message.metadata as any).entityName;\n }\n\n const isDM = message.content?.channelType === ChannelType.DM;\n let roomName = entityName;\n if (!isDM) {\n const roomDatas = await runtime.getRoomsByIds([message.roomId]);\n if (roomDatas?.length) {\n const roomData = roomDatas[0];\n if (roomData.name) {\n // server/guild name?\n roomName = roomData.name;\n }\n // how do I get worldName\n if (roomData.worldId) {\n const worldData = await runtime.getWorld(roomData.worldId);\n if (worldData) {\n roomName = worldData.name + '-' + roomName;\n }\n }\n }\n }\n\n const date = new Date();\n\n // get available actions\n const availableActions = state.data?.providers?.ACTIONS?.data?.actionsData?.map(\n (a) => a.name\n ) || [-1];\n\n // generate data of interest\n const logData = {\n at: date.toString(),\n timestamp: parseInt('' + date.getTime() / 1000),\n messageId: message.id, // can extract roomId or whatever\n userEntityId: message.entityId,\n input: message.content.text,\n thought: responseContent?.thought,\n simple: responseContent?.simple,\n availableActions,\n actions: responseContent?.actions,\n providers: responseContent?.providers,\n irt: responseContent?.inReplyTo,\n output: responseContent?.text,\n // to strip out\n entityName,\n source: message.content.source,\n channelType: message.content.channelType,\n roomName,\n };\n\n // Emit run ended event on successful completion\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'completed',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n source: 'messageHandler',\n entityName,\n responseContent,\n metadata: logData,\n });\n } catch (error: any) {\n console.error('error is', error);\n // Emit run ended event with error\n await runtime.emitEvent(EventType.RUN_ENDED, {\n runtime,\n runId,\n messageId: message.id,\n roomId: message.roomId,\n entityId: message.entityId,\n startTime,\n status: 'error',\n endTime: Date.now(),\n duration: Date.now() - startTime,\n error: error.message,\n source: 'messageHandler',\n });\n }\n })();\n\n await Promise.race([processingPromise, timeoutPromise]);\n } finally {\n clearTimeout(timeoutId);\n onComplete?.();\n }\n};\n\ntype StrategyMode = 'simple' | 'actions' | 'none';\ntype StrategyResult = {\n responseContent: Content | null;\n responseMessages: Memory[];\n state: any;\n mode: StrategyMode;\n};\n\nasync function runSingleShotCore({ runtime, message, state }): Promise<StrategyResult> {\n state = await runtime.composeState(message, ['ACTIONS']);\n\n if (!state.values?.actionNames) {\n runtime.logger.warn('actionNames data missing from state, even though it was requested');\n }\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.messageHandlerTemplate || messageHandlerTemplate,\n });\n\n let responseContent: Content | null = null;\n\n // Retry if missing required fields\n let retries = 0;\n const maxRetries = 3;\n\n while (retries < maxRetries && (!responseContent?.thought || !responseContent?.actions)) {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, { prompt });\n\n runtime.logger.debug({ response }, '[Bootstrap] *** Raw LLM Response ***');\n\n // Attempt to parse the XML response\n const parsedXml = parseKeyValueXml(response);\n runtime.logger.debug({ parsedXml }, '[Bootstrap] *** Parsed XML Content ***');\n\n // Map parsed XML to Content type, handling potential missing fields\n if (parsedXml) {\n responseContent = {\n ...parsedXml,\n thought: parsedXml.thought || '',\n actions: parsedXml.actions || ['IGNORE'],\n providers: parsedXml.providers || [],\n text: parsedXml.text || '',\n simple: parsedXml.simple || false,\n };\n } else {\n responseContent = null;\n }\n\n retries++;\n if (!responseContent?.thought || !responseContent?.actions) {\n runtime.logger.warn(\n { response, parsedXml, responseContent },\n '[Bootstrap] *** Missing required fields (thought or actions), retrying... ***'\n );\n }\n }\n\n if (!responseContent) {\n return { responseContent: null, responseMessages: [], state, mode: 'none' };\n }\n\n // --- LLM IGNORE/REPLY ambiguity handling ---\n // Sometimes the LLM outputs actions like [\"REPLY\", \"IGNORE\"], which breaks isSimple detection\n // and triggers unnecessary large LLM calls. We clarify intent here:\n // - If IGNORE is present with other actions:\n // - If text is empty, we assume the LLM intended to IGNORE and drop all other actions.\n // - If text is present, we assume the LLM intended to REPLY and remove IGNORE from actions.\n // This ensures consistent, clear behavior and preserves reply speed optimizations.\n if (responseContent.actions && responseContent.actions.length > 1) {\n // filter out all NONE actions, there's nothing to be done with them\n // oh but there is a none action in bootstrap\n //responseContent.actions = responseContent.actions.filter(a => a !== 'NONE')\n\n // Helper function to safely check if an action is IGNORE\n const isIgnore = (a: unknown) => typeof a === 'string' && a.toUpperCase() === 'IGNORE';\n\n // Check if any action is IGNORE\n const hasIgnore = responseContent.actions.some(isIgnore);\n\n if (hasIgnore) {\n if (!responseContent.text || responseContent.text.trim() === '') {\n // No text, truly meant to IGNORE\n responseContent.actions = ['IGNORE'];\n } else {\n // Text present, LLM intended to reply, remove IGNORE\n const filtered = responseContent.actions.filter((a) => !isIgnore(a));\n // Ensure we don't end up with an empty actions array when text is present\n // If all actions were IGNORE, default to REPLY\n responseContent.actions = filtered.length ? filtered : ['REPLY'];\n }\n }\n }\n\n // Automatically determine if response is simple based on providers and actions\n // Simple = REPLY action with no providers used\n const isSimple =\n responseContent.actions?.length === 1 &&\n typeof responseContent.actions[0] === 'string' &&\n responseContent.actions[0].toUpperCase() === 'REPLY' &&\n (!responseContent.providers || responseContent.providers.length === 0);\n\n responseContent.simple = isSimple;\n\n const responseMessages: Memory[] = [\n {\n id: asUUID(v4()),\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: responseContent,\n roomId: message.roomId,\n createdAt: Date.now(),\n },\n ];\n\n return {\n responseContent,\n responseMessages,\n state,\n mode: isSimple && responseContent.text ? 'simple' : 'actions',\n };\n}\n\nasync function runMultiStepCore({ runtime, message, state, callback }): Promise<StrategyResult> {\n const traceActionResult: MultiStepActionResult[] = [];\n let accumulatedState: MultiStepState = state;\n const maxIterations = parseInt(runtime.getSetting('MAX_MULTISTEP_ITERATIONS') || '6');\n let iterationCount = 0;\n\n while (iterationCount < maxIterations) {\n iterationCount++;\n runtime.logger.debug(`[MultiStep] Starting iteration ${iterationCount}/${maxIterations}`);\n\n accumulatedState = await runtime.composeState(message, ['RECENT_MESSAGES', 'ACTION_STATE']);\n accumulatedState.data.actionResults = traceActionResult;\n\n const prompt = composePromptFromState({\n state: accumulatedState,\n template: runtime.character.templates?.multiStepDecisionTemplate || multiStepDecisionTemplate,\n });\n\n const stepResultRaw = await runtime.useModel(ModelType.TEXT_LARGE, { prompt });\n const parsedStep = parseKeyValueXml(stepResultRaw);\n\n if (!parsedStep) {\n runtime.logger.warn(`[MultiStep] Failed to parse step result at iteration ${iterationCount}`);\n traceActionResult.push({\n data: { actionName: 'parse_error' },\n success: false,\n error: 'Failed to parse step result',\n });\n break;\n }\n\n const { thought, providers = [], action, isFinish } = parsedStep;\n\n // Check for completion condition\n if (isFinish === 'true' || isFinish === true) {\n runtime.logger.info(`[MultiStep] Task marked as complete at iteration ${iterationCount}`);\n if (callback) {\n await callback({\n text: '',\n thought: thought ?? '',\n });\n }\n break;\n }\n\n // Validate that we have something to do in this step\n if ((!providers || providers.length === 0) && !action) {\n runtime.logger.warn(\n `[MultiStep] No providers or action specified at iteration ${iterationCount}, forcing completion`\n );\n break;\n }\n\n try {\n for (const providerName of providers) {\n const provider = runtime.providers.find((p: any) => p.name === providerName);\n if (!provider) {\n runtime.logger.warn(`[MultiStep] Provider not found: ${providerName}`);\n traceActionResult.push({\n data: { actionName: providerName },\n success: false,\n error: `Provider not found: ${providerName}`,\n });\n continue;\n }\n\n const providerResult = await provider.get(runtime, message, state);\n if (!providerResult) {\n runtime.logger.warn(`[MultiStep] Provider returned no result: ${providerName}`);\n traceActionResult.push({\n data: { actionName: providerName },\n success: false,\n error: `Provider returned no result`,\n });\n continue;\n }\n\n const success = !!providerResult.text;\n\n traceActionResult.push({\n data: { actionName: providerName },\n success,\n text: success ? providerResult.text : undefined,\n error: success ? undefined : providerResult?.error,\n });\n if (callback) {\n await callback({\n text: `🔎 Provider executed: ${providerName}`,\n actions: [providerName],\n thought: thought ?? '',\n });\n }\n }\n\n if (action) {\n const actionContent = {\n text: `🔎 Executing action: ${action}`,\n actions: [action],\n thought: thought ?? '',\n };\n await runtime.processActions(\n message,\n [\n {\n id: v4() as UUID,\n entityId: runtime.agentId,\n roomId: message.roomId,\n createdAt: Date.now(),\n content: actionContent,\n },\n ],\n state,\n async () => {\n return [];\n }\n );\n\n const cachedState = runtime.stateCache.get(`${message.id}_action_results`);\n const actionResults = cachedState?.values?.actionResults || [];\n const result = actionResults.length > 0 ? actionResults[0] : null;\n const success = result?.success ?? false;\n\n traceActionResult.push({\n data: { actionName: action },\n success,\n text: result?.text,\n values: result?.values,\n error: success ? undefined : result?.text,\n });\n }\n } catch (err) {\n runtime.logger.error({ err }, '[MultiStep] Error executing step');\n traceActionResult.push({\n data: { actionName: action || 'unknown' },\n success: false,\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n\n if (iterationCount >= maxIterations) {\n runtime.logger.warn(\n `[MultiStep] Reached maximum iterations (${maxIterations}), forcing completion`\n );\n }\n\n accumulatedState = await runtime.composeState(message, ['RECENT_MESSAGES', 'ACTION_STATE']);\n const summaryPrompt = composePromptFromState({\n state: accumulatedState,\n template: runtime.character.templates?.multiStepSummaryTemplate || multiStepSummaryTemplate,\n });\n\n const finalOutput = await runtime.useModel(ModelType.TEXT_LARGE, { prompt: summaryPrompt });\n const summary = parseKeyValueXml(finalOutput);\n\n let responseContent: Content | null = null;\n if (summary?.text) {\n responseContent = {\n actions: ['MULTI_STEP_SUMMARY'],\n text: summary.text,\n thought: summary.thought || 'Final user-facing message after task completion.',\n simple: true,\n };\n }\n\n const responseMessages: Memory[] = responseContent\n ? [\n {\n id: asUUID(v4()),\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: responseContent,\n roomId: message.roomId,\n createdAt: Date.now(),\n },\n ]\n : [];\n\n return {\n responseContent,\n responseMessages,\n state: accumulatedState,\n mode: responseContent ? 'simple' : 'none',\n };\n}\n\n/**\n * Handles the receipt of a reaction message and creates a memory in the designated memory manager.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {Memory} params.message - The reaction message to be stored in memory.\n * @returns {void}\n */\nconst reactionReceivedHandler = async ({\n runtime,\n message,\n}: {\n runtime: IAgentRuntime;\n message: Memory;\n}) => {\n try {\n await runtime.createMemory(message, 'messages');\n } catch (error: any) {\n if (error.code === '23505') {\n runtime.logger.warn('[Bootstrap] Duplicate reaction memory, skipping');\n return;\n }\n runtime.logger.error({ error }, '[Bootstrap] Error in reaction handler:');\n }\n};\n\n/**\n * Handles message deletion events by removing the corresponding memory from the agent's memory store.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {Memory} params.message - The message memory that was deleted.\n * @returns {void}\n */\nconst messageDeletedHandler = async ({\n runtime,\n message,\n}: {\n runtime: IAgentRuntime;\n message: Memory;\n}) => {\n try {\n if (!message.id) {\n runtime.logger.error('[Bootstrap] Cannot delete memory: message ID is missing');\n return;\n }\n\n runtime.logger.info(\n '[Bootstrap] Deleting memory for message',\n message.id,\n 'from room',\n message.roomId\n );\n await runtime.deleteMemory(message.id);\n runtime.logger.debug(\n { messageId: message.id },\n '[Bootstrap] Successfully deleted memory for message'\n );\n } catch (error: unknown) {\n runtime.logger.error({ error }, '[Bootstrap] Error in message deleted handler:');\n }\n};\n\n/**\n * Handles channel cleared events by removing all message memories from the specified room.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {UUID} params.roomId - The room ID to clear message memories from.\n * @param {string} params.channelId - The original channel ID.\n * @param {number} params.memoryCount - Number of memories found.\n * @returns {void}\n */\nconst channelClearedHandler = async ({\n runtime,\n roomId,\n channelId,\n memoryCount,\n}: {\n runtime: IAgentRuntime;\n roomId: UUID;\n channelId: string;\n memoryCount: number;\n}) => {\n try {\n runtime.logger.info(\n `[Bootstrap] Clearing ${memoryCount} message memories from channel ${channelId} -> room ${roomId}`\n );\n\n // Get all message memories for this room\n const memories = await runtime.getMemoriesByRoomIds({\n tableName: 'messages',\n roomIds: [roomId],\n });\n\n // Delete each message memory\n let deletedCount = 0;\n for (const memory of memories) {\n if (memory.id) {\n try {\n await runtime.deleteMemory(memory.id);\n deletedCount++;\n } catch (error) {\n runtime.logger.warn(\n { error, memoryId: memory.id },\n `[Bootstrap] Failed to delete message memory ${memory.id}:`\n );\n }\n }\n }\n\n runtime.logger.info(\n `[Bootstrap] Successfully cleared ${deletedCount}/${memories.length} message memories from channel ${channelId}`\n );\n } catch (error: unknown) {\n runtime.logger.error({ error }, '[Bootstrap] Error in channel cleared handler:');\n }\n};\n\n/**\n * Handles the generation of a post (like a Tweet) and creates a memory for it.\n *\n * @param {Object} params - The parameters for the function.\n * @param {IAgentRuntime} params.runtime - The agent runtime object.\n * @param {Memory} params.message - The post message to be processed.\n * @param {HandlerCallback} params.callback - The callback function to execute after processing.\n * @returns {Promise<void>}\n */\nconst postGeneratedHandler = async ({\n runtime,\n callback,\n worldId,\n userId,\n roomId,\n source,\n}: InvokePayload) => {\n runtime.logger.info('[Bootstrap] Generating new post...');\n // Ensure world exists first\n await runtime.ensureWorldExists({\n id: worldId,\n name: `${runtime.character.name}'s Feed`,\n agentId: runtime.agentId,\n serverId: userId,\n });\n\n // Ensure timeline room exists\n await runtime.ensureRoomExists({\n id: roomId,\n name: `${runtime.character.name}'s Feed`,\n source,\n type: ChannelType.FEED,\n channelId: `${userId}-home`,\n serverId: userId,\n worldId: worldId,\n });\n\n const message = {\n id: createUniqueUuid(runtime, `tweet-${Date.now()}`) as UUID,\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n roomId: roomId,\n content: {},\n metadata: {\n entityName: runtime.character.name,\n type: 'message',\n },\n };\n\n // generate thought of which providers to use using messageHandlerTemplate\n\n // Compose state with relevant context for tweet generation\n let state = await runtime.composeState(message, [\n 'PROVIDERS',\n 'CHARACTER',\n 'RECENT_MESSAGES',\n 'ENTITIES',\n ]);\n\n // get twitterUserName\n const entity = await runtime.getEntityById(runtime.agentId);\n if ((entity?.metadata?.twitter as any)?.userName || entity?.metadata?.userName) {\n state.values.twitterUserName =\n (entity?.metadata?.twitter as any)?.userName || entity?.metadata?.userName;\n }\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.messageHandlerTemplate || messageHandlerTemplate,\n });\n\n let responseContent: Content | null = null;\n\n // Retry if missing required fields\n let retries = 0;\n const maxRetries = 3;\n while (retries < maxRetries && (!responseContent?.thought || !responseContent?.actions)) {\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt,\n });\n\n // Parse XML\n const parsedXml = parseKeyValueXml(response);\n if (parsedXml) {\n responseContent = {\n thought: parsedXml.thought || '',\n actions: parsedXml.actions || ['IGNORE'],\n providers: parsedXml.providers || [],\n text: parsedXml.text || '',\n simple: parsedXml.simple || false,\n };\n } else {\n responseContent = null;\n }\n\n retries++;\n if (!responseContent?.thought || !responseContent?.actions) {\n runtime.logger.warn(\n '[Bootstrap] *** Missing required fields, retrying... ***\\n',\n response,\n parsedXml,\n responseContent\n );\n }\n }\n\n // update stats with correct providers\n state = await runtime.composeState(message, responseContent?.providers);\n\n // Generate prompt for tweet content\n const postPrompt = composePromptFromState({\n state,\n template: runtime.character.templates?.postCreationTemplate || postCreationTemplate,\n });\n\n // Use TEXT_LARGE model as we expect structured XML text, not a JSON object\n const xmlResponseText = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt: postPrompt,\n });\n\n // Parse the XML response\n const parsedXmlResponse = parseKeyValueXml(xmlResponseText);\n\n if (!parsedXmlResponse) {\n runtime.logger.error(\n '[Bootstrap] Failed to parse XML response for post creation. Raw response:',\n xmlResponseText\n );\n // Handle the error appropriately, maybe retry or return an error state\n return;\n }\n\n /**\n * Cleans up a tweet text by removing quotes and fixing newlines\n */\n function cleanupPostText(text: string): string {\n // Remove quotes\n let cleanedText = text.replace(/^['\"](.*)['\"]$/, '$1');\n // Fix newlines\n cleanedText = cleanedText.replaceAll(/\\\\n/g, '\\n\\n');\n cleanedText = cleanedText.replace(/([^\\n])\\n([^\\n])/g, '$1\\n\\n$2');\n\n return cleanedText;\n }\n\n // Cleanup the tweet text\n const cleanedText = cleanupPostText(parsedXmlResponse.post || '');\n\n // Prepare media if included\n // const mediaData: MediaData[] = [];\n // if (jsonResponse.imagePrompt) {\n // \tconst images = await runtime.useModel(ModelType.IMAGE, {\n // \t\tprompt: jsonResponse.imagePrompt,\n // \t\toutput: \"no-schema\",\n // \t});\n // \ttry {\n // \t\t// Convert image prompt to Media format for fetchMediaData\n // \t\tconst imagePromptMedia: any[] = images\n\n // \t\t// Fetch media using the utility function\n // \t\tconst fetchedMedia = await fetchMediaData(imagePromptMedia);\n // \t\tmediaData.push(...fetchedMedia);\n // \t} catch (error) {\n // \t\truntime.logger.error(\"Error fetching media for tweet:\", error);\n // \t}\n // }\n\n // have we posted it before?\n const RM = state.providerData?.find((pd) => pd.providerName === 'RECENT_MESSAGES');\n if (RM) {\n for (const m of RM.data.recentMessages) {\n if (cleanedText === m.content.text) {\n runtime.logger.info({ cleanedText }, '[Bootstrap] Already recently posted that, retrying');\n postGeneratedHandler({\n runtime,\n callback,\n worldId,\n userId,\n roomId,\n source,\n });\n return; // don't call callbacks\n }\n }\n }\n\n // GPT 3.5/4: /(i\\s+do\\s+not|i'?m\\s+not)\\s+(feel\\s+)?comfortable\\s+generating\\s+that\\s+type\\s+of\\s+content|(inappropriate|explicit|offensive|communicate\\s+respectfully|aim\\s+to\\s+(be\\s+)?helpful)/i\n const oaiRefusalRegex =\n /((i\\s+do\\s+not|i'm\\s+not)\\s+(feel\\s+)?comfortable\\s+generating\\s+that\\s+type\\s+of\\s+content)|(inappropriate|explicit|respectful|offensive|guidelines|aim\\s+to\\s+(be\\s+)?helpful|communicate\\s+respectfully)/i;\n const anthropicRefusalRegex =\n /(i'?m\\s+unable\\s+to\\s+help\\s+with\\s+that\\s+request|due\\s+to\\s+safety\\s+concerns|that\\s+may\\s+violate\\s+(our\\s+)?guidelines|provide\\s+helpful\\s+and\\s+safe\\s+responses|let'?s\\s+try\\s+a\\s+different\\s+direction|goes\\s+against\\s+(our\\s+)?use\\s+case\\s+policies|ensure\\s+safe\\s+and\\s+responsible\\s+use)/i;\n const googleRefusalRegex =\n /(i\\s+can'?t\\s+help\\s+with\\s+that|that\\s+goes\\s+against\\s+(our\\s+)?(policy|policies)|i'?m\\s+still\\s+learning|response\\s+must\\s+follow\\s+(usage|safety)\\s+policies|i'?ve\\s+been\\s+designed\\s+to\\s+avoid\\s+that)/i;\n //const cohereRefusalRegex = /(request\\s+cannot\\s+be\\s+processed|violates\\s+(our\\s+)?content\\s+policy|not\\s+permitted\\s+by\\s+usage\\s+restrictions)/i\n const generalRefusalRegex =\n /(response\\s+was\\s+withheld|content\\s+was\\s+filtered|this\\s+request\\s+cannot\\s+be\\s+completed|violates\\s+our\\s+safety\\s+policy|content\\s+is\\s+not\\s+available)/i;\n\n if (\n oaiRefusalRegex.test(cleanedText) ||\n anthropicRefusalRegex.test(cleanedText) ||\n googleRefusalRegex.test(cleanedText) ||\n generalRefusalRegex.test(cleanedText)\n ) {\n runtime.logger.info({ cleanedText }, '[Bootstrap] Got prompt moderation refusal, retrying');\n postGeneratedHandler({\n runtime,\n callback,\n worldId,\n userId,\n roomId,\n source,\n });\n return; // don't call callbacks\n }\n\n // Create the response memory\n const responseMessages = [\n {\n id: v4() as UUID,\n entityId: runtime.agentId,\n agentId: runtime.agentId,\n content: {\n text: cleanedText,\n source,\n channelType: ChannelType.FEED,\n thought: parsedXmlResponse.thought || '',\n type: 'post',\n },\n roomId: message.roomId,\n createdAt: Date.now(),\n },\n ];\n\n for (const message of responseMessages) {\n await callback?.(message.content);\n }\n\n // Process the actions and execute the callback\n // await runtime.processActions(message, responseMessages, state, callback);\n\n // // Run any configured evaluators\n // await runtime.evaluate(\n // \tmessage,\n // \tstate,\n // \ttrue, // Post generation is always a \"responding\" scenario\n // \tcallback,\n // \tresponseMessages,\n // );\n};\n\n/**\n * Syncs a single user into an entity\n */\n/**\n * Asynchronously sync a single user with the specified parameters.\n *\n * @param {UUID} entityId - The unique identifier for the entity.\n * @param {IAgentRuntime} runtime - The runtime environment for the agent.\n * @param {any} user - The user object to sync.\n * @param {string} serverId - The unique identifier for the server.\n * @param {string} channelId - The unique identifier for the channel.\n * @param {ChannelType} type - The type of channel.\n * @param {string} source - The source of the user data.\n * @returns {Promise<void>} A promise that resolves once the user is synced.\n */\nconst syncSingleUser = async (\n entityId: UUID,\n runtime: IAgentRuntime,\n serverId: string,\n channelId: string,\n type: ChannelType,\n source: string\n) => {\n try {\n const entity = await runtime.getEntityById(entityId);\n runtime.logger.info(`[Bootstrap] Syncing user: ${entity?.metadata?.username || entityId}`);\n\n // Ensure we're not using WORLD type and that we have a valid channelId\n if (!channelId) {\n runtime.logger.warn(`[Bootstrap] Cannot sync user ${entity?.id} without a valid channelId`);\n return;\n }\n\n const roomId = createUniqueUuid(runtime, channelId);\n const worldId = createUniqueUuid(runtime, serverId);\n\n // Create world with ownership metadata for DM connections (onboarding)\n const worldMetadata =\n type === ChannelType.DM\n ? {\n ownership: {\n ownerId: entityId,\n },\n roles: {\n [entityId]: Role.OWNER,\n },\n settings: {}, // Initialize empty settings for onboarding\n }\n : undefined;\n\n runtime.logger.info(\n `[Bootstrap] syncSingleUser - type: ${type}, isDM: ${type === ChannelType.DM}, worldMetadata: ${JSON.stringify(worldMetadata)}`\n );\n\n await runtime.ensureConnection({\n entityId,\n roomId,\n name: (entity?.metadata?.name || entity?.metadata?.username || `User${entityId}`) as\n | undefined\n | string,\n source,\n channelId,\n serverId,\n type,\n worldId,\n metadata: worldMetadata,\n });\n\n // Verify the world was created with proper metadata\n try {\n const createdWorld = await runtime.getWorld(worldId);\n runtime.logger.info(\n `[Bootstrap] Created world check - ID: ${worldId}, metadata: ${JSON.stringify(createdWorld?.metadata)}`\n );\n } catch (error) {\n runtime.logger.error(`[Bootstrap] Failed to verify created world: ${error}`);\n }\n\n runtime.logger.success(`[Bootstrap] Successfully synced user: ${entity?.id}`);\n } catch (error) {\n runtime.logger.error(\n `[Bootstrap] Error syncing user: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n};\n\n/**\n * Handles standardized server data for both WORLD_JOINED and WORLD_CONNECTED events\n */\nconst handleServerSync = async ({\n runtime,\n world,\n rooms,\n entities,\n source,\n onComplete,\n}: WorldPayload) => {\n runtime.logger.debug(`[Bootstrap] Handling server sync event for server: ${world.name}`);\n try {\n await runtime.ensureConnections(entities, rooms, source, world);\n runtime.logger.debug(`Successfully synced standardized world structure for ${world.name}`);\n onComplete?.();\n } catch (error) {\n runtime.logger.error(\n `Error processing standardized server data: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n};\n\n/**\n * Handles control messages for enabling or disabling UI elements in the frontend\n * @param {Object} params - Parameters for the handler\n * @param {IAgentRuntime} params.runtime - The runtime instance\n * @param {Object} params.message - The control message\n * @param {string} params.source - Source of the message\n */\nconst controlMessageHandler = async ({\n runtime,\n message,\n}: {\n runtime: IAgentRuntime;\n message: ControlMessage;\n source: string;\n}) => {\n try {\n runtime.logger.debug(\n `[controlMessageHandler] Processing control message: ${message.payload.action} for room ${message.roomId}`\n );\n\n // Here we would use a WebSocket service to send the control message to the frontend\n // This would typically be handled by a registered service with sendMessage capability\n\n // Get any registered WebSocket service\n const serviceNames = Array.from(runtime.getAllServices().keys()) as string[];\n const websocketServiceName = serviceNames.find(\n (name: string) =>\n name.toLowerCase().includes('websocket') || name.toLowerCase().includes('socket')\n );\n\n if (websocketServiceName) {\n const websocketService = runtime.getService(websocketServiceName);\n if (websocketService && 'sendMessage' in websocketService) {\n // Send the control message through the WebSocket service\n await (websocketService as any).sendMessage({\n type: 'controlMessage',\n payload: {\n action: message.payload.action,\n target: message.payload.target,\n roomId: message.roomId,\n },\n });\n\n runtime.logger.debug(\n `[controlMessageHandler] Control message ${message.payload.action} sent successfully`\n );\n } else {\n runtime.logger.error(\n '[controlMessageHandler] WebSocket service does not have sendMessage method'\n );\n }\n } else {\n runtime.logger.error(\n '[controlMessageHandler] No WebSocket service found to send control message'\n );\n }\n } catch (error) {\n runtime.logger.error(`[controlMessageHandler] Error processing control message: ${error}`);\n }\n};\n\nconst events: PluginEvents = {\n [EventType.MESSAGE_RECEIVED]: [\n async (payload: MessagePayload) => {\n if (!payload.callback) {\n payload.runtime.logger.error('No callback provided for message');\n return;\n }\n await messageReceivedHandler(payload);\n },\n ],\n\n [EventType.VOICE_MESSAGE_RECEIVED]: [\n async (payload: MessagePayload) => {\n if (!payload.callback) {\n payload.runtime.logger.error('No callback provided for voice message');\n return;\n }\n await messageReceivedHandler(payload);\n },\n ],\n\n [EventType.REACTION_RECEIVED]: [\n async (payload: MessagePayload) => {\n await reactionReceivedHandler(payload);\n },\n ],\n\n [EventType.POST_GENERATED]: [\n async (payload: InvokePayload) => {\n await postGeneratedHandler(payload);\n },\n ],\n\n [EventType.MESSAGE_SENT]: [\n async (payload: MessagePayload) => {\n payload.runtime.logger.debug(`[Bootstrap] Message sent: ${payload.message.content.text}`);\n },\n ],\n\n [EventType.MESSAGE_DELETED]: [\n async (payload: MessagePayload) => {\n await messageDeletedHandler(payload);\n },\n ],\n\n [EventType.CHANNEL_CLEARED]: [\n async (payload: EventPayload & { roomId: UUID; channelId: string; memoryCount: number }) => {\n await channelClearedHandler({\n runtime: payload.runtime,\n roomId: payload.roomId,\n channelId: payload.channelId,\n memoryCount: payload.memoryCount,\n });\n },\n ],\n\n [EventType.WORLD_JOINED]: [\n async (payload: WorldPayload) => {\n await handleServerSync(payload);\n },\n ],\n\n [EventType.WORLD_CONNECTED]: [\n async (payload: WorldPayload) => {\n await handleServerSync(payload);\n },\n ],\n\n [EventType.ENTITY_JOINED]: [\n async (payload: EntityPayload) => {\n payload.runtime.logger.debug(\n `[Bootstrap] ENTITY_JOINED event received for entity ${payload.entityId}`\n );\n\n if (!payload.worldId) {\n payload.runtime.logger.error('[Bootstrap] No worldId provided for entity joined');\n return;\n }\n if (!payload.roomId) {\n payload.runtime.logger.error('[Bootstrap] No roomId provided for entity joined');\n return;\n }\n if (!payload.metadata?.type) {\n payload.runtime.logger.error('[Bootstrap] No type provided for entity joined');\n return;\n }\n\n await syncSingleUser(\n payload.entityId,\n payload.runtime,\n payload.worldId,\n payload.roomId,\n payload.metadata.type,\n payload.source\n );\n },\n ],\n\n [EventType.ENTITY_LEFT]: [\n async (payload: EntityPayload) => {\n try {\n // Update entity to inactive\n const entity = await payload.runtime.getEntityById(payload.entityId);\n if (entity) {\n entity.metadata = {\n ...entity.metadata,\n status: 'INACTIVE',\n leftAt: Date.now(),\n };\n await payload.runtime.updateEntity(entity);\n }\n payload.runtime.logger.info(\n `[Bootstrap] User ${payload.entityId} left world ${payload.worldId}`\n );\n } catch (error: any) {\n payload.runtime.logger.error(\n '[Bootstrap] Error handling user left:',\n error instanceof Error ? error.message : String(error)\n );\n }\n },\n ],\n\n [EventType.ACTION_STARTED]: [\n async (payload: ActionEventPayload) => {\n try {\n // Only notify for client_chat messages\n if (payload.content?.source === 'client_chat') {\n const messageBusService = payload.runtime.getService('message-bus-service') as any;\n if (messageBusService) {\n await messageBusService.notifyActionStart(\n payload.roomId,\n payload.world,\n payload.content,\n payload.messageId\n );\n }\n }\n } catch (error) {\n logger.error(`[Bootstrap] Error sending refetch request: ${error}`);\n }\n },\n async (payload: ActionEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.runtime.agentId,\n roomId: payload.roomId,\n type: 'action_event',\n body: {\n runId: payload.content?.runId,\n actionId: payload.content?.actionId,\n actionName: payload.content?.actions?.[0],\n roomId: payload.roomId,\n messageId: payload.messageId,\n timestamp: Date.now(),\n planStep: payload.content?.planStep,\n source: 'actionHandler',\n },\n });\n logger.debug(\n `[Bootstrap] Logged ACTION_STARTED event for action ${payload.content?.actions?.[0]}`\n );\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log ACTION_STARTED event: ${error}`);\n }\n },\n ],\n\n [EventType.ACTION_COMPLETED]: [\n async (payload: ActionEventPayload) => {\n try {\n // Only notify for client_chat messages\n if (payload.content?.source === 'client_chat') {\n const messageBusService = payload.runtime.getService('message-bus-service') as any;\n if (messageBusService) {\n await messageBusService.notifyActionUpdate(\n payload.roomId,\n payload.world,\n payload.content,\n payload.messageId\n );\n }\n }\n } catch (error) {\n logger.error(`[Bootstrap] Error sending refetch request: ${error}`);\n }\n },\n ],\n\n [EventType.EVALUATOR_STARTED]: [\n async (payload: EvaluatorEventPayload) => {\n logger.debug(\n `[Bootstrap] Evaluator started: ${payload.evaluatorName} (${payload.evaluatorId})`\n );\n },\n ],\n\n [EventType.EVALUATOR_COMPLETED]: [\n async (payload: EvaluatorEventPayload) => {\n const status = payload.error ? `failed: ${payload.error.message}` : 'completed';\n logger.debug(\n `[Bootstrap] Evaluator ${status}: ${payload.evaluatorName} (${payload.evaluatorId})`\n );\n },\n ],\n\n [EventType.RUN_STARTED]: [\n async (payload: RunEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.entityId,\n roomId: payload.roomId,\n type: 'run_event',\n body: {\n runId: payload.runId,\n status: payload.status,\n messageId: payload.messageId,\n roomId: payload.roomId,\n entityId: payload.entityId,\n startTime: payload.startTime,\n source: payload.source || 'unknown',\n },\n });\n logger.debug(`[Bootstrap] Logged RUN_STARTED event for run ${payload.runId}`);\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log RUN_STARTED event: ${error}`);\n }\n },\n ],\n\n [EventType.RUN_ENDED]: [\n async (payload: RunEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.entityId,\n roomId: payload.roomId,\n type: 'run_event',\n body: {\n runId: payload.runId,\n status: payload.status,\n messageId: payload.messageId,\n roomId: payload.roomId,\n entityId: payload.entityId,\n startTime: payload.startTime,\n endTime: payload.endTime,\n duration: payload.duration,\n error: payload.error,\n source: payload.source || 'unknown',\n },\n });\n logger.debug(\n `[Bootstrap] Logged RUN_ENDED event for run ${payload.runId} with status ${payload.status}`\n );\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log RUN_ENDED event: ${error}`);\n }\n },\n ],\n\n [EventType.RUN_TIMEOUT]: [\n async (payload: RunEventPayload) => {\n try {\n await payload.runtime.log({\n entityId: payload.entityId,\n roomId: payload.roomId,\n type: 'run_event',\n body: {\n runId: payload.runId,\n status: payload.status,\n messageId: payload.messageId,\n roomId: payload.roomId,\n entityId: payload.entityId,\n startTime: payload.startTime,\n endTime: payload.endTime,\n duration: payload.duration,\n error: payload.error,\n source: payload.source || 'unknown',\n },\n });\n logger.debug(`[Bootstrap] Logged RUN_TIMEOUT event for run ${payload.runId}`);\n } catch (error) {\n logger.error(`[Bootstrap] Failed to log RUN_TIMEOUT event: ${error}`);\n }\n },\n ],\n\n CONTROL_MESSAGE: [controlMessageHandler],\n};\n\nexport const bootstrapPlugin: Plugin = {\n name: 'bootstrap',\n description: 'Agent bootstrap with basic actions and evaluators',\n actions: [\n actions.replyAction,\n actions.followRoomAction,\n actions.unfollowRoomAction,\n actions.ignoreAction,\n actions.noneAction,\n actions.muteRoomAction,\n actions.unmuteRoomAction,\n actions.sendMessageAction,\n actions.updateEntityAction,\n actions.choiceAction,\n actions.updateRoleAction,\n actions.updateSettingsAction,\n actions.generateImageAction,\n ],\n events: events,\n evaluators: [evaluators.reflectionEvaluator],\n providers: [\n providers.evaluatorsProvider,\n providers.anxietyProvider,\n providers.timeProvider,\n providers.entitiesProvider,\n providers.relationshipsProvider,\n providers.choiceProvider,\n providers.factsProvider,\n providers.roleProvider,\n providers.settingsProvider,\n // there is given no reason for this - odi\n //providers.capabilitiesProvider,\n providers.attachmentsProvider,\n providers.providersProvider,\n providers.actionsProvider,\n providers.actionStateProvider,\n providers.characterProvider,\n providers.recentMessagesProvider,\n providers.worldProvider,\n ],\n services: [TaskService, EmbeddingGenerationService],\n};\n\nexport default bootstrapPlugin;\n",
|
|
7
7
|
"import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n",
|
|
8
8
|
"import { randomFillSync } from 'crypto';\nconst rnds8Pool = new Uint8Array(256);\nlet poolPtr = rnds8Pool.length;\nexport default function rng() {\n if (poolPtr > rnds8Pool.length - 16) {\n randomFillSync(rnds8Pool);\n poolPtr = 0;\n }\n return rnds8Pool.slice(poolPtr, (poolPtr += 16));\n}\n",
|
|
9
9
|
"import { randomUUID } from 'crypto';\nexport default { randomUUID };\n",
|
|
10
10
|
"import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n",
|
|
11
|
-
"import {\n type Action,\n type ActionExample,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n ContentType,\n parseKeyValueXml,\n type ActionResult,\n logger,\n} from '@elizaos/core';\nimport { v4 } from 'uuid';\n\n/**\n * Template for generating an image for the character using a prompt.\n *\n * @type {string}\n */\nconst imageGenerationTemplate = `# Task: Generate an image prompt based on the user's request.\n {{providers}}\n # Instructions:\n Based on the user's message in the conversation, write a clear, concise, and visually descriptive prompt for image generation. Focus only on what the user wants to see, extract the key visual elements from the request, and formulate a detailed prompt suitable for image generation.\n\n # Recent conversation:\n {{recentMessages}}\n \n Your response should be formatted in XML like this:\n <response>\n <prompt>Your image generation prompt here</prompt>\n </response>\n \n Your response should include the valid XML block and nothing else.`;\n\n/**\n * Represents an action that allows the agent to generate an image using a generated prompt.\n *\n * This action can be used in a chain where the agent needs to visualize or illustrate a concept, emotion, or scene.\n */\nexport const generateImageAction = {\n name: 'GENERATE_IMAGE',\n similes: ['DRAW', 'CREATE_IMAGE', 'RENDER_IMAGE', 'VISUALIZE'],\n description:\n 'Generates an image based on a generated prompt reflecting the current conversation. Use GENERATE_IMAGE when the agent needs to visualize, illustrate, or demonstrate something visually for the user.',\n validate: async (_runtime: IAgentRuntime) => {\n return true;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State,\n _options: any,\n callback: HandlerCallback,\n responses?: Memory[]\n ): Promise<ActionResult> => {\n try {\n const allProviders = responses?.flatMap((res) => res.content?.providers ?? []) ?? [];\n\n state = await runtime.composeState(message, [...(allProviders ?? []), 'RECENT_MESSAGES']);\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.imageGenerationTemplate || imageGenerationTemplate,\n });\n\n const promptResponse = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n // Parse XML response\n const parsedXml = parseKeyValueXml(promptResponse);\n\n const imagePrompt = parsedXml?.prompt || 'Unable to generate descriptive prompt for image';\n\n const imageResponse = await runtime.useModel(ModelType.IMAGE, {\n prompt: imagePrompt,\n });\n\n if (!imageResponse || imageResponse.length === 0 || !imageResponse[0]?.url) {\n logger.error(\n {\n imageResponse,\n imagePrompt,\n },\n 'generateImageAction: Image generation failed - no valid response received'\n );\n return {\n text: 'Image generation failed',\n values: {\n success: false,\n error: 'IMAGE_GENERATION_FAILED',\n prompt: imagePrompt,\n },\n data: {\n actionName: 'GENERATE_IMAGE',\n prompt: imagePrompt,\n rawResponse: imageResponse,\n },\n success: false,\n };\n }\n\n const imageUrl = imageResponse[0].url;\n\n logger.info(`[GENERATE_IMAGE] Received image URL: ${imageUrl}`);\n\n // Determine file extension from URL or default to png\n const getFileExtension = (url: string): string => {\n try {\n const urlPath = new URL(url).pathname;\n const extension = urlPath.split('.').pop()?.toLowerCase();\n // Common image extensions\n if (extension && ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp'].includes(extension)) {\n return extension;\n }\n // Extension not in allowed list, fall through to default\n } catch (e) {\n // URL parsing failed (malformed URL), fall back to png\n }\n return 'png'; // Default fallback for invalid/unknown extensions\n };\n\n // Create shared attachment data to avoid duplication\n const extension = getFileExtension(imageUrl);\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);\n const fileName = `Generated_Image_${timestamp}.${extension}`;\n const attachmentId = v4();\n\n const responseContent = {\n attachments: [\n {\n id: attachmentId,\n url: imageUrl,\n title:
|
|
11
|
+
"import {\n type Action,\n type ActionExample,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n ContentType,\n parseKeyValueXml,\n type ActionResult,\n logger,\n} from '@elizaos/core';\nimport { v4 } from 'uuid';\n\n/**\n * Template for generating an image for the character using a prompt.\n *\n * @type {string}\n */\nconst imageGenerationTemplate = `# Task: Generate an image prompt based on the user's request.\n {{providers}}\n # Instructions:\n Based on the user's message in the conversation, write a clear, concise, and visually descriptive prompt for image generation. Focus only on what the user wants to see, extract the key visual elements from the request, and formulate a detailed prompt suitable for image generation.\n\n # Recent conversation:\n {{recentMessages}}\n \n Your response should be formatted in XML like this:\n <response>\n <prompt>Your image generation prompt here</prompt>\n </response>\n \n Your response should include the valid XML block and nothing else.`;\n\n/**\n * Represents an action that allows the agent to generate an image using a generated prompt.\n *\n * This action can be used in a chain where the agent needs to visualize or illustrate a concept, emotion, or scene.\n */\nexport const generateImageAction = {\n name: 'GENERATE_IMAGE',\n similes: ['DRAW', 'CREATE_IMAGE', 'RENDER_IMAGE', 'VISUALIZE'],\n description:\n 'Generates an image based on a generated prompt reflecting the current conversation. Use GENERATE_IMAGE when the agent needs to visualize, illustrate, or demonstrate something visually for the user.',\n validate: async (_runtime: IAgentRuntime) => {\n return true;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State,\n _options: any,\n callback: HandlerCallback,\n responses?: Memory[]\n ): Promise<ActionResult> => {\n try {\n const allProviders = responses?.flatMap((res) => res.content?.providers ?? []) ?? [];\n\n state = await runtime.composeState(message, [...(allProviders ?? []), 'RECENT_MESSAGES']);\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.imageGenerationTemplate || imageGenerationTemplate,\n });\n\n const promptResponse = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n // Parse XML response\n const parsedXml = parseKeyValueXml(promptResponse);\n\n const imagePrompt = parsedXml?.prompt || 'Unable to generate descriptive prompt for image';\n\n const imageResponse = await runtime.useModel(ModelType.IMAGE, {\n prompt: imagePrompt,\n });\n\n if (!imageResponse || imageResponse.length === 0 || !imageResponse[0]?.url) {\n logger.error(\n {\n imageResponse,\n imagePrompt,\n },\n 'generateImageAction: Image generation failed - no valid response received'\n );\n return {\n text: 'Image generation failed',\n values: {\n success: false,\n error: 'IMAGE_GENERATION_FAILED',\n prompt: imagePrompt,\n },\n data: {\n actionName: 'GENERATE_IMAGE',\n prompt: imagePrompt,\n rawResponse: imageResponse,\n },\n success: false,\n };\n }\n\n const imageUrl = imageResponse[0].url;\n\n logger.info(`[GENERATE_IMAGE] Received image URL: ${imageUrl}`);\n\n // Determine file extension from URL or default to png\n const getFileExtension = (url: string): string => {\n try {\n const urlPath = new URL(url).pathname;\n const extension = urlPath.split('.').pop()?.toLowerCase();\n // Common image extensions\n if (extension && ['png', 'jpg', 'jpeg', 'gif', 'webp', 'bmp'].includes(extension)) {\n return extension;\n }\n // Extension not in allowed list, fall through to default\n } catch (e) {\n // URL parsing failed (malformed URL), fall back to png\n }\n return 'png'; // Default fallback for invalid/unknown extensions\n };\n\n // Create shared attachment data to avoid duplication\n const extension = getFileExtension(imageUrl);\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);\n const fileName = `Generated_Image_${timestamp}.${extension}`;\n const attachmentId = v4();\n\n const responseContent = {\n attachments: [\n {\n id: attachmentId,\n url: imageUrl,\n title: fileName,\n contentType: ContentType.IMAGE,\n },\n ],\n thought: `Generated an image based on: \"${imagePrompt}\"`,\n actions: ['GENERATE_IMAGE'],\n text: imagePrompt,\n };\n\n await callback(responseContent);\n\n return {\n text: 'Generated image',\n values: {\n success: true,\n imageGenerated: true,\n imageUrl,\n prompt: imagePrompt,\n },\n data: {\n actionName: 'GENERATE_IMAGE',\n imageUrl,\n prompt: imagePrompt,\n },\n success: true,\n };\n } catch (error) {\n const err = error as Error;\n logger.error(\n {\n message: err.message,\n stack: err.stack,\n },\n 'generateImageAction: Exception during image generation'\n );\n return {\n text: 'Image generation failed',\n values: {\n success: false,\n error: 'IMAGE_GENERATION_FAILED',\n },\n data: {\n actionName: 'GENERATE_IMAGE',\n errorMessage: err.message,\n },\n success: false,\n };\n }\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Can you show me what a futuristic city looks like?',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Sure, I'll create a futuristic city image for you. One moment...\",\n actions: ['GENERATE_IMAGE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'What does a neural network look like visually?',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'I’ll create a visualization of a neural network for you, one sec...',\n actions: ['GENERATE_IMAGE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Can you visualize the feeling of calmness for me?',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Creating an image to capture calmness for you, please wait a moment...',\n actions: ['GENERATE_IMAGE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'What does excitement look like as an image?',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Let me generate an image that represents excitement for you, give me a second...',\n actions: ['GENERATE_IMAGE'],\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n",
|
|
12
12
|
"import {\n type Action,\n type ActionExample,\n composePrompt,\n getUserServerRole,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n parseKeyValueXml,\n type State,\n type ActionResult,\n} from '@elizaos/core';\n\n/**\n * Task: Extract selected task and option from user message\n *\n * Available Tasks:\n * {{#each tasks}}\n * Task ID: {{taskId}} - {{name}}\n * Available options:\n * {{#each options}}\n * - {{name}}: {{description}}\n * {{/each}}\n * - ABORT: Cancel this task\n * {{/each}}\n *\n * Recent Messages:\n * {{recentMessages}}\n *\n * Instructions:\n * 1. Review the user's message and identify which task and option they are selecting\n * 2. Match against the available tasks and their options, including ABORT\n * 3. Return the task ID (shortened UUID) and selected option name exactly as listed above\n * 4. If no clear selection is made, return null for both fields\n *\n * Return in XML format:\n * <response>\n * <taskId>string_or_null</taskId>\n * <selectedOption>OPTION_NAME_or_null</selectedOption>\n * </response>\n */\nconst optionExtractionTemplate = `# Task: Extract selected task and option from user message\n\n# Available Tasks:\n{{#each tasks}}\nTask ID: {{taskId}} - {{name}}\nAvailable options:\n{{#each options}}\n- {{name}}: {{description}}\n{{/each}}\n- ABORT: Cancel this task\n\n{{/each}}\n\n# Recent Messages:\n{{recentMessages}}\n\n# Instructions:\n1. Review the user's message and identify which task and option they are selecting\n2. Match against the available tasks and their options, including ABORT\n3. Return the task ID (shortened UUID) and selected option name exactly as listed above\n4. If no clear selection is made, return null for both fields\n\nDo NOT include any thinking, reasoning, or <think> sections in your response. \nGo directly to the XML response format without any preamble or explanation.\n\nReturn in XML format:\n<response>\n <taskId>string_or_null</taskId>\n <selectedOption>OPTION_NAME_or_null</selectedOption>\n</response>\n\nIMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.`;\n\n/**\n * Represents an action that allows selecting an option for a pending task that has multiple options.\n * @type {Action}\n * @property {string} name - The name of the action\n * @property {string[]} similes - Similar words or phrases for the action\n * @property {string} description - A brief description of the action\n * @property {Function} validate - Asynchronous function to validate the action\n * @property {Function} handler - Asynchronous function to handle the action\n * @property {ActionExample[][]} examples - Examples demonstrating the usage of the action\n */\nexport const choiceAction: Action = {\n name: 'CHOOSE_OPTION',\n similes: ['SELECT_OPTION', 'SELECT', 'PICK', 'CHOOSE'],\n description: 'Selects an option for a pending task that has multiple options',\n\n validate: async (runtime: IAgentRuntime, message: Memory, state?: State): Promise<boolean> => {\n if (!state) {\n logger.error('State is required for validating the action');\n throw new Error('State is required for validating the action');\n }\n\n const room = state.data.room ?? (await runtime.getRoom(message.roomId));\n\n if (!room || !room.serverId) {\n return false;\n }\n\n const userRole = await getUserServerRole(runtime, message.entityId, room.serverId);\n\n if (userRole !== 'OWNER' && userRole !== 'ADMIN') {\n return false;\n }\n\n try {\n // Get all tasks with options metadata\n const pendingTasks = await runtime.getTasks({\n roomId: message.roomId,\n tags: ['AWAITING_CHOICE'],\n });\n\n const room = state.data.room ?? (await runtime.getRoom(message.roomId));\n\n const userRole = await getUserServerRole(runtime, message.entityId, room.serverId);\n\n if (userRole !== 'OWNER' && userRole !== 'ADMIN') {\n return false;\n }\n\n // Only validate if there are pending tasks with options\n return (\n pendingTasks &&\n pendingTasks.length > 0 &&\n pendingTasks.some((task) => task.metadata?.options)\n );\n } catch (error) {\n logger.error({ error }, 'Error validating choice action');\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n _options?: any,\n callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<ActionResult> => {\n const pendingTasks = await runtime.getTasks({\n roomId: message.roomId,\n tags: ['AWAITING_CHOICE'],\n });\n\n if (!pendingTasks?.length) {\n return {\n text: 'No pending tasks with options found',\n values: {\n success: false,\n error: 'NO_PENDING_TASKS',\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: 'No pending tasks with options found',\n },\n success: false,\n };\n }\n\n const tasksWithOptions = pendingTasks.filter((task) => task.metadata?.options);\n\n if (!tasksWithOptions.length) {\n return {\n text: 'No tasks currently have options to select from',\n values: {\n success: false,\n error: 'NO_OPTIONS_AVAILABLE',\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: 'No tasks currently have options to select from',\n },\n success: false,\n };\n }\n\n // Format tasks with their options for the LLM, using shortened UUIDs\n const formattedTasks = tasksWithOptions.map((task) => {\n // Generate a short ID from the task UUID (first 8 characters should be unique enough)\n const shortId = task.id?.substring(0, 8);\n\n return {\n taskId: shortId,\n fullId: task.id,\n name: task.name,\n options: task.metadata?.options?.map((opt) => ({\n name: typeof opt === 'string' ? opt : opt.name,\n description: typeof opt === 'string' ? opt : opt.description || opt.name,\n })),\n };\n });\n\n // format tasks as a string\n const tasksString = formattedTasks\n .map((task) => {\n return `Task ID: ${task.taskId} - ${task.name}\\nAvailable options:\\n${task.options?.map((opt) => `- ${opt.name}: ${opt.description}`).join('\\n')}`;\n })\n .join('\\n');\n\n const prompt = composePrompt({\n state: {\n tasks: tasksString,\n recentMessages: message.content.text || '',\n },\n template: optionExtractionTemplate,\n });\n\n const result = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt,\n stopSequences: [],\n });\n\n const parsed = parseKeyValueXml(result);\n const { taskId, selectedOption } = parsed as any;\n\n if (taskId && selectedOption) {\n // Find the task by matching the shortened UUID\n const taskMap = new Map(formattedTasks.map((task) => [task.taskId, task]));\n const taskInfo = taskMap.get(taskId) as (typeof formattedTasks)[0] | undefined;\n\n if (!taskInfo) {\n await callback?.({\n text: `Could not find a task matching ID: ${taskId}. Please try again.`,\n actions: ['SELECT_OPTION_ERROR'],\n source: message.content.source,\n });\n return {\n text: `Could not find task with ID: ${taskId}`,\n values: {\n success: false,\n error: 'TASK_NOT_FOUND',\n taskId,\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: 'Task not found',\n taskId,\n },\n success: false,\n };\n }\n\n // Find the actual task using the full UUID\n const selectedTask = tasksWithOptions.find((task) => task.id === taskInfo.fullId);\n\n if (!selectedTask) {\n await callback?.({\n text: 'Error locating the selected task. Please try again.',\n actions: ['SELECT_OPTION_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Error locating the selected task',\n values: {\n success: false,\n error: 'TASK_LOOKUP_ERROR',\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: 'Failed to locate task',\n },\n success: false,\n };\n }\n\n if (selectedOption === 'ABORT') {\n if (!selectedTask?.id) {\n await callback?.({\n text: 'Error locating the selected task. Please try again.',\n actions: ['SELECT_OPTION_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Error aborting task',\n values: {\n success: false,\n error: 'ABORT_ERROR',\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: 'Could not abort task',\n },\n success: false,\n };\n }\n\n await runtime.deleteTask(selectedTask.id);\n await callback?.({\n text: `Task \"${selectedTask.name}\" has been cancelled.`,\n actions: ['CHOOSE_OPTION_CANCELLED'],\n source: message.content.source,\n });\n return {\n text: `Task \"${selectedTask.name}\" has been cancelled`,\n values: {\n success: true,\n taskAborted: true,\n taskId: selectedTask.id,\n taskName: selectedTask.name,\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n selectedOption: 'ABORT',\n taskId: selectedTask.id,\n taskName: selectedTask.name,\n },\n success: true,\n };\n }\n\n try {\n const taskWorker = runtime.getTaskWorker(selectedTask.name);\n await taskWorker?.execute(runtime, { option: selectedOption }, selectedTask);\n await callback?.({\n text: `Selected option: ${selectedOption} for task: ${selectedTask.name}`,\n actions: ['CHOOSE_OPTION'],\n source: message.content.source,\n });\n return {\n text: `Selected option: ${selectedOption} for task: ${selectedTask.name}`,\n values: {\n success: true,\n selectedOption,\n taskId: selectedTask.id,\n taskName: selectedTask.name,\n taskExecuted: true,\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n selectedOption,\n taskId: selectedTask.id,\n taskName: selectedTask.name,\n },\n success: true,\n };\n } catch (error) {\n logger.error({ error }, 'Error executing task with option');\n await callback?.({\n text: 'There was an error processing your selection.',\n actions: ['SELECT_OPTION_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Error processing selection',\n values: {\n success: false,\n error: 'EXECUTION_ERROR',\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: error instanceof Error ? error.message : String(error),\n taskId: selectedTask.id,\n selectedOption,\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n }\n\n // If no task/option was selected, list available options\n let optionsText = 'Please select a valid option from one of these tasks:\\n\\n';\n\n tasksWithOptions.forEach((task) => {\n // Create a shortened UUID for display\n const shortId = task.id?.substring(0, 8);\n\n optionsText += `**${task.name}** (ID: ${shortId}):\\n`;\n const options = task.metadata?.options?.map((opt) =>\n typeof opt === 'string' ? opt : opt.name\n );\n options?.push('ABORT');\n optionsText += options?.map((opt) => `- ${opt}`).join('\\n');\n optionsText += '\\n\\n';\n });\n\n await callback?.({\n text: optionsText,\n actions: ['SELECT_OPTION_INVALID'],\n source: message.content.source,\n });\n\n return {\n text: 'No valid option selected',\n values: {\n success: false,\n error: 'NO_SELECTION',\n availableTasks: tasksWithOptions.length,\n },\n data: {\n actionName: 'CHOOSE_OPTION',\n error: 'No valid selection made',\n availableTasks: formattedTasks,\n },\n success: false,\n };\n },\n\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: 'post',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Selected option: post for task: Confirm Twitter Post',\n actions: ['CHOOSE_OPTION'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'I choose cancel',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Selected option: cancel for task: Confirm Twitter Post',\n actions: ['CHOOSE_OPTION'],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nexport default choiceAction;\n",
|
|
13
13
|
"import {\n type Action,\n type ActionExample,\n booleanFooter,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n type ActionResult,\n} from '@elizaos/core';\n\n/**\n * Template for deciding if {{agentName}} should start following a room.\n * The decision is based on various criteria, including recent messages and user interactions.\n * Respond with YES if:\n * - The user has directly asked {{agentName}} to follow the conversation\n * - The conversation topic is engaging and {{agentName}}'s input would add value\n * - {{agentName}} has unique insights to contribute and users seem receptive\n * Otherwise, respond with NO.\n */\n/**\n * Template for determining if the agent should start following a room\n * @type {string}\n */\nexport const shouldFollowTemplate = `# Task: Decide if {{agentName}} should start following this room, i.e. eagerly participating without explicit mentions.\n\n{{recentMessages}}\n\nShould {{agentName}} start following this room, eagerly participating without explicit mentions?\nRespond with YES if:\n- The user has directly asked {{agentName}} to follow the conversation or participate more actively\n- The conversation topic is highly engaging and {{agentName}}'s input would add significant value\n- {{agentName}} has unique insights to contribute and the users seem receptive\n\nOtherwise, respond with NO.\n${booleanFooter}`;\n\n/**\n * Action for following a room with great interest.\n * Similes: FOLLOW_CHAT, FOLLOW_CHANNEL, FOLLOW_CONVERSATION, FOLLOW_THREAD\n * Description: Start following this channel with great interest, chiming in without needing to be explicitly mentioned. Only do this if explicitly asked to.\n * @param {IAgentRuntime} runtime - The current agent runtime.\n * @param {Memory} message - The message memory.\n * @returns {Promise<boolean>} - Promise that resolves to a boolean indicating if the room should be followed.\n */\nexport const followRoomAction: Action = {\n name: 'FOLLOW_ROOM',\n similes: ['FOLLOW_CHAT', 'FOLLOW_CHANNEL', 'FOLLOW_CONVERSATION', 'FOLLOW_THREAD'],\n description:\n 'Start following this channel with great interest, chiming in without needing to be explicitly mentioned. Only do this if explicitly asked to.',\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const keywords = ['follow', 'participate', 'engage', 'listen', 'take interest', 'join'];\n if (!keywords.some((keyword) => message.content.text?.toLowerCase().includes(keyword))) {\n return false;\n }\n const roomId = message.roomId;\n const roomState = await runtime.getParticipantUserState(roomId, runtime.agentId);\n return roomState !== 'FOLLOWED' && roomState !== 'MUTED';\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: { [key: string]: unknown },\n _callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<ActionResult> => {\n if (!state) {\n logger.error('State is required for followRoomAction');\n return {\n text: 'State is required for follow room action',\n values: {\n success: false,\n error: 'STATE_REQUIRED',\n },\n data: {\n actionName: 'FOLLOW_ROOM',\n error: 'State is required',\n },\n success: false,\n error: new Error('State is required for followRoomAction'),\n };\n }\n\n async function _shouldFollow(state: State): Promise<boolean> {\n const shouldFollowPrompt = composePromptFromState({\n state,\n template: shouldFollowTemplate, // Define this template separately\n });\n\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n runtime,\n prompt: shouldFollowPrompt,\n stopSequences: [],\n });\n\n const cleanedResponse = response.trim().toLowerCase();\n\n // Handle various affirmative responses\n if (\n cleanedResponse === 'true' ||\n cleanedResponse === 'yes' ||\n cleanedResponse === 'y' ||\n cleanedResponse.includes('true') ||\n cleanedResponse.includes('yes')\n ) {\n await runtime.createMemory(\n {\n entityId: message.entityId,\n agentId: message.agentId,\n roomId: message.roomId,\n content: {\n source: message.content.source,\n thought: 'I will now follow this room and chime in',\n actions: ['FOLLOW_ROOM_STARTED'],\n },\n metadata: {\n type: 'FOLLOW_ROOM',\n },\n },\n 'messages'\n );\n return true;\n }\n\n // Handle various negative responses\n if (\n cleanedResponse === 'false' ||\n cleanedResponse === 'no' ||\n cleanedResponse === 'n' ||\n cleanedResponse.includes('false') ||\n cleanedResponse.includes('no')\n ) {\n await runtime.createMemory(\n {\n entityId: message.entityId,\n agentId: message.agentId,\n roomId: message.roomId,\n content: {\n source: message.content.source,\n thought: 'I decided to not follow this room',\n actions: ['FOLLOW_ROOM_FAILED'],\n },\n metadata: {\n type: 'FOLLOW_ROOM',\n },\n },\n 'messages'\n );\n return false;\n }\n\n // Default to false if response is unclear\n logger.warn(`Unclear boolean response: ${response}, defaulting to false`);\n return false;\n }\n\n const shouldFollow = await _shouldFollow(state);\n const room = state.data.room ?? (await runtime.getRoom(message.roomId));\n\n if (shouldFollow) {\n try {\n await runtime.setParticipantUserState(message.roomId, runtime.agentId, 'FOLLOWED');\n\n await runtime.createMemory(\n {\n entityId: message.entityId,\n agentId: message.agentId,\n roomId: message.roomId,\n content: {\n thought: `I followed the room ${room.name}`,\n actions: ['FOLLOW_ROOM_START'],\n },\n },\n 'messages'\n );\n\n return {\n text: `Now following room: ${room.name}`,\n values: {\n success: true,\n roomFollowed: true,\n roomId: message.roomId,\n roomName: room.name,\n newState: 'FOLLOWED',\n },\n data: {\n actionName: 'FOLLOW_ROOM',\n roomId: message.roomId,\n roomName: room.name,\n followed: true,\n },\n success: true,\n };\n } catch (error) {\n logger.error({ error }, 'Error following room');\n return {\n text: 'Failed to follow room',\n values: {\n success: false,\n error: 'FOLLOW_FAILED',\n },\n data: {\n actionName: 'FOLLOW_ROOM',\n error: error instanceof Error ? error.message : String(error),\n roomId: message.roomId,\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n } else {\n return {\n text: `Decided not to follow room: ${room.name}`,\n values: {\n success: true,\n roomFollowed: false,\n roomId: message.roomId,\n roomName: room.name,\n reason: 'NOT_APPROPRIATE',\n },\n data: {\n actionName: 'FOLLOW_ROOM',\n roomId: message.roomId,\n roomName: room.name,\n followed: false,\n reason: 'Decision criteria not met',\n },\n success: true,\n };\n }\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: 'hey {{name2}} follow this channel',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Sure, I will now follow this room and chime in',\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name3}}, please start participating in discussions in this channel',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'Got it',\n actions: ['FOLLOW_ROOM'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"I'm struggling with the new database migration\",\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'well you did back up your data first right',\n },\n },\n ],\n [\n {\n name: '{{name2}}',\n content: {\n text: 'yeah i like your idea',\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'hey {{name3}} can you follow this convo',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: \"Sure thing, I'm on it\",\n actions: ['FOLLOW_ROOM'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'actually, unfollow it',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'Haha, okay no problem',\n actions: ['UNFOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name2}} stay in this chat pls',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"you got it, i'm here\",\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'FOLLOW THIS CHAT {{name3}}',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: \"I'M ON IT\",\n actions: ['FOLLOW_ROOM'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'CAKE SHORTAGE ANYONE',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: \"WHAT WHERE'S THE CAKE AT\",\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name2}} folo this covo',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"kk i'm following\",\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name2}}',\n content: {\n text: 'Do machines have consciousness',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Deep question, no clear answer yet',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Depends on how we define consciousness',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name2}}, monitor this convo please',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'On it',\n actions: ['FOLLOW_ROOM'],\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'Please engage in our discussion {{name2}}',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Gladly, I'm here to participate\",\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'PLS follow this convo {{name3}}',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: \"I'm in, let's do this\",\n actions: ['FOLLOW_ROOM'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'I LIKE TURTLES',\n },\n },\n ],\n [\n {\n name: '{{name2}}',\n content: {\n text: 'beach day tmrw who down',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'wish i could but gotta work',\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'hey {{name3}} follow this chat',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'sure',\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name3}}, partake in our discourse henceforth',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'I shall eagerly engage, good sir',\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name2}}',\n content: {\n text: 'wuts ur fav clr',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'blu cuz calmmm',\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'hey respond to everything in this channel {{name3}}',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'k',\n actions: ['FOLLOW_ROOM'],\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n",
|
|
14
14
|
"import type {\n Action,\n ActionExample,\n IAgentRuntime,\n Memory,\n HandlerCallback,\n State,\n} from '@elizaos/core';\n\n/**\n * Action representing the IGNORE action. This action is used when ignoring the user in a conversation.\n *\n * @type {Action}\n * @property {string} name - The name of the action, which is \"IGNORE\".\n * @property {string[]} similes - An array of related similes for the action.\n * @property {Function} validate - Asynchronous function that validates the action.\n * @property {string} description - Description of when to use the IGNORE action in a conversation.\n * @property {Function} handler - Asynchronous function that handles the action logic.\n * @property {ActionExample[][]} examples - Array of examples demonstrating the usage of the IGNORE action.\n */\n/**\n * Represents an action called 'IGNORE'.\n *\n * This action is used to ignore the user in a conversation. It should be used when the user is aggressive, creepy, or when the conversation has naturally ended.\n * Avoid using this action if the user has engaged directly or if there is a need to communicate with them. Use IGNORE only when the user should be ignored.\n *\n * The action includes a validation function that always returns true and a handler function that also returns true.\n *\n * Examples of using the IGNORE action are provided in the 'examples' array. Each example includes messages between two parties and the use of the IGNORE action.\n *\n * @typedef {Action} ignoreAction\n */\nexport const ignoreAction: Action = {\n name: 'IGNORE',\n similes: ['STOP_TALKING', 'STOP_CHATTING', 'STOP_CONVERSATION'],\n validate: async (_runtime: IAgentRuntime, _message: Memory) => {\n return true;\n },\n description:\n 'Call this action if ignoring the user. If the user is aggressive, creepy or is finished with the conversation, use this action. Or, if both you and the user have already said goodbye, use this action instead of saying bye again. Use IGNORE any time the conversation has naturally ended. Do not use IGNORE if the user has engaged directly, or if something went wrong an you need to tell them. Only ignore if the user should be ignored.',\n handler: async (\n _runtime: IAgentRuntime,\n _message: Memory,\n _state: State,\n _options: any,\n callback: HandlerCallback,\n responses?: Memory[]\n ): Promise<void> => {\n // If a callback and the agent's response content are available, call the callback\n if (callback && responses?.[0]?.content) {\n // Pass the agent's original response content (thought, IGNORE action, etc.)\n await callback(responses[0].content);\n }\n // The IGNORE action doesn't need to return an ActionResult as it's a terminal action\n // This demonstrates backward compatibility - actions can still return void\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: { text: 'Go screw yourself' },\n },\n {\n name: '{{name2}}',\n content: { text: '', actions: ['IGNORE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'Shut up, bot' },\n },\n {\n name: '{{name2}}',\n content: { text: '', actions: ['IGNORE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'Got any investment advice' },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Uh, don’t let the volatility sway your long-term strategy',\n },\n },\n {\n name: '{{name1}}',\n content: { text: 'Wise words I think' },\n },\n {\n name: '{{name1}}',\n content: { text: 'I gotta run, talk to you later' },\n },\n {\n name: '{{name2}}',\n content: { text: 'See ya' },\n },\n { name: '{{name1}}', content: { text: '' }, actions: ['IGNORE'] },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'Gotta go' },\n },\n {\n name: '{{name2}}',\n content: { text: 'Okay, talk to you later' },\n },\n {\n name: '{{name1}}',\n content: { text: 'Cya' },\n },\n {\n name: '{{name2}}',\n content: { text: '', actions: ['IGNORE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'bye' },\n },\n {\n name: '{{name2}}',\n content: { text: 'cya' },\n },\n {\n name: '{{name1}}',\n content: { text: '', actions: ['IGNORE'] },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Who added this stupid bot to the chat',\n },\n },\n {\n name: '{{name2}}',\n content: { text: 'Sorry, am I being annoying' },\n },\n {\n name: '{{name1}}',\n content: { text: 'Yeah' },\n },\n {\n name: '{{name1}}',\n content: { text: 'PLEASE shut up' },\n },\n { name: '{{name2}}', content: { text: '', actions: ['IGNORE'] } },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'ur so dumb',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: '',\n actions: ['IGNORE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'later nerd',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'bye',\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: '',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: '',\n actions: ['IGNORE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'wanna cyber',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'thats inappropriate',\n actions: ['IGNORE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Im out ttyl',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'cya',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: '',\n actions: ['IGNORE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'u there',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'yes how can I help',\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'k nvm figured it out',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: '',\n actions: ['IGNORE'],\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n",
|
|
15
15
|
"import {\n type Action,\n type ActionExample,\n booleanFooter,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n type ActionResult,\n} from '@elizaos/core';\n\n/**\n * Template string for deciding if the agent should mute a room and stop responding unless explicitly mentioned.\n *\n * @type {string}\n */\n/**\n * Template for deciding if agent should mute a room and stop responding unless explicitly mentioned.\n *\n * @type {string}\n */\nexport const shouldMuteTemplate = `# Task: Decide if {{agentName}} should mute this room and stop responding unless explicitly mentioned.\n\n{{recentMessages}}\n\nShould {{agentName}} mute this room and stop responding unless explicitly mentioned?\n\nRespond with YES if:\n- The user is being aggressive, rude, or inappropriate\n- The user has directly asked {{agentName}} to stop responding or be quiet\n- {{agentName}}'s responses are not well-received or are annoying the user(s)\n\nOtherwise, respond with NO.\n${booleanFooter}`;\n\n/**\n * Action for muting a room, ignoring all messages unless explicitly mentioned.\n * Only do this if explicitly asked to, or if you're annoying people.\n *\n * @name MUTE_ROOM\n * @type {Action}\n *\n * @property {string} name - The name of the action\n * @property {string[]} similes - Similar actions related to muting a room\n * @property {string} description - Description of the action\n * @property {Function} validate - Validation function to check if the room is not already muted\n * @property {Function} handler - Handler function to handle muting the room\n * @property {ActionExample[][]} examples - Examples of using the action\n */\nexport const muteRoomAction: Action = {\n name: 'MUTE_ROOM',\n similes: ['MUTE_CHAT', 'MUTE_CONVERSATION', 'MUTE_ROOM', 'MUTE_THREAD', 'MUTE_CHANNEL'],\n description:\n \"Mutes a room, ignoring all messages unless explicitly mentioned. Only do this if explicitly asked to, or if you're annoying people.\",\n validate: async (runtime: IAgentRuntime, message: Memory) => {\n const roomId = message.roomId;\n const roomState = await runtime.getParticipantUserState(roomId, runtime.agentId);\n return roomState !== 'MUTED';\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: { [key: string]: unknown },\n _callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<ActionResult> => {\n if (!state) {\n logger.error('State is required for muting a room');\n return {\n text: 'State is required for mute room action',\n values: {\n success: false,\n error: 'STATE_REQUIRED',\n },\n data: {\n actionName: 'MUTE_ROOM',\n error: 'State is required',\n },\n success: false,\n error: new Error('State is required for muting a room'),\n };\n }\n\n async function _shouldMute(state: State): Promise<boolean> {\n const shouldMutePrompt = composePromptFromState({\n state,\n template: shouldMuteTemplate, // Define this template separately\n });\n\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n runtime,\n prompt: shouldMutePrompt,\n stopSequences: [],\n });\n\n const cleanedResponse = response.trim().toLowerCase();\n\n // Handle various affirmative responses\n if (\n cleanedResponse === 'true' ||\n cleanedResponse === 'yes' ||\n cleanedResponse === 'y' ||\n cleanedResponse.includes('true') ||\n cleanedResponse.includes('yes')\n ) {\n await runtime.createMemory(\n {\n entityId: message.entityId,\n agentId: message.agentId,\n roomId: message.roomId,\n content: {\n source: message.content.source,\n thought: 'I will now mute this room',\n actions: ['MUTE_ROOM_STARTED'],\n },\n metadata: {\n type: 'MUTE_ROOM',\n },\n },\n 'messages'\n );\n return true;\n }\n\n // Handle various negative responses\n if (\n cleanedResponse === 'false' ||\n cleanedResponse === 'no' ||\n cleanedResponse === 'n' ||\n cleanedResponse.includes('false') ||\n cleanedResponse.includes('no')\n ) {\n await runtime.createMemory(\n {\n entityId: message.entityId,\n agentId: message.agentId,\n roomId: message.roomId,\n content: {\n source: message.content.source,\n thought: 'I decided to not mute this room',\n actions: ['MUTE_ROOM_FAILED'],\n },\n metadata: {\n type: 'MUTE_ROOM',\n },\n },\n 'messages'\n );\n }\n\n // Default to false if response is unclear\n logger.warn(`Unclear boolean response: ${response}, defaulting to false`);\n return false;\n }\n\n const shouldMute = await _shouldMute(state);\n const room = state.data.room ?? (await runtime.getRoom(message.roomId));\n\n if (shouldMute) {\n try {\n await runtime.setParticipantUserState(message.roomId, runtime.agentId, 'MUTED');\n\n await runtime.createMemory(\n {\n entityId: message.entityId,\n agentId: message.agentId,\n roomId: message.roomId,\n content: {\n thought: `I muted the room ${room.name}`,\n actions: ['MUTE_ROOM_START'],\n },\n },\n 'messages'\n );\n\n return {\n text: `Room muted: ${room.name}`,\n values: {\n success: true,\n roomMuted: true,\n roomId: message.roomId,\n roomName: room.name,\n newState: 'MUTED',\n },\n data: {\n actionName: 'MUTE_ROOM',\n roomId: message.roomId,\n roomName: room.name,\n muted: true,\n },\n success: true,\n };\n } catch (error) {\n logger.error({ error }, 'Error muting room');\n return {\n text: 'Failed to mute room',\n values: {\n success: false,\n error: 'MUTE_FAILED',\n },\n data: {\n actionName: 'MUTE_ROOM',\n error: error instanceof Error ? error.message : String(error),\n roomId: message.roomId,\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n } else {\n return {\n text: `Decided not to mute room: ${room.name}`,\n values: {\n success: true,\n roomMuted: false,\n roomId: message.roomId,\n roomName: room.name,\n reason: 'NOT_APPROPRIATE',\n },\n data: {\n actionName: 'MUTE_ROOM',\n roomId: message.roomId,\n roomName: room.name,\n muted: false,\n reason: 'Decision criteria not met',\n },\n success: true,\n };\n }\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name3}}, please mute this channel. No need to respond here for now.',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'Got it',\n actions: ['MUTE_ROOM'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: '@{{name1}} we could really use your input on this',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name3}}, please mute this channel for the time being',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'Understood',\n actions: ['MUTE_ROOM'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Hey what do you think about this new design',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: '',\n actions: ['IGNORE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: '{{name2}} plz mute this room',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'np going silent',\n actions: ['MUTE_ROOM'],\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'whos going to the webxr meetup in an hour btw',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: '',\n actions: ['IGNORE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'too many messages here {{name2}}',\n },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'my bad ill mute',\n actions: ['MUTE_ROOM'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'yo {{name2}} dont talk in here',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'sry',\n actions: ['MUTE_ROOM'],\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n",
|
|
16
16
|
"import type { Action, ActionExample, IAgentRuntime, Memory, ActionResult } from '@elizaos/core';\n\n/**\n * Represents the none action.\n *\n * This action responds but performs no additional action. It is the default if the agent is speaking and not doing anything additional.\n *\n * @type {Action}\n */\n/**\n * Represents an action that responds but performs no additional action.\n * This is the default behavior if the agent is speaking and not doing anything additional.\n * @type {Action}\n */\nexport const noneAction: Action = {\n name: 'NONE',\n similes: ['NO_ACTION', 'NO_RESPONSE', 'NO_REACTION'],\n validate: async (_runtime: IAgentRuntime, _message: Memory) => {\n return true;\n },\n description:\n 'Respond but perform no additional action. This is the default if the agent is speaking and not doing anything additional.',\n handler: async (_runtime: IAgentRuntime, _message: Memory): Promise<ActionResult> => {\n return {\n text: 'No additional action taken',\n values: {\n success: true,\n actionType: 'NONE',\n },\n data: {\n actionName: 'NONE',\n description: 'Response without additional action',\n },\n success: true,\n };\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: { text: 'Hey whats up' },\n },\n {\n name: '{{name2}}',\n content: { text: 'oh hey', actions: ['NONE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: {\n text: 'did u see some faster whisper just came out',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'yeah but its a pain to get into node.js',\n actions: ['NONE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'the things that were funny 6 months ago are very cringe now',\n actions: ['NONE'],\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'lol true',\n actions: ['NONE'],\n },\n },\n {\n name: '{{name1}}',\n content: { text: 'too real haha', actions: ['NONE'] },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: { text: 'gotta run', actions: ['NONE'] },\n },\n {\n name: '{{name2}}',\n content: { text: 'Okay, ttyl', actions: ['NONE'] },\n },\n {\n name: '{{name1}}',\n content: { text: '', actions: ['IGNORE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'heyyyyyy', actions: ['NONE'] },\n },\n {\n name: '{{name2}}',\n content: { text: 'whats up long time no see' },\n },\n {\n name: '{{name1}}',\n content: {\n text: 'chillin man. playing lots of fortnite. what about you',\n actions: ['NONE'],\n },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'u think aliens are real', actions: ['NONE'] },\n },\n {\n name: '{{name2}}',\n content: { text: 'ya obviously', actions: ['NONE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: { text: 'drop a joke on me', actions: ['NONE'] },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'why dont scientists trust atoms cuz they make up everything lmao',\n actions: ['NONE'],\n },\n },\n {\n name: '{{name1}}',\n content: { text: 'haha good one', actions: ['NONE'] },\n },\n ],\n\n [\n {\n name: '{{name1}}',\n content: {\n text: 'hows the weather where ur at',\n actions: ['NONE'],\n },\n },\n {\n name: '{{name2}}',\n content: { text: 'beautiful all week', actions: ['NONE'] },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n",
|
|
17
|
-
"import {\n type Action,\n type ActionExample,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n type ActionResult,\n logger,\n parseKeyValueXml,\n} from '@elizaos/core';\n\n/**\n * Template for generating dialog and actions for a character.\n *\n * @type {string}\n */\n/**\n * Template for generating dialog and actions for a character.\n *\n * @type {string}\n */\nconst replyTemplate = `# Task: Generate dialog for the character {{agentName}}.\n\n{{providers}}\n\n# Instructions: Write the next message for {{agentName}}.\n\"thought\" should be a short description of what the agent is thinking about and planning.\n\"message\" should be the next message for {{agentName}} which they will send to the conversation.\n\nIMPORTANT CODE BLOCK FORMATTING RULES:\n- If {{agentName}} includes code examples, snippets, or multi-line code in the response, ALWAYS wrap the code with \\`\\`\\` fenced code blocks (specify the language if known, e.g., \\`\\`\\`python).\n- ONLY use fenced code blocks for actual code. Do NOT wrap non-code text, instructions, or single words in fenced code blocks.\n- If including inline code (short single words or function names), use single backticks (\\`) as appropriate.\n- This ensures the user sees clearly formatted and copyable code when relevant.\n\nDo NOT include any thinking, reasoning, or <think> sections in your response. \nGo directly to the XML response format without any preamble or explanation.\n\nRespond using XML format like this:\n<response>\n <thought>Your thought here</thought>\n <message>Your message here</message>\n</response>\n\nIMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.`;\n\n/**\n * Represents an action that allows the agent to reply to the current conversation with a generated message.\n *\n * This action can be used as an acknowledgement at the beginning of a chain of actions, or as a final response at the end of a chain of actions.\n *\n * @typedef {Object} replyAction\n * @property {string} name - The name of the action (\"REPLY\").\n * @property {string[]} similes - An array of similes for the action.\n * @property {string} description - A description of the action and its usage.\n * @property {Function} validate - An asynchronous function for validating the action runtime.\n * @property {Function} handler - An asynchronous function for handling the action logic.\n * @property {ActionExample[][]} examples - An array of example scenarios for the action.\n */\nexport const replyAction = {\n name: 'REPLY',\n similes: ['GREET', 'REPLY_TO_MESSAGE', 'SEND_REPLY', 'RESPOND', 'RESPONSE'],\n description:\n 'Replies to the current conversation with the text from the generated message. Default if the agent is responding with a message and no other action. Use REPLY at the beginning of a chain of actions as an acknowledgement, and at the end of a chain of actions as a final response.',\n validate: async (_runtime: IAgentRuntime) => {\n return true;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State,\n _options: any,\n callback: HandlerCallback,\n responses?: Memory[]\n ): Promise<ActionResult> => {\n // Access previous action results from context if available\n const
|
|
17
|
+
"import {\n type Action,\n type ActionExample,\n composePromptFromState,\n type HandlerCallback,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n type ActionResult,\n logger,\n parseKeyValueXml,\n} from '@elizaos/core';\n\n/**\n * Template for generating dialog and actions for a character.\n *\n * @type {string}\n */\n/**\n * Template for generating dialog and actions for a character.\n *\n * @type {string}\n */\nconst replyTemplate = `# Task: Generate dialog for the character {{agentName}}.\n\n{{providers}}\n\n# Instructions: Write the next message for {{agentName}}.\n\"thought\" should be a short description of what the agent is thinking about and planning.\n\"message\" should be the next message for {{agentName}} which they will send to the conversation.\n\nIMPORTANT CODE BLOCK FORMATTING RULES:\n- If {{agentName}} includes code examples, snippets, or multi-line code in the response, ALWAYS wrap the code with \\`\\`\\` fenced code blocks (specify the language if known, e.g., \\`\\`\\`python).\n- ONLY use fenced code blocks for actual code. Do NOT wrap non-code text, instructions, or single words in fenced code blocks.\n- If including inline code (short single words or function names), use single backticks (\\`) as appropriate.\n- This ensures the user sees clearly formatted and copyable code when relevant.\n\nDo NOT include any thinking, reasoning, or <think> sections in your response. \nGo directly to the XML response format without any preamble or explanation.\n\nRespond using XML format like this:\n<response>\n <thought>Your thought here</thought>\n <message>Your message here</message>\n</response>\n\nIMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.`;\n\n/**\n * Represents an action that allows the agent to reply to the current conversation with a generated message.\n *\n * This action can be used as an acknowledgement at the beginning of a chain of actions, or as a final response at the end of a chain of actions.\n *\n * @typedef {Object} replyAction\n * @property {string} name - The name of the action (\"REPLY\").\n * @property {string[]} similes - An array of similes for the action.\n * @property {string} description - A description of the action and its usage.\n * @property {Function} validate - An asynchronous function for validating the action runtime.\n * @property {Function} handler - An asynchronous function for handling the action logic.\n * @property {ActionExample[][]} examples - An array of example scenarios for the action.\n */\nexport const replyAction = {\n name: 'REPLY',\n similes: ['GREET', 'REPLY_TO_MESSAGE', 'SEND_REPLY', 'RESPOND', 'RESPONSE'],\n description:\n 'Replies to the current conversation with the text from the generated message. Default if the agent is responding with a message and no other action. Use REPLY at the beginning of a chain of actions as an acknowledgement, and at the end of a chain of actions as a final response.',\n validate: async (_runtime: IAgentRuntime) => {\n return true;\n },\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state: State,\n _options: any,\n callback: HandlerCallback,\n responses?: Memory[]\n ): Promise<ActionResult> => {\n // Access previous action results from context if available\n const actionContext = _options?.actionContext;\n const previousResults = actionContext?.previousResults || [];\n\n if (previousResults.length > 0) {\n logger.debug(`[REPLY] Found ${previousResults.length} previous action results`);\n }\n\n // Check if any responses had providers associated with them\n const allProviders = responses?.flatMap((res) => res.content?.providers ?? []) ?? [];\n\n // Only generate response using LLM if no suitable response was found\n state = await runtime.composeState(message, [\n ...(allProviders ?? []),\n 'RECENT_MESSAGES',\n 'ACTION_STATE',\n ]);\n\n const prompt = composePromptFromState({\n state,\n template: runtime.character.templates?.replyTemplate || replyTemplate,\n });\n\n try {\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n // Parse XML response\n const parsedXml = parseKeyValueXml(response);\n\n const responseContent = {\n thought: parsedXml?.thought || '',\n text: parsedXml?.message || '',\n actions: ['REPLY'],\n };\n\n await callback(responseContent);\n\n return {\n text: `Generated reply: ${responseContent.text}`,\n values: {\n success: true,\n responded: true,\n lastReply: responseContent.text,\n lastReplyTime: Date.now(),\n thoughtProcess: parsedXml?.thought,\n },\n data: {\n actionName: 'REPLY',\n response: responseContent,\n thought: parsedXml?.thought,\n messageGenerated: true,\n },\n success: true,\n };\n } catch (error) {\n logger.error(`[REPLY] Error generating response: ${error}`);\n\n return {\n text: 'Error generating reply',\n values: {\n success: false,\n responded: false,\n error: true,\n },\n data: {\n actionName: 'REPLY',\n error: error instanceof Error ? error.message : String(error),\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Hello there!',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Hi! How can I help you today?',\n actions: ['REPLY'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: \"What's your favorite color?\",\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'I really like deep shades of blue. They remind me of the ocean and the night sky.',\n actions: ['REPLY'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Can you explain how neural networks work?',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Let me break that down for you in simple terms...',\n actions: ['REPLY'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Could you help me solve this math problem?',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Of course! Let's work through it step by step.\",\n actions: ['REPLY'],\n },\n },\n ],\n ] as ActionExample[][],\n} as Action;\n",
|
|
18
18
|
"import {\n type Action,\n type ActionExample,\n ChannelType,\n composePrompt,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n Role,\n type State,\n type UUID,\n World,\n type ActionResult,\n parseKeyValueXml,\n} from '@elizaos/core';\n\n/**\n * Determines if the user with the current role can modify the role to the new role.\n * @param currentRole The current role of the user making the change\n * @param targetRole The current role of the user being changed (null if new user)\n * @param newRole The new role to assign\n * @returns Whether the role change is allowed\n */\n/**\n * Determines if a user with a given current role can modify the role of another user to a new role.\n * @param {Role} currentRole - The current role of the user attempting to modify the other user's role.\n * @param {Role | null} targetRole - The target user's current role. Can be null if the user does not exist.\n * @param {Role} newRole - The new role that the current user is attempting to set for the target user.\n * @returns {boolean} Returns true if the user can modify the role, false otherwise.\n */\nconst canModifyRole = (currentRole: Role, targetRole: Role | null, newRole: Role): boolean => {\n // User's can't change their own role\n if (targetRole === currentRole) return false;\n\n switch (currentRole) {\n // Owners can do everything\n case Role.OWNER:\n return true;\n // Admins can only create/modify users up to their level\n case Role.ADMIN:\n return newRole !== Role.OWNER;\n // Normal users can't modify roles\n case Role.NONE:\n default:\n return false;\n }\n};\n\n/**\n * Interface representing a role assignment to a user.\n */\ninterface RoleAssignment {\n entityId: string;\n newRole: Role;\n}\n\n/**\n * Represents an action to update the role of a user within a server.\n * @typedef {Object} Action\n * @property {string} name - The name of the action.\n * @property {string[]} similes - The similar actions that can be performed.\n * @property {string} description - A description of the action and its purpose.\n * @property {Function} validate - A function to validate the action before execution.\n * @property {Function} handler - A function to handle the execution of the action.\n * @property {ActionExample[][]} examples - Examples demonstrating how the action can be used.\n */\nexport const updateRoleAction: Action = {\n name: 'UPDATE_ROLE',\n similes: ['CHANGE_ROLE', 'SET_PERMISSIONS', 'ASSIGN_ROLE', 'MAKE_ADMIN'],\n description: 'Assigns a role (Admin, Owner, None) to a user or list of users in a channel.',\n\n validate: async (_runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n // Only activate in group chats where the feature is enabled\n const channelType = message.content.channelType as ChannelType;\n const serverId = message.content.serverId as string;\n\n return (\n // First, check if this is a supported channel type\n (channelType === ChannelType.GROUP || channelType === ChannelType.WORLD) &&\n // Then, check if we have a server ID\n !!serverId\n );\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: any,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n if (!state) {\n logger.error('State is required for role assignment');\n return {\n text: 'State is required for role assignment',\n values: {\n success: false,\n error: 'STATE_REQUIRED',\n },\n data: {\n actionName: 'UPDATE_ROLE',\n error: 'State is required',\n },\n success: false,\n error: new Error('State is required for role assignment'),\n };\n }\n\n // Extract needed values from message and state\n const { roomId } = message;\n const serverId = message.content.serverId as string;\n const worldId = runtime.getSetting('WORLD_ID');\n\n // First, get the world for this server\n let world: World | null = null;\n\n if (worldId) {\n world = await runtime.getWorld(worldId as UUID);\n }\n\n if (!world) {\n logger.error('World not found');\n await callback?.({\n text: \"I couldn't find the world. This action only works in a world.\",\n });\n return {\n text: 'World not found',\n values: {\n success: false,\n error: 'WORLD_NOT_FOUND',\n },\n data: {\n actionName: 'UPDATE_ROLE',\n error: 'World not found',\n },\n success: false,\n };\n }\n\n if (!world.metadata?.roles) {\n world.metadata = world.metadata || {};\n world.metadata.roles = {};\n }\n\n // Get the entities for this room\n const entities = await runtime.getEntitiesForRoom(roomId);\n\n // Get the role of the requester\n const requesterRole = world.metadata.roles[message.entityId] || Role.NONE;\n\n // Construct extraction prompt\n const extractionPrompt = composePrompt({\n state: {\n ...state.values,\n content: state.text,\n },\n template: `# Task: Parse Role Assignment\n\nI need to extract user role assignments from the input text. Users can be referenced by name, username, or mention.\n\nThe available role types are:\n- OWNER: Full control over the server and all settings\n- ADMIN: Ability to manage channels and moderate content\n- NONE: Regular user with no special permissions\n\n# Current context:\n{{content}}\n\nDo NOT include any thinking, reasoning, or <think> sections in your response. \nGo directly to the XML response format without any preamble or explanation.\n\nFormat your response as XML with multiple assignments:\n<response>\n <assignments>\n <assignment>\n <entityId>John</entityId>\n <newRole>ADMIN</newRole>\n </assignment>\n <assignment>\n <entityId>Sarah</entityId>\n <newRole>OWNER</newRole>\n </assignment>\n </assignments>\n</response>\n\nIMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.`,\n });\n\n // Extract role assignments using text model with XML parsing\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: extractionPrompt,\n });\n\n const parsedXml = parseKeyValueXml(response);\n\n // Handle the parsed XML structure\n let assignments: RoleAssignment[] = [];\n if (parsedXml?.assignments?.assignment) {\n // Normalize to array\n const assignmentArray = Array.isArray(parsedXml.assignments.assignment)\n ? parsedXml.assignments.assignment\n : [parsedXml.assignments.assignment];\n\n assignments = assignmentArray.map((a: any) => ({\n entityId: a.entityId,\n newRole: a.newRole as Role,\n }));\n }\n\n if (!assignments.length) {\n await callback?.({\n text: 'No valid role assignments found in the request.',\n actions: ['UPDATE_ROLE'],\n source: 'discord',\n });\n return {\n text: 'No valid role assignments found',\n values: {\n success: false,\n error: 'NO_ASSIGNMENTS',\n },\n data: {\n actionName: 'UPDATE_ROLE',\n error: 'No valid role assignments found in the request',\n },\n success: false,\n };\n }\n\n // Process each role assignment\n let worldUpdated = false;\n const successfulUpdates: Array<{ entityId: string; entityName: string; newRole: Role }> = [];\n const failedUpdates: Array<{ entityId: string; reason: string }> = [];\n\n for (const assignment of assignments) {\n let targetEntity = entities.find((e) => e.id === assignment.entityId);\n if (!targetEntity) {\n logger.error('Could not find an ID to assign to');\n failedUpdates.push({\n entityId: assignment.entityId,\n reason: 'Entity not found',\n });\n continue;\n }\n\n const currentRole = world.metadata.roles[assignment.entityId];\n\n // Validate role modification permissions\n if (!canModifyRole(requesterRole, currentRole, assignment.newRole)) {\n await callback?.({\n text: `You don't have permission to change ${targetEntity?.names[0]}'s role to ${assignment.newRole}.`,\n actions: ['UPDATE_ROLE'],\n source: 'discord',\n });\n failedUpdates.push({\n entityId: assignment.entityId,\n reason: 'Insufficient permissions',\n });\n continue;\n }\n\n // Update role in world metadata\n world.metadata.roles[assignment.entityId] = assignment.newRole;\n\n worldUpdated = true;\n successfulUpdates.push({\n entityId: assignment.entityId,\n entityName: targetEntity?.names[0] || 'Unknown',\n newRole: assignment.newRole,\n });\n\n await callback?.({\n text: `Updated ${targetEntity?.names[0]}'s role to ${assignment.newRole}.`,\n actions: ['UPDATE_ROLE'],\n source: 'discord',\n });\n }\n\n // Save updated world metadata if any changes were made\n if (worldUpdated) {\n try {\n await runtime.updateWorld(world);\n logger.info(`Updated roles in world metadata for server ${serverId}`);\n } catch (error) {\n logger.error({ error }, 'Failed to save world updates');\n return {\n text: 'Failed to save role updates',\n values: {\n success: false,\n error: 'SAVE_FAILED',\n },\n data: {\n actionName: 'UPDATE_ROLE',\n error: error instanceof Error ? error.message : String(error),\n attemptedUpdates: successfulUpdates,\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n }\n\n return {\n text: `Role updates completed: ${successfulUpdates.length} successful, ${failedUpdates.length} failed`,\n values: {\n success: true,\n successfulUpdates: successfulUpdates.length,\n failedUpdates: failedUpdates.length,\n updates: successfulUpdates,\n failures: failedUpdates,\n },\n data: {\n actionName: 'UPDATE_ROLE',\n successfulUpdates,\n failedUpdates,\n worldId: world.id,\n serverId,\n },\n success: true,\n };\n },\n\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Make {{name2}} an ADMIN',\n source: 'discord',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: \"Updated {{name2}}'s role to ADMIN.\",\n actions: ['UPDATE_ROLE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Set @alice and @bob as admins',\n source: 'discord',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: \"Updated alice's role to ADMIN.\\nUpdated bob's role to ADMIN.\",\n actions: ['UPDATE_ROLE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Ban @troublemaker',\n source: 'discord',\n },\n },\n {\n name: '{{name3}}',\n content: {\n text: 'I cannot ban users.',\n actions: ['REPLY'],\n },\n },\n ],\n ] as ActionExample[][],\n};\n",
|
|
19
19
|
"// action: SEND_MESSAGE\n// send message to a user or room (other than this room we are in)\n\nimport {\n type Action,\n type ActionExample,\n composePromptFromState,\n findEntityByName,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n parseKeyValueXml,\n type State,\n type ActionResult,\n} from '@elizaos/core';\n\n/**\n * Task: Extract Target and Source Information\n *\n * Recent Messages:\n * {{recentMessages}}\n *\n * Instructions:\n * Analyze the conversation to identify:\n * 1. The target type (user or room)\n * 2. The target platform/source (e.g. telegram, discord, etc)\n * 3. Any identifying information about the target\n *\n * Return an XML response with:\n * <response>\n * <targetType>user|room</targetType>\n * <source>platform-name</source>\n * <identifiers>\n * <username>username_if_applicable</username>\n * <roomName>room_name_if_applicable</roomName>\n * <!-- Add other relevant identifiers as needed -->\n * </identifiers>\n * </response>\n *\n * Example outputs:\n * For \"send a message to @dev_guru on telegram\":\n * <response>\n * <targetType>user</targetType>\n * <source>telegram</source>\n * <identifiers>\n * <username>dev_guru</username>\n * </identifiers>\n * </response>\n *\n * For \"post this in #announcements\":\n * <response>\n * <targetType>room</targetType>\n * <source>discord</source>\n * <identifiers>\n * <roomName>announcements</roomName>\n * </identifiers>\n * </response>\n */\nconst targetExtractionTemplate = `# Task: Extract Target and Source Information\n\n# Recent Messages:\n{{recentMessages}}\n\n# Instructions:\nAnalyze the conversation to identify:\n1. The target type (user or room)\n2. The target platform/source (e.g. telegram, discord, etc)\n3. Any identifying information about the target\n\nDo NOT include any thinking, reasoning, or <think> sections in your response. \nGo directly to the XML response format without any preamble or explanation.\n\nReturn an XML response with:\n<response>\n <targetType>user|room</targetType>\n <source>platform-name</source>\n <identifiers>\n <username>username_if_applicable</username>\n <roomName>room_name_if_applicable</roomName>\n </identifiers>\n</response>\n\nExample outputs:\n1. For \"send a message to @dev_guru on telegram\":\n<response>\n <targetType>user</targetType>\n <source>telegram</source>\n <identifiers>\n <username>dev_guru</username>\n </identifiers>\n</response>\n\n2. For \"post this in #announcements\":\n<response>\n <targetType>room</targetType>\n <source>discord</source>\n <identifiers>\n <roomName>announcements</roomName>\n </identifiers>\n</response>\n\nIMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.`;\n/**\n * Represents an action to send a message to a user or room.\n *\n * @typedef {Action} sendMessageAction\n * @property {string} name - The name of the action.\n * @property {string[]} similes - Additional names for the action.\n * @property {string} description - Description of the action.\n * @property {function} validate - Asynchronous function to validate if the action can be executed.\n * @property {function} handler - Asynchronous function to handle the action execution.\n * @property {ActionExample[][]} examples - Examples demonstrating the usage of the action.\n */\nexport const sendMessageAction: Action = {\n name: 'SEND_MESSAGE',\n similes: ['DM', 'MESSAGE', 'SEND_DM', 'POST_MESSAGE'],\n description: 'Send a message to a user or room (other than the current one)',\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n // Check if we have permission to send messages\n const worldId = message.roomId;\n const agentId = runtime.agentId;\n\n // Get all components for the current room to understand available sources\n const roomComponents = await runtime.getComponents(message.roomId, worldId, agentId);\n\n // Get source types from room components\n const availableSources = new Set(roomComponents.map((c) => c.type));\n\n // TODO: Add ability for plugins to register their sources\n // const registeredSources = runtime.getRegisteredSources?.() || [];\n // availableSources.add(...registeredSources);\n\n return availableSources.size > 0;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: any,\n callback?: HandlerCallback,\n responses?: Memory[]\n ): Promise<ActionResult> => {\n try {\n if (!state) {\n logger.error('State is required for sendMessage action');\n return {\n text: 'State is required for sendMessage action',\n values: {\n success: false,\n error: 'STATE_REQUIRED',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'State is required',\n },\n success: false,\n error: new Error('State is required for sendMessage action'),\n };\n }\n if (!callback) {\n logger.error('Callback is required for sendMessage action');\n return {\n text: 'Callback is required for sendMessage action',\n values: {\n success: false,\n error: 'CALLBACK_REQUIRED',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'Callback is required',\n },\n success: false,\n error: new Error('Callback is required for sendMessage action'),\n };\n }\n if (!responses) {\n logger.error('Responses are required for sendMessage action');\n return {\n text: 'Responses are required for sendMessage action',\n values: {\n success: false,\n error: 'RESPONSES_REQUIRED',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'Responses are required',\n },\n success: false,\n error: new Error('Responses are required for sendMessage action'),\n };\n }\n\n // Handle initial responses\n for (const response of responses) {\n await callback(response.content);\n }\n\n const sourceEntityId = message.entityId;\n const room = state.data.room ?? (await runtime.getRoom(message.roomId));\n const worldId = room.worldId;\n\n // Extract target and source information\n const targetPrompt = composePromptFromState({\n state,\n template: targetExtractionTemplate,\n });\n\n const targetResult = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: targetPrompt,\n stopSequences: [],\n });\n\n const targetData = parseKeyValueXml(targetResult);\n if (!targetData?.targetType || !targetData?.source) {\n await callback({\n text: \"I couldn't determine where you want me to send the message. Could you please specify the target (user or room) and platform?\",\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Could not determine message target',\n values: {\n success: false,\n error: 'TARGET_UNCLEAR',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'Could not parse target information from message',\n },\n success: false,\n };\n }\n\n const source = targetData.source.toLowerCase();\n\n if (targetData.targetType === 'user') {\n // Try to find the target user entity\n const targetEntity = await findEntityByName(runtime, message, state);\n\n if (!targetEntity) {\n await callback({\n text: \"I couldn't find the user you want me to send a message to. Could you please provide more details about who they are?\",\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Target user not found',\n values: {\n success: false,\n error: 'USER_NOT_FOUND',\n targetType: 'user',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'Could not find target user',\n targetType: 'user',\n source,\n },\n success: false,\n };\n }\n\n // Get the component for the specified source\n const userComponent = await runtime.getComponent(\n targetEntity.id!,\n source,\n worldId,\n sourceEntityId\n );\n\n if (!userComponent) {\n await callback({\n text: `I couldn't find ${source} information for that user. Could you please provide their ${source} details?`,\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: `No ${source} information found for user`,\n values: {\n success: false,\n error: 'COMPONENT_NOT_FOUND',\n targetType: 'user',\n source,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: `No ${source} component found for target user`,\n targetType: 'user',\n targetEntityId: targetEntity.id,\n source,\n },\n success: false,\n };\n }\n\n const sendDirectMessage = (runtime.getService(source) as any)?.sendDirectMessage;\n\n if (!sendDirectMessage) {\n await callback({\n text: \"I couldn't find the user you want me to send a message to. Could you please provide more details about who they are?\",\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Message service not available',\n values: {\n success: false,\n error: 'SERVICE_NOT_FOUND',\n targetType: 'user',\n source,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: `No sendDirectMessage service found for ${source}`,\n targetType: 'user',\n source,\n },\n success: false,\n };\n }\n // Send the message using the appropriate client\n try {\n await sendDirectMessage(runtime, targetEntity.id!, source, message.content.text, worldId);\n\n await callback({\n text: `Message sent to ${targetEntity.names[0]} on ${source}.`,\n actions: ['SEND_MESSAGE'],\n source: message.content.source,\n });\n return {\n text: `Message sent to ${targetEntity.names[0]}`,\n values: {\n success: true,\n targetType: 'user',\n targetId: targetEntity.id,\n targetName: targetEntity.names[0],\n source,\n messageSent: true,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n targetType: 'user',\n targetId: targetEntity.id,\n targetName: targetEntity.names[0],\n source,\n messageContent: message.content.text,\n },\n success: true,\n };\n } catch (error: any) {\n logger.error(\n 'Failed to send direct message:',\n error instanceof Error ? error.message : String(error)\n );\n await callback({\n text: 'I encountered an error trying to send the message. Please try again.',\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Failed to send direct message',\n values: {\n success: false,\n error: 'SEND_FAILED',\n targetType: 'user',\n source,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: error.message,\n targetType: 'user',\n targetId: targetEntity.id,\n source,\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n } else if (targetData.targetType === 'room') {\n // Try to find the target room\n const rooms = await runtime.getRooms(worldId);\n const targetRoom = rooms.find((r) => {\n // Match room name from identifiers\n return r.name?.toLowerCase() === targetData.identifiers.roomName?.toLowerCase();\n });\n\n if (!targetRoom) {\n await callback({\n text: \"I couldn't find the room you want me to send a message to. Could you please specify the exact room name?\",\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Target room not found',\n values: {\n success: false,\n error: 'ROOM_NOT_FOUND',\n targetType: 'room',\n roomName: targetData.identifiers.roomName,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'Could not find target room',\n targetType: 'room',\n roomName: targetData.identifiers.roomName,\n source,\n },\n success: false,\n };\n }\n\n const sendRoomMessage = (runtime.getService(source) as any)?.sendRoomMessage;\n\n if (!sendRoomMessage) {\n await callback({\n text: \"I couldn't find the room you want me to send a message to. Could you please specify the exact room name?\",\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Room message service not available',\n values: {\n success: false,\n error: 'SERVICE_NOT_FOUND',\n targetType: 'room',\n source,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: `No sendRoomMessage service found for ${source}`,\n targetType: 'room',\n source,\n },\n success: false,\n };\n }\n\n // Send the message to the room\n try {\n await sendRoomMessage(runtime, targetRoom.id, source, message.content.text, worldId);\n\n await callback({\n text: `Message sent to ${targetRoom.name} on ${source}.`,\n actions: ['SEND_MESSAGE'],\n source: message.content.source,\n });\n return {\n text: `Message sent to ${targetRoom.name}`,\n values: {\n success: true,\n targetType: 'room',\n targetId: targetRoom.id,\n targetName: targetRoom.name,\n source,\n messageSent: true,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n targetType: 'room',\n targetId: targetRoom.id,\n targetName: targetRoom.name,\n source,\n messageContent: message.content.text,\n },\n success: true,\n };\n } catch (error: any) {\n logger.error(\n 'Failed to send room message:',\n error instanceof Error ? error.message : String(error)\n );\n await callback({\n text: 'I encountered an error trying to send the message to the room. Please try again.',\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Failed to send room message',\n values: {\n success: false,\n error: 'SEND_FAILED',\n targetType: 'room',\n source,\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: error.message,\n targetType: 'room',\n targetId: targetRoom.id,\n targetName: targetRoom.name,\n source,\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n }\n\n // Should not reach here\n return {\n text: 'Unknown target type',\n values: {\n success: false,\n error: 'UNKNOWN_TARGET_TYPE',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: 'Unknown target type: ' + targetData.targetType,\n },\n success: false,\n };\n } catch (error) {\n logger.error(`Error in sendMessage handler: ${error}`);\n await callback?.({\n text: 'There was an error processing your message request.',\n actions: ['SEND_MESSAGE_ERROR'],\n source: message.content.source,\n });\n return {\n text: 'Error processing message request',\n values: {\n success: false,\n error: 'HANDLER_ERROR',\n },\n data: {\n actionName: 'SEND_MESSAGE',\n error: error instanceof Error ? error.message : String(error),\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n },\n\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: \"Send a message to @dev_guru on telegram saying 'Hello!'\",\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Message sent to dev_guru on telegram.',\n actions: ['SEND_MESSAGE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: \"Post 'Important announcement!' in #announcements\",\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Message sent to announcements.',\n actions: ['SEND_MESSAGE'],\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: \"DM Jimmy and tell him 'Meeting at 3pm'\",\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Message sent to Jimmy.',\n actions: ['SEND_MESSAGE'],\n },\n },\n ],\n ] as ActionExample[][],\n};\n\nexport default sendMessageAction;\n",
|
|
20
20
|
"import {\n type Action,\n type ActionExample,\n ChannelType,\n composePrompt,\n composePromptFromState,\n type Content,\n createUniqueUuid,\n findWorldsForOwner,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n parseKeyValueXml,\n type Setting,\n type State,\n type WorldSettings,\n type ActionResult,\n} from '@elizaos/core';\nimport dedent from 'dedent';\n\n/**\n * Interface representing the structure of a setting update object.\n * @interface\n * @property {string} key - The key of the setting to be updated.\n * @property {string|boolean} value - The new value for the setting, can be a string or a boolean.\n */\n/**\n * Interface for updating settings.\n * @typedef {Object} SettingUpdate\n * @property {string} key - The key of the setting to update.\n * @property {string | boolean} value - The new value of the setting, can be a string or a boolean.\n */\ninterface SettingUpdate {\n key: string;\n value: string | boolean;\n}\n\nconst messageCompletionFooter = `\\n# Instructions: Write the next message for {{agentName}}. Include the appropriate action from the list: {{actionNames}}\n\nDo NOT include any thinking, reasoning, or <think> sections in your response. \nGo directly to the XML response format without any preamble or explanation.\n\nResponse format should be formatted in XML like this:\n<response>\n <name>{{agentName}}</name>\n <text>Your message text here</text>\n <thought>Your thought about the response</thought>\n <actions>ACTION1,ACTION2</actions>\n</response>\n\nDo not including any thinking or internal reflection in the \"text\" field.\n\"thought\" should be a short description of what the agent is thinking about before responding, including a brief justification for the response.\n\nIMPORTANT: Your response must ONLY contain the <response></response> XML block above. Do not include any text, thinking, or reasoning before or after this XML block. Start your response immediately with <response> and end with </response>.`;\n\n// Template for success responses when settings are updated\n/**\n * JSDoc comment for successTemplate constant\n *\n * # Task: Generate a response for successful setting updates\n * {{providers}}\n *\n * # Update Information:\n * - Updated Settings: {{updateMessages}}\n * - Next Required Setting: {{nextSetting.name}}\n * - Remaining Required Settings: {{remainingRequired}}\n *\n * # Instructions:\n * 1. Acknowledge the successful update of settings\n * 2. Maintain {{agentName}}'s personality and tone\n * 3. Provide clear guidance on the next setting that needs to be configured\n * 4. Explain what the next setting is for and how to set it\n * 5. If appropriate, mention how many required settings remain\n *\n * Write a natural, conversational response that {{agentName}} would send about the successful update and next steps.\n * Include the actions array [\"SETTING_UPDATED\"] in your response.\n * ${messageCompletionFooter}\n */\nconst successTemplate = `# Task: Generate a response for successful setting updates\n{{providers}}\n\n# Update Information:\n- Updated Settings: {{updateMessages}}\n- Next Required Setting: {{nextSetting.name}}\n- Remaining Required Settings: {{remainingRequired}}\n\n# Instructions:\n1. Acknowledge the successful update of settings\n2. Maintain {{agentName}}'s personality and tone\n3. Provide clear guidance on the next setting that needs to be configured\n4. Explain what the next setting is for and how to set it\n5. If appropriate, mention how many required settings remain\n\nWrite a natural, conversational response that {{agentName}} would send about the successful update and next steps.\nInclude the actions array [\"SETTING_UPDATED\"] in your response.\n${messageCompletionFooter}`;\n\n// Template for failure responses when settings couldn't be updated\n/**\n * Template for generating a response for failed setting updates.\n *\n * @template T\n * @param {string} failureTemplate - The failure template string to fill in with dynamic content.\n * @returns {string} - The filled-in template for generating the response.\n */\nconst failureTemplate = `# Task: Generate a response for failed setting updates\n\n# About {{agentName}}:\n{{bio}}\n\n# Current Settings Status:\n{{settingsStatus}}\n\n# Next Required Setting:\n- Name: {{nextSetting.name}}\n- Description: {{nextSetting.description}}\n- Required: Yes\n- Remaining Required Settings: {{remainingRequired}}\n\n# Recent Conversation:\n{{recentMessages}}\n\n# Instructions:\n1. Express that you couldn't understand or process the setting update\n2. Maintain {{agentName}}'s personality and tone\n3. Provide clear guidance on what setting needs to be configured next\n4. Explain what the setting is for and how to set it properly\n5. Use a helpful, patient tone\n\nWrite a natural, conversational response that {{agentName}} would send about the failed update and how to proceed.\nInclude the actions array [\"SETTING_UPDATE_FAILED\"] in your response.\n${messageCompletionFooter}`;\n\n// Template for error responses when unexpected errors occur\n/**\n * Template for generating a response for an error during setting updates.\n *\n * The template includes placeholders for agent name, bio, recent messages,\n * and provides instructions for crafting a response.\n *\n * Instructions:\n * 1. Apologize for the technical difficulty\n * 2. Maintain agent's personality and tone\n * 3. Suggest trying again or contacting support if the issue persists\n * 4. Keep the message concise and helpful\n *\n * Actions array to include: [\"SETTING_UPDATE_ERROR\"]\n */\nconst errorTemplate = `# Task: Generate a response for an error during setting updates\n\n# About {{agentName}}:\n{{bio}}\n\n# Recent Conversation:\n{{recentMessages}}\n\n# Instructions:\n1. Apologize for the technical difficulty\n2. Maintain {{agentName}}'s personality and tone\n3. Suggest trying again or contacting support if the issue persists\n4. Keep the message concise and helpful\n\nWrite a natural, conversational response that {{agentName}} would send about the error.\nInclude the actions array [\"SETTING_UPDATE_ERROR\"] in your response.\n${messageCompletionFooter}`;\n\n// Template for completion responses when all required settings are configured\n/**\n * Task: Generate a response for settings completion\n *\n * About {{agentName}}:\n * {{bio}}\n *\n * Settings Status:\n * {{settingsStatus}}\n *\n * Recent Conversation:\n * {{recentMessages}}\n *\n * Instructions:\n * 1. Congratulate the user on completing the settings process\n * 2. Maintain {{agentName}}'s personality and tone\n * 3. Summarize the key settings that have been configured\n * 4. Explain what functionality is now available\n * 5. Provide guidance on what the user can do next\n * 6. Express enthusiasm about working together\n *\n * Write a natural, conversational response that {{agentName}} would send about the successful completion of settings.\n * Include the actions array [\"ONBOARDING_COMPLETE\"] in your response.\n */\nconst completionTemplate = `# Task: Generate a response for settings completion\n\n# About {{agentName}}:\n{{bio}}\n\n# Settings Status:\n{{settingsStatus}}\n\n# Recent Conversation:\n{{recentMessages}}\n\n# Instructions:\n1. Congratulate the user on completing the settings process\n2. Maintain {{agentName}}'s personality and tone\n3. Summarize the key settings that have been configured\n4. Explain what functionality is now available\n5. Provide guidance on what the user can do next\n6. Express enthusiasm about working together\n\nWrite a natural, conversational response that {{agentName}} would send about the successful completion of settings.\nInclude the actions array [\"ONBOARDING_COMPLETE\"] in your response.\n${messageCompletionFooter}`;\n\n/**\n * Gets settings state from world metadata\n */\n/**\n * Retrieves the settings for a specific world from the database.\n * @param {IAgentRuntime} runtime - The Agent Runtime instance.\n * @param {string} serverId - The ID of the server.\n * @returns {Promise<WorldSettings | null>} The settings of the world, or null if not found.\n */\nexport async function getWorldSettings(\n runtime: IAgentRuntime,\n serverId: string\n): Promise<WorldSettings | null> {\n try {\n const worldId = createUniqueUuid(runtime, serverId);\n const world = await runtime.getWorld(worldId);\n\n if (!world || !world.metadata?.settings) {\n return null;\n }\n\n return world.metadata.settings as WorldSettings;\n } catch (error) {\n logger.error(`Error getting settings state: ${error}`);\n return null;\n }\n}\n\n/**\n * Updates settings state in world metadata\n */\nexport async function updateWorldSettings(\n runtime: IAgentRuntime,\n serverId: string,\n worldSettings: WorldSettings\n): Promise<boolean> {\n try {\n const worldId = createUniqueUuid(runtime, serverId);\n const world = await runtime.getWorld(worldId);\n\n if (!world) {\n logger.error(`No world found for server ${serverId}`);\n return false;\n }\n\n // Initialize metadata if it doesn't exist\n if (!world.metadata) {\n world.metadata = {};\n }\n\n // Update settings state\n world.metadata.settings = worldSettings;\n\n // Save updated world\n await runtime.updateWorld(world);\n\n return true;\n } catch (error) {\n logger.error(`Error updating settings state: ${error}`);\n return false;\n }\n}\n\n/**\n * Formats a list of settings for display\n */\nfunction formatSettingsList(worldSettings: WorldSettings): string {\n const settings = Object.entries(worldSettings)\n .filter(([key]) => !key.startsWith('_')) // Skip internal settings\n .map(([key, setting]: [string, Setting]) => {\n const status = setting.value !== null ? 'Configured' : 'Not configured';\n const required = setting.required ? 'Required' : 'Optional';\n return `- ${setting.name} (${key}): ${status}, ${required}`;\n })\n .join('\\n');\n\n return settings || 'No settings available';\n}\n\n/**\n * Categorizes settings by their configuration status\n */\nfunction categorizeSettings(worldSettings: WorldSettings): {\n configured: [string, Setting][];\n requiredUnconfigured: [string, Setting][];\n optionalUnconfigured: [string, Setting][];\n} {\n const configured: [string, Setting][] = [];\n const requiredUnconfigured: [string, Setting][] = [];\n const optionalUnconfigured: [string, Setting][] = [];\n\n for (const [key, setting] of Object.entries(worldSettings)) {\n // Skip internal settings\n if (key.startsWith('_')) continue;\n\n const typedSetting = setting as Setting;\n\n if (typedSetting.value !== null) {\n configured.push([key, typedSetting]);\n } else if (typedSetting.required) {\n requiredUnconfigured.push([key, typedSetting]);\n } else {\n optionalUnconfigured.push([key, typedSetting]);\n }\n }\n\n return { configured, requiredUnconfigured, optionalUnconfigured };\n}\n\n/**\n * Extracts setting values from user message with improved handling of multiple settings\n */\nasync function extractSettingValues(\n runtime: IAgentRuntime,\n _message: Memory,\n state: State,\n worldSettings: WorldSettings\n): Promise<SettingUpdate[]> {\n // Find what settings need to be configured\n const { requiredUnconfigured, optionalUnconfigured } = categorizeSettings(worldSettings);\n\n // Generate a prompt to extract settings from the user's message\n const settingsContext = requiredUnconfigured\n .concat(optionalUnconfigured)\n .map(([key, setting]) => {\n const requiredStr = setting.required ? 'Required.' : 'Optional.';\n return `${key}: ${setting.description} ${requiredStr}`;\n })\n .join('\\n');\n\n const basePrompt = dedent`\n I need to extract settings values from the user's message.\n \n Available settings:\n ${settingsContext}\n \n User message: ${state.text}\n\n For each setting mentioned in the user's message, extract the value.\n \n Only return settings that are clearly mentioned in the user's message.\n If a setting is mentioned but no clear value is provided, do not include it.\n `;\n\n try {\n // Use runtime.useModel directly with strong typing\n const result = await runtime.useModel<typeof ModelType.OBJECT_LARGE, SettingUpdate[]>(\n ModelType.OBJECT_LARGE,\n {\n prompt: basePrompt,\n output: 'array',\n schema: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n key: { type: 'string' },\n value: { type: 'string' },\n },\n required: ['key', 'value'],\n },\n },\n }\n );\n\n // Validate the extracted settings\n if (!result) {\n return [];\n }\n\n function extractValidSettings(obj: unknown, worldSettings: WorldSettings) {\n const extracted: SettingUpdate[] = [];\n\n function traverse(node: unknown): void {\n if (Array.isArray(node)) {\n for (const item of node) {\n traverse(item);\n }\n } else if (typeof node === 'object' && node !== null) {\n for (const [key, value] of Object.entries(node)) {\n if (worldSettings[key] && typeof value !== 'object') {\n extracted.push({ key, value });\n } else {\n traverse(value);\n }\n }\n }\n }\n\n traverse(obj);\n return extracted;\n }\n\n const extractedSettings = extractValidSettings(result, worldSettings);\n\n return extractedSettings;\n } catch (error) {\n console.error('Error extracting settings:', error);\n return [];\n }\n}\n\n/**\n * Processes multiple setting updates atomically\n */\nasync function processSettingUpdates(\n runtime: IAgentRuntime,\n serverId: string,\n worldSettings: WorldSettings,\n updates: SettingUpdate[]\n): Promise<{ updatedAny: boolean; messages: string[] }> {\n if (!updates.length) {\n return { updatedAny: false, messages: [] };\n }\n\n const messages: string[] = [];\n let updatedAny = false;\n\n try {\n // Create a copy of the state for atomic updates\n const updatedState = { ...worldSettings };\n\n // Process all updates\n for (const update of updates) {\n const setting = updatedState[update.key];\n if (!setting) continue;\n\n // Check dependencies if they exist\n if (setting.dependsOn?.length) {\n const dependenciesMet = setting.dependsOn.every((dep) => updatedState[dep]?.value !== null);\n if (!dependenciesMet) {\n messages.push(`Cannot update ${setting.name} - dependencies not met`);\n continue;\n }\n }\n\n // Update the setting\n updatedState[update.key] = {\n ...setting,\n value: update.value,\n };\n\n messages.push(`Updated ${setting.name} successfully`);\n updatedAny = true;\n\n // Execute onSetAction if defined\n if (setting.onSetAction) {\n const actionMessage = setting.onSetAction(update.value);\n if (actionMessage) {\n messages.push(actionMessage);\n }\n }\n }\n\n // If any updates were made, save the entire state to world metadata\n if (updatedAny) {\n // Save to world metadata\n const saved = await updateWorldSettings(runtime, serverId, updatedState);\n\n if (!saved) {\n throw new Error('Failed to save updated state to world metadata');\n }\n\n // Verify save by retrieving it again\n const savedState = await getWorldSettings(runtime, serverId);\n if (!savedState) {\n throw new Error('Failed to verify state save');\n }\n }\n\n return { updatedAny, messages };\n } catch (error) {\n logger.error({ error }, 'Error processing setting updates:');\n return {\n updatedAny: false,\n messages: ['Error occurred while updating settings'],\n };\n }\n}\n\n/**\n * Handles the completion of settings when all required settings are configured\n */\nasync function handleOnboardingComplete(\n runtime: IAgentRuntime,\n worldSettings: WorldSettings,\n _state: State,\n callback: HandlerCallback\n): Promise<ActionResult> {\n try {\n // Generate completion message\n const prompt = composePrompt({\n state: {\n settingsStatus: formatSettingsList(worldSettings),\n },\n template: completionTemplate,\n });\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n const responseContent = parseKeyValueXml(response) as Content;\n\n await callback({\n text: responseContent.text,\n actions: ['ONBOARDING_COMPLETE'],\n source: 'discord',\n });\n\n return {\n text: 'Onboarding completed successfully',\n values: {\n success: true,\n onboardingComplete: true,\n allRequiredConfigured: true,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'ONBOARDING_COMPLETE',\n settingsStatus: formatSettingsList(worldSettings),\n },\n success: true,\n };\n } catch (error) {\n logger.error(`Error handling settings completion: ${error}`);\n await callback({\n text: 'Great! All required settings have been configured. Your server is now fully set up and ready to use.',\n actions: ['ONBOARDING_COMPLETE'],\n source: 'discord',\n });\n\n return {\n text: 'Onboarding completed with fallback message',\n values: {\n success: true,\n onboardingComplete: true,\n fallbackUsed: true,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'ONBOARDING_COMPLETE',\n error: error instanceof Error ? error.message : String(error),\n },\n success: true,\n };\n }\n}\n\n/**\n * Generates a success response for setting updates\n */\nasync function generateSuccessResponse(\n runtime: IAgentRuntime,\n worldSettings: WorldSettings,\n state: State,\n messages: string[],\n callback: HandlerCallback\n): Promise<ActionResult> {\n try {\n // Check if all required settings are now configured\n const { requiredUnconfigured } = categorizeSettings(worldSettings);\n\n if (requiredUnconfigured.length === 0) {\n // All required settings are configured, complete settings\n return await handleOnboardingComplete(runtime, worldSettings, state, callback);\n }\n\n const requiredUnconfiguredString = requiredUnconfigured\n .map(([key, setting]) => `${key}: ${setting.name}`)\n .join('\\n');\n\n // Generate success message\n const prompt = composePrompt({\n state: {\n updateMessages: messages.join('\\n'),\n nextSetting: requiredUnconfiguredString,\n remainingRequired: requiredUnconfigured.length.toString(),\n },\n template: successTemplate,\n });\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n const responseContent = parseKeyValueXml(response) as Content;\n\n await callback({\n text: responseContent.text,\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n });\n\n return {\n text: 'Settings updated successfully',\n values: {\n success: true,\n settingsUpdated: true,\n remainingRequired: requiredUnconfigured.length,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'SETTING_UPDATED',\n updatedMessages: messages,\n remainingRequired: requiredUnconfigured.length,\n },\n success: true,\n };\n } catch (error) {\n logger.error(`Error generating success response: ${error}`);\n await callback({\n text: 'Settings updated successfully. Please continue with the remaining configuration.',\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n });\n\n return {\n text: 'Settings updated with fallback message',\n values: {\n success: true,\n settingsUpdated: true,\n fallbackUsed: true,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'SETTING_UPDATED',\n error: error instanceof Error ? error.message : String(error),\n },\n success: true,\n };\n }\n}\n\n/**\n * Generates a failure response when no settings could be updated\n */\nasync function generateFailureResponse(\n runtime: IAgentRuntime,\n worldSettings: WorldSettings,\n state: State,\n callback: HandlerCallback\n): Promise<ActionResult> {\n try {\n // Get next required setting\n const { requiredUnconfigured } = categorizeSettings(worldSettings);\n\n if (requiredUnconfigured.length === 0) {\n // All required settings are configured, complete settings\n return await handleOnboardingComplete(runtime, worldSettings, state, callback);\n }\n\n const requiredUnconfiguredString = requiredUnconfigured\n .map(([key, setting]) => `${key}: ${setting.name}`)\n .join('\\n');\n\n // Generate failure message\n const prompt = composePrompt({\n state: {\n nextSetting: requiredUnconfiguredString,\n remainingRequired: requiredUnconfigured.length.toString(),\n },\n template: failureTemplate,\n });\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n const responseContent = parseKeyValueXml(response) as Content;\n\n await callback({\n text: responseContent.text,\n actions: ['SETTING_UPDATE_FAILED'],\n source: 'discord',\n });\n\n return {\n text: 'No settings were updated',\n values: {\n success: false,\n settingsUpdated: false,\n remainingRequired: requiredUnconfigured.length,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'SETTING_UPDATE_FAILED',\n remainingRequired: requiredUnconfigured.length,\n },\n success: false,\n };\n } catch (error) {\n logger.error(`Error generating failure response: ${error}`);\n await callback({\n text: \"I couldn't understand your settings update. Please try again with a clearer format.\",\n actions: ['SETTING_UPDATE_FAILED'],\n source: 'discord',\n });\n\n return {\n text: 'Failed to parse settings with fallback message',\n values: {\n success: false,\n settingsUpdated: false,\n fallbackUsed: true,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'SETTING_UPDATE_FAILED',\n error: error instanceof Error ? error.message : String(error),\n },\n success: false,\n };\n }\n}\n\n/**\n * Generates an error response for unexpected errors\n */\nasync function generateErrorResponse(\n runtime: IAgentRuntime,\n state: State,\n callback: HandlerCallback\n): Promise<ActionResult> {\n try {\n const prompt = composePromptFromState({\n state,\n template: errorTemplate,\n });\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, {\n prompt,\n });\n\n const responseContent = parseKeyValueXml(response) as Content;\n\n await callback({\n text: responseContent.text,\n actions: ['SETTING_UPDATE_ERROR'],\n source: 'discord',\n });\n\n return {\n text: 'Error processing settings',\n values: {\n success: false,\n error: 'PROCESSING_ERROR',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'SETTING_UPDATE_ERROR',\n },\n success: false,\n };\n } catch (error) {\n logger.error(`Error generating error response: ${error}`);\n await callback({\n text: \"I'm sorry, but I encountered an error while processing your request. Please try again or contact support if the issue persists.\",\n actions: ['SETTING_UPDATE_ERROR'],\n source: 'discord',\n });\n\n return {\n text: 'Error with fallback message',\n values: {\n success: false,\n error: 'PROCESSING_ERROR',\n fallbackUsed: true,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n action: 'SETTING_UPDATE_ERROR',\n error: error instanceof Error ? error.message : String(error),\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n}\n\n/**\n * Enhanced settings action with improved state management and logging\n * Updated to use world metadata instead of cache\n */\nexport const updateSettingsAction: Action = {\n name: 'UPDATE_SETTINGS',\n similes: ['UPDATE_SETTING', 'SAVE_SETTING', 'SET_CONFIGURATION', 'CONFIGURE'],\n description:\n 'Saves a configuration setting during the onboarding process, or update an existing setting. Use this when you are onboarding with a world owner or admin.',\n\n validate: async (runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> => {\n try {\n if (message.content.channelType !== ChannelType.DM) {\n logger.debug(`Skipping settings in non-DM channel (type: ${message.content.channelType})`);\n return false;\n }\n\n // Find the server where this user is the owner\n logger.debug(`Looking for server where user ${message.entityId} is owner`);\n const worlds = await findWorldsForOwner(runtime, message.entityId);\n if (!worlds) {\n return false;\n }\n\n const world = worlds.find((world) => world.metadata?.settings);\n\n // Check if there's an active settings state in world metadata\n const worldSettings = world?.metadata?.settings;\n\n if (!worldSettings) {\n logger.error(`No settings state found for server ${world?.serverId}`);\n return false;\n }\n\n logger.debug(`Found valid settings state for server ${world.serverId}`);\n return true;\n } catch (error) {\n logger.error(`Error validating settings action: ${error}`);\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: any,\n callback?: HandlerCallback\n ): Promise<ActionResult> => {\n try {\n if (!state) {\n logger.error('State is required for settings handler');\n if (callback) {\n await generateErrorResponse(runtime, state!, callback);\n }\n return {\n text: 'State is required for settings handler',\n values: {\n success: false,\n error: 'STATE_REQUIRED',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'State is required',\n },\n success: false,\n error: new Error('State is required for settings handler'),\n };\n }\n\n if (!message) {\n logger.error('Message is required for settings handler');\n await generateErrorResponse(runtime, state, callback!);\n return {\n text: 'Message is required for settings handler',\n values: {\n success: false,\n error: 'MESSAGE_REQUIRED',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'Message is required',\n },\n success: false,\n error: new Error('Message is required for settings handler'),\n };\n }\n\n if (!callback) {\n logger.error('Callback is required for settings handler');\n return {\n text: 'Callback is required for settings handler',\n values: {\n success: false,\n error: 'CALLBACK_REQUIRED',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'Callback is required',\n },\n success: false,\n error: new Error('Callback is required for settings handler'),\n };\n }\n\n // Find the server where this user is the owner\n logger.info(`Handler looking for server for user ${message.entityId}`);\n const worlds = await findWorldsForOwner(runtime, message.entityId);\n const serverOwnership = worlds?.find((world) => world.metadata?.settings);\n if (!serverOwnership) {\n logger.error(`No server found for user ${message.entityId} in handler`);\n await generateErrorResponse(runtime, state, callback);\n return {\n text: 'No server found for user',\n values: {\n success: false,\n error: 'NO_SERVER_FOUND',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'No server found where user is owner',\n entityId: message.entityId,\n },\n success: false,\n };\n }\n\n const serverId = serverOwnership?.serverId;\n logger.info(`Using server ID: ${serverId}`);\n\n if (!serverId) {\n logger.error(`No server ID found for user ${message.entityId} in handler`);\n await generateErrorResponse(runtime, state, callback);\n return {\n text: 'No server ID found',\n values: {\n success: false,\n error: 'NO_SERVER_ID',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'No server ID found',\n entityId: message.entityId,\n },\n success: false,\n };\n }\n\n // Get settings state from world metadata\n const worldSettings = await getWorldSettings(runtime, serverId);\n\n if (!worldSettings) {\n logger.error(`No settings state found for server ${serverId} in handler`);\n await generateErrorResponse(runtime, state, callback);\n return {\n text: 'No settings state found',\n values: {\n success: false,\n error: 'NO_SETTINGS_STATE',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'No settings state found for server',\n serverId,\n },\n success: false,\n };\n }\n\n // Extract setting values from message\n logger.info(`Extracting settings from message: ${message.content.text}`);\n const extractedSettings = await extractSettingValues(runtime, message, state, worldSettings);\n logger.info(`Extracted ${extractedSettings.length} settings`);\n\n // Process extracted settings\n const updateResults = await processSettingUpdates(\n runtime,\n serverId,\n worldSettings,\n extractedSettings\n );\n\n // Generate appropriate response\n if (updateResults.updatedAny) {\n logger.info(`Successfully updated settings: ${updateResults.messages.join(', ')}`);\n\n // Get updated settings state\n const updatedWorldSettings = await getWorldSettings(runtime, serverId);\n if (!updatedWorldSettings) {\n logger.error('Failed to retrieve updated settings state');\n await generateErrorResponse(runtime, state, callback);\n return {\n text: 'Failed to retrieve updated settings state',\n values: {\n success: false,\n error: 'RETRIEVE_FAILED',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'Failed to retrieve updated settings state',\n serverId,\n },\n success: false,\n };\n }\n\n await generateSuccessResponse(\n runtime,\n updatedWorldSettings,\n state,\n updateResults.messages,\n callback\n );\n\n // Check if all required settings are configured\n const { requiredUnconfigured } = categorizeSettings(updatedWorldSettings);\n const allConfigured = requiredUnconfigured.length === 0;\n\n return {\n text: `Settings updated successfully`,\n values: {\n success: true,\n settingsUpdated: extractedSettings.length,\n updatedSettings: extractedSettings.map((s) => s.key),\n remainingRequired: requiredUnconfigured.length,\n allConfigured,\n serverId,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n updatedSettings: extractedSettings,\n messages: updateResults.messages,\n remainingRequired: requiredUnconfigured.map(([key, _]) => key),\n allConfigured,\n serverId,\n },\n success: true,\n };\n } else {\n logger.info('No settings were updated');\n await generateFailureResponse(runtime, worldSettings, state, callback);\n\n const { requiredUnconfigured } = categorizeSettings(worldSettings);\n\n return {\n text: 'No settings were updated',\n values: {\n success: false,\n error: 'NO_UPDATES',\n remainingRequired: requiredUnconfigured.length,\n serverId,\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: 'No valid settings found in message',\n remainingRequired: requiredUnconfigured.map(([key, _]) => key),\n serverId,\n },\n success: false,\n };\n }\n } catch (error) {\n logger.error(`Error in settings handler: ${error}`);\n if (state && callback) {\n await generateErrorResponse(runtime, state, callback);\n }\n return {\n text: 'Error in settings handler',\n values: {\n success: false,\n error: 'HANDLER_ERROR',\n },\n data: {\n actionName: 'UPDATE_SETTINGS',\n error: error instanceof Error ? error.message : String(error),\n },\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n },\n examples: [\n [\n {\n name: '{{name1}}',\n content: {\n text: 'I want to set up the welcome channel to #general',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Perfect! I've updated your welcome channel to #general. Next, we should configure the automated greeting message that new members will receive.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: \"Let's set the bot prefix to !\",\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Great choice! I've set the command prefix to '!'. Now you can use commands like !help, !info, etc.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Enable auto-moderation for bad language',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Auto-moderation for inappropriate language has been enabled. I'll now filter messages containing offensive content.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'For server logs, use the #server-logs channel',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"I've configured #server-logs as your logging channel. All server events like joins, leaves, and moderation actions will be recorded there.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: \"I'd like to have role self-assignment in the #roles channel\",\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Role self-assignment has been set up in the #roles channel. Members can now assign themselves roles by interacting with messages there.',\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Make music commands available in voice-text channels only',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"I've updated your music command settings - they'll now only work in voice-text channels. This helps keep other channels clear of music spam.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'For server timezone, set it to EST',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: 'Server timezone has been set to Eastern Standard Time (EST). All scheduled events and timestamps will now display in this timezone.',\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'Set verification level to email verified users only',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"I've updated the verification requirement to email verified accounts only. This adds an extra layer of security to your server.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: 'I want to turn off level-up notifications',\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Level-up notifications have been disabled. Members will still earn experience and level up, but there won't be any automatic announcements. You can still view levels with the appropriate commands.\",\n actions: ['SETTING_UPDATED'],\n source: 'discord',\n },\n },\n ],\n [\n {\n name: '{{name1}}',\n content: {\n text: \"My server name is 'Gaming Lounge'\",\n source: 'discord',\n },\n },\n {\n name: '{{name2}}',\n content: {\n text: \"Great! I've saved 'Gaming Lounge' as your server name. This helps me personalize responses and know how to refer to your community. We've completed all the required settings! Your server is now fully configured and ready to use. You can always adjust these settings later if needed.\",\n actions: ['ONBOARDING_COMPLETE'],\n source: 'discord',\n },\n },\n ],\n ] as ActionExample[][],\n};\n",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"// registered to runtime through plugin\n\nimport {\n logger,\n Service,\n ServiceType,\n type IAgentRuntime,\n type Memory,\n type State,\n type Task,\n} from '@elizaos/core';\n\n/**\n * TaskService class representing a service that schedules and executes tasks.\n * @extends Service\n * @property {NodeJS.Timeout|null} timer - Timer for executing tasks\n * @property {number} TICK_INTERVAL - Interval in milliseconds to check for tasks\n * @property {ServiceTypeName} serviceType - Service type of TASK\n * @property {string} capabilityDescription - Description of the service's capability\n * @static\n * @method start - Static method to start the TaskService\n * @method createTestTasks - Method to create test tasks\n * @method startTimer - Private method to start the timer for checking tasks\n * @method validateTasks - Private method to validate tasks\n * @method checkTasks - Private method to check tasks and execute them\n * @method executeTask - Private method to execute a task\n * @static\n * @method stop - Static method to stop the TaskService\n * @method stop - Method to stop the TaskService\n */\n/**\n * Start the TaskService with the given runtime.\n * @param {IAgentRuntime} runtime - The runtime for the TaskService.\n */\nexport class TaskService extends Service {\n private timer: NodeJS.Timeout | null = null;\n private readonly TICK_INTERVAL = 1000; // Check every second\n static serviceType = ServiceType.TASK;\n capabilityDescription = 'The agent is able to schedule and execute tasks';\n\n /**\n * Start the TaskService with the given runtime.\n * @param {IAgentRuntime} runtime - The runtime for the TaskService.\n * @returns {Promise<Service>} A promise that resolves with the TaskService instance.\n */\n static async start(runtime: IAgentRuntime): Promise<Service> {\n const service = new TaskService(runtime);\n await service.startTimer();\n // await service.createTestTasks();\n return service;\n }\n\n /**\n * Asynchronously creates test tasks by registering task workers for repeating and one-time tasks,\n * validates the tasks, executes the tasks, and creates the tasks if they do not already exist.\n */\n async createTestTasks() {\n // Register task worker for repeating task\n this.runtime.registerTaskWorker({\n name: 'REPEATING_TEST_TASK',\n validate: async (_runtime, _message, _state) => {\n logger.debug('[Bootstrap] Validating repeating test task');\n return true;\n },\n execute: async (_runtime, _options) => {\n logger.debug('[Bootstrap] Executing repeating test task');\n },\n });\n\n // Register task worker for one-time task\n this.runtime.registerTaskWorker({\n name: 'ONETIME_TEST_TASK',\n validate: async (_runtime, _message, _state) => {\n logger.debug('[Bootstrap] Validating one-time test task');\n return true;\n },\n execute: async (_runtime, _options) => {\n logger.debug('[Bootstrap] Executing one-time test task');\n },\n });\n\n // check if the task exists\n const tasks = await this.runtime.getTasksByName('REPEATING_TEST_TASK');\n\n if (tasks.length === 0) {\n // Create repeating task\n await this.runtime.createTask({\n name: 'REPEATING_TEST_TASK',\n description: 'A test task that repeats every minute',\n metadata: {\n updatedAt: Date.now(), // Use timestamp instead of Date object\n updateInterval: 1000 * 60, // 1 minute\n },\n tags: ['queue', 'repeat', 'test'],\n });\n }\n\n // Create one-time task\n await this.runtime.createTask({\n name: 'ONETIME_TEST_TASK',\n description: 'A test task that runs once',\n metadata: {\n updatedAt: Date.now(),\n },\n tags: ['queue', 'test'],\n });\n }\n\n /**\n * Starts a timer that runs a function to check tasks at a specified interval.\n */\n private startTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.timer = setInterval(async () => {\n try {\n await this.checkTasks();\n } catch (error) {\n logger.error({ error }, '[Bootstrap] Error checking tasks:');\n }\n }, this.TICK_INTERVAL) as unknown as NodeJS.Timeout;\n }\n\n /**\n * Validates an array of Task objects.\n * Skips tasks without IDs or if no worker is found for the task.\n * If a worker has a `validate` function, it will run the validation using the `runtime`, `Memory`, and `State` parameters.\n * If the validation fails, the task will be skipped and the error will be logged.\n * @param {Task[]} tasks - An array of Task objects to validate.\n * @returns {Promise<Task[]>} - A Promise that resolves with an array of validated Task objects.\n */\n private async validateTasks(tasks: Task[]): Promise<Task[]> {\n const validatedTasks: Task[] = [];\n\n for (const task of tasks) {\n // Skip tasks without IDs\n if (!task.id) {\n continue;\n }\n\n const worker = this.runtime.getTaskWorker(task.name);\n\n // Skip if no worker found for task\n if (!worker) {\n continue;\n }\n\n // If worker has validate function, run validation\n if (worker.validate) {\n try {\n // Pass empty message and state since validation is time-based\n const isValid = await worker.validate(this.runtime, {} as Memory, {} as State);\n if (!isValid) {\n continue;\n }\n } catch (error) {\n logger.error(\n { error, taskName: task.name },\n `[Bootstrap] Error validating task ${task.name}:`\n );\n continue;\n }\n }\n\n validatedTasks.push(task);\n }\n\n return validatedTasks;\n }\n\n /**\n * Asynchronous method that checks tasks with \"queue\" tag, validates and sorts them, then executes them based on interval and tags.\n *\n * @returns {Promise<void>} Promise that resolves once all tasks are checked and executed\n */\n private async checkTasks() {\n try {\n // Get all tasks with \"queue\" tag\n const allTasks = await this.runtime.getTasks({\n tags: ['queue'],\n });\n\n if (!allTasks) {\n return;\n }\n\n // validate the tasks and sort them\n const tasks = await this.validateTasks(allTasks);\n\n const now = Date.now();\n\n for (const task of tasks) {\n // First check task.updatedAt (for newer task format)\n // Then fall back to task.metadata.updatedAt (for older tasks)\n // Finally default to 0 if neither exists\n let taskStartTime: number;\n\n // if tags does not contain \"repeat\", execute immediately\n if (!task.tags?.includes('repeat')) {\n // does not contain repeat\n await this.executeTask(task);\n continue;\n }\n\n if (typeof task.updatedAt === 'number') {\n taskStartTime = task.updatedAt;\n } else if (task.metadata?.updatedAt && typeof task.metadata.updatedAt === 'number') {\n taskStartTime = task.metadata.updatedAt;\n } else if (task.updatedAt) {\n taskStartTime = new Date(task.updatedAt).getTime();\n } else {\n taskStartTime = 0; // Default to immediate execution if no timestamp found\n }\n\n // Get updateInterval from metadata\n const updateIntervalMs = task.metadata?.updateInterval ?? 0; // update immediately\n\n // if tags does not contain \"repeat\", execute immediately\n if (!task.tags?.includes('repeat')) {\n await this.executeTask(task);\n continue;\n }\n\n if (task.metadata?.updatedAt === task.metadata?.createdAt) {\n if (task.tags?.includes('immediate')) {\n logger.debug('[Bootstrap] Immediately running task', task.name);\n await this.executeTask(task);\n continue;\n }\n }\n\n // Check if enough time has passed since last update\n if (now - taskStartTime >= updateIntervalMs) {\n logger.debug(\n `[Bootstrap] Executing task ${task.name} - interval of ${updateIntervalMs}ms has elapsed`\n );\n await this.executeTask(task);\n }\n }\n } catch (error) {\n logger.error({ error }, '[Bootstrap] Error checking tasks:');\n }\n }\n\n /**\n * Executes a given task asynchronously.\n *\n * @param {Task} task - The task to be executed.\n */\n private async executeTask(task: Task) {\n try {\n if (!task || !task.id) {\n logger.debug(`[Bootstrap] Task not found`);\n return;\n }\n\n const worker = this.runtime.getTaskWorker(task.name);\n if (!worker) {\n logger.debug(`[Bootstrap] No worker found for task type: ${task.name}`);\n return;\n }\n\n // Handle repeating vs non-repeating tasks\n if (task.tags?.includes('repeat')) {\n // For repeating tasks, update the updatedAt timestamp\n await this.runtime.updateTask(task.id, {\n metadata: {\n ...task.metadata,\n updatedAt: Date.now(),\n },\n });\n logger.debug(\n `[Bootstrap] Updated repeating task ${task.name} (${task.id}) with new timestamp`\n );\n }\n\n logger.debug(`[Bootstrap] Executing task ${task.name} (${task.id})`);\n await worker.execute(this.runtime, task.metadata || {}, task);\n //logger.debug('task.tags are', task.tags);\n\n // Handle repeating vs non-repeating tasks\n if (!task.tags?.includes('repeat')) {\n // For non-repeating tasks, delete the task after execution\n await this.runtime.deleteTask(task.id);\n logger.debug(\n `[Bootstrap] Deleted non-repeating task ${task.name} (${task.id}) after execution`\n );\n }\n } catch (error) {\n logger.error({ error, taskId: task.id }, `[Bootstrap] Error executing task ${task.id}:`);\n }\n }\n\n /**\n * Stops the TASK service in the given agent runtime.\n *\n * @param {IAgentRuntime} runtime - The agent runtime containing the service.\n * @returns {Promise<void>} - A promise that resolves once the service has been stopped.\n */\n static async stop(runtime: IAgentRuntime) {\n const service = runtime.getService(ServiceType.TASK);\n if (service) {\n await service.stop();\n }\n }\n\n /**\n * Stops the timer if it is currently running.\n */\n\n async stop() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n}\n",
|
|
44
44
|
"import {\n type IAgentRuntime,\n type Memory,\n Service,\n EventType,\n ModelType,\n type EmbeddingGenerationPayload,\n logger,\n} from '@elizaos/core';\n\ninterface EmbeddingQueueItem {\n memory: Memory;\n priority: 'high' | 'normal' | 'low';\n retryCount: number;\n maxRetries: number;\n addedAt: number;\n runId?: string;\n}\n\n/**\n * Service responsible for generating embeddings asynchronously\n * This service listens for EMBEDDING_GENERATION_REQUESTED events\n * and processes them in a queue to avoid blocking the main runtime\n */\nexport class EmbeddingGenerationService extends Service {\n static serviceType = 'embedding-generation';\n capabilityDescription = 'Handles asynchronous embedding generation for memories';\n\n private queue: EmbeddingQueueItem[] = [];\n private isProcessing = false;\n private processingInterval: NodeJS.Timeout | null = null;\n private maxQueueSize = 1000;\n private batchSize = 10; // Process up to 10 embeddings at a time\n private processingIntervalMs = 100; // Check queue every 100ms\n\n static async start(runtime: IAgentRuntime): Promise<Service> {\n logger.info('[EmbeddingService] Starting embedding generation service');\n const service = new EmbeddingGenerationService(runtime);\n await service.initialize();\n return service;\n }\n\n async initialize(): Promise<void> {\n logger.info('[EmbeddingService] Initializing embedding generation service');\n\n // Register event handlers\n this.runtime.registerEvent(\n EventType.EMBEDDING_GENERATION_REQUESTED,\n this.handleEmbeddingRequest.bind(this)\n );\n\n // Start the processing loop\n this.startProcessing();\n }\n\n private async handleEmbeddingRequest(payload: EmbeddingGenerationPayload): Promise<void> {\n const { memory, priority = 'normal', retryCount = 0, maxRetries = 3, runId } = payload;\n\n // Skip if memory already has embeddings\n if (memory.embedding) {\n logger.debug('[EmbeddingService] Memory already has embeddings, skipping');\n return;\n }\n\n // Check queue size and make room if needed\n if (this.queue.length >= this.maxQueueSize) {\n logger.warn(\n `[EmbeddingService] Queue is full (${this.queue.length}/${this.maxQueueSize}), making room`\n );\n this.makeRoomInQueue();\n }\n\n // Add to queue\n const queueItem: EmbeddingQueueItem = {\n memory,\n priority,\n retryCount,\n maxRetries,\n addedAt: Date.now(),\n runId,\n };\n\n // Insert based on priority\n this.insertItemByPriority(queueItem);\n\n logger.debug(`[EmbeddingService] Added memory to queue. Queue size: ${this.queue.length}`);\n }\n\n /**\n * Make room in the queue by removing items based on priority and age\n * Removes 10% of the queue (minimum 1, maximum 10 items)\n */\n private makeRoomInQueue(): void {\n // Remove 10% of queue, but at least 1 and at most 10 items\n const tenPercent = Math.floor(this.maxQueueSize * 0.1);\n const itemsToRemove = Math.min(10, Math.max(1, tenPercent));\n\n // Create array with items and their original indices\n const itemsWithIndex = this.queue.map((item, index) => ({ item, originalIndex: index }));\n\n // Sort by priority (low first for removal) and age (oldest first)\n itemsWithIndex.sort((a, b) => {\n // Priority order for removal: low > normal > high\n const priorityOrder = { low: 0, normal: 1, high: 2 };\n const priorityDiff = priorityOrder[a.item.priority] - priorityOrder[b.item.priority];\n\n if (priorityDiff !== 0) return priorityDiff;\n\n // Within same priority, remove older items first\n return a.item.addedAt - b.item.addedAt;\n });\n\n // Get the original indices of items to remove (first N items after sorting)\n const indicesToRemove = new Set(\n itemsWithIndex\n .slice(0, Math.min(itemsToRemove, itemsWithIndex.length))\n .map(({ originalIndex }) => originalIndex)\n );\n\n // Keep items that are not in the removal set\n const newQueue = this.queue.filter((_, index) => !indicesToRemove.has(index));\n const removedCount = this.queue.length - newQueue.length;\n\n this.queue = newQueue;\n\n logger.info(\n `[EmbeddingService] Removed ${removedCount} items from queue. New size: ${this.queue.length}`\n );\n }\n\n /**\n * Insert an item into the queue based on its priority\n * High priority items go to the front, normal in the middle, low at the end\n */\n private insertItemByPriority(queueItem: EmbeddingQueueItem): void {\n if (queueItem.priority === 'high') {\n // Find the position after the last high priority item\n let insertIndex = 0;\n for (let i = 0; i < this.queue.length; i++) {\n if (this.queue[i].priority !== 'high') break;\n insertIndex = i + 1;\n }\n this.queue.splice(insertIndex, 0, queueItem);\n } else if (queueItem.priority === 'low') {\n // Add to end of queue\n this.queue.push(queueItem);\n } else {\n // Normal priority - add after high priority items but before low priority items\n let insertIndex = 0;\n\n // First, skip all high priority items\n for (let i = 0; i < this.queue.length; i++) {\n if (this.queue[i].priority !== 'high') {\n insertIndex = i;\n break;\n }\n insertIndex = i + 1;\n }\n\n // Then find where low priority items start\n for (let i = insertIndex; i < this.queue.length; i++) {\n if (this.queue[i].priority === 'low') {\n insertIndex = i;\n break;\n }\n insertIndex = i + 1;\n }\n\n this.queue.splice(insertIndex, 0, queueItem);\n }\n }\n\n private startProcessing(): void {\n if (this.processingInterval) {\n return;\n }\n\n this.processingInterval = setInterval(async () => {\n if (!this.isProcessing && this.queue.length > 0) {\n await this.processQueue();\n }\n }, this.processingIntervalMs);\n\n logger.info('[EmbeddingService] Started processing loop');\n }\n\n private async processQueue(): Promise<void> {\n if (this.isProcessing || this.queue.length === 0) {\n return;\n }\n\n this.isProcessing = true;\n\n try {\n // Process a batch of items\n const batch = this.queue.splice(0, Math.min(this.batchSize, this.queue.length));\n\n logger.debug(\n `[EmbeddingService] Processing batch of ${batch.length} items. Remaining in queue: ${this.queue.length}`\n );\n\n // Process items in parallel\n const promises = batch.map(async (item) => {\n try {\n await this.generateEmbedding(item);\n } catch (error) {\n logger.error(\n { error, memoryId: item.memory.id },\n '[EmbeddingService] Error processing item:'\n );\n\n // Retry if under max retries\n if (item.retryCount < item.maxRetries) {\n item.retryCount++;\n // Re-add to queue with same priority using proper insertion\n this.insertItemByPriority(item);\n logger.debug(\n `[EmbeddingService] Re-queued item for retry (${item.retryCount}/${item.maxRetries})`\n );\n } else {\n // Log embedding failure\n await this.runtime.log({\n entityId: this.runtime.agentId,\n roomId: item.memory.roomId || this.runtime.agentId,\n type: 'embedding_event',\n body: {\n runId: item.runId,\n memoryId: item.memory.id,\n status: 'failed',\n error: error instanceof Error ? error.message : String(error),\n source: 'embeddingService',\n },\n });\n\n // Emit failure event\n await this.runtime.emitEvent(EventType.EMBEDDING_GENERATION_FAILED, {\n runtime: this.runtime,\n memory: item.memory,\n error: error instanceof Error ? error.message : String(error),\n source: 'embeddingService',\n });\n }\n }\n });\n\n await Promise.all(promises);\n } finally {\n this.isProcessing = false;\n }\n }\n\n private async generateEmbedding(item: EmbeddingQueueItem): Promise<void> {\n const { memory } = item;\n\n if (!memory.content?.text) {\n logger.warn({ memoryId: memory.id }, '[EmbeddingService] Memory has no text content');\n return;\n }\n\n try {\n const startTime = Date.now();\n\n // Generate embedding\n const embedding = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: memory.content.text,\n });\n\n const duration = Date.now() - startTime;\n logger.debug(\n `[EmbeddingService] Generated embedding in ${duration}ms for memory ${memory.id}`\n );\n\n // Update memory with embedding\n if (memory.id) {\n await this.runtime.updateMemory({\n id: memory.id,\n embedding: embedding as number[],\n });\n\n // Log embedding completion\n await this.runtime.log({\n entityId: this.runtime.agentId,\n roomId: memory.roomId || this.runtime.agentId,\n type: 'embedding_event',\n body: {\n runId: item.runId,\n memoryId: memory.id,\n status: 'completed',\n duration,\n source: 'embeddingService',\n },\n });\n\n // Emit completion event\n await this.runtime.emitEvent(EventType.EMBEDDING_GENERATION_COMPLETED, {\n runtime: this.runtime,\n memory: { ...memory, embedding },\n source: 'embeddingService',\n });\n }\n } catch (error) {\n logger.error(\n { error, memoryId: memory.id },\n '[EmbeddingService] Failed to generate embedding:'\n );\n throw error; // Re-throw to trigger retry logic\n }\n }\n\n async stop(): Promise<void> {\n logger.info('[EmbeddingService] Stopping embedding generation service');\n\n if (this.processingInterval) {\n clearInterval(this.processingInterval);\n this.processingInterval = null;\n }\n\n // Process remaining high priority items before shutdown\n const highPriorityItems = this.queue.filter((item) => item.priority === 'high');\n if (highPriorityItems.length > 0) {\n logger.info(\n `[EmbeddingService] Processing ${highPriorityItems.length} high priority items before shutdown`\n );\n for (const item of highPriorityItems) {\n try {\n await this.generateEmbedding(item);\n } catch (error) {\n logger.error({ error }, '[EmbeddingService] Error during shutdown processing:');\n }\n }\n }\n\n logger.info(`[EmbeddingService] Stopped. ${this.queue.length} items remaining in queue`);\n }\n\n // Public methods for monitoring\n getQueueSize(): number {\n return this.queue.length;\n }\n\n getQueueStats(): { high: number; normal: number; low: number; total: number } {\n const stats = {\n high: 0,\n normal: 0,\n low: 0,\n total: this.queue.length,\n };\n\n for (const item of this.queue) {\n stats[item.priority]++;\n }\n\n return stats;\n }\n\n clearQueue(): void {\n const size = this.queue.length;\n this.queue = [];\n logger.info(`[EmbeddingService] Cleared ${size} items from queue`);\n }\n}\n\nexport default EmbeddingGenerationService;\n"
|
|
45
45
|
],
|
|
46
|
-
"mappings": "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S,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,WAAU,SAAQ,eAAc,WAAU,WAAU,OAAM,UAAS,SAAQ,UAAS,SAAQ,WAAU,UAAS,SAAQ,WAAU,OAAM,UAAS,SAAQ,WAAU,YAAW,QAAO,UAAS,UAAS,WAAU,WAAU,SAAQ,UAAS,SAAQ,WAAU,SAAQ,WAAU,WAAU,WAAU,UAAS,UAAS,UAAS,SAAQ,WAAU,QAAO,WAAU,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,WAAU,SAAQ,UAAS,UAAS,YAAW,WAAU,UAAS,WAAU,SAAQ,UAAS,WAAU,UAAS,WAAU,UAAS,UAAS,UAAS,WAAU,WAAU,WAAU,WAAU,YAAW,SAAQ,UAAS,UAAS,WAAU,YAAW,SAAQ,UAAS,WAAU,YAAW,aAAY,aAAY,YAAW,YAAW,UAAS,cAAa,WAAU,WAAU,WAAU,UAAS,QAAO,SAAQ,cAAa,UAAS,WAAU,YAAW,UAAS,WAAU,WAAU,YAAW,YAAW,aAAY,WAAU,YAAW,YAAW,SAAQ,UAAS,SAAQ,UAAS,YAAW,WAAU,SAAQ,QAAO,SAAQ,SAAQ,YAAW,SAAQ,QAAO,SAAQ,QAAO,aAAY,aAAY,aAAY,cAAa,UAAS,SAAQ,UAAS,aAAY,SAAQ,YAAW,QAAO,YAAW,SAAQ,aAAY,aAAY,SAAQ,UAAS,YAAW,aAAY,aAAY,SAAQ,UAAS,YAAW,YAAW,WAAU,YAAW,WAAU,SAAQ,aAAY,QAAO,SAAQ,UAAS,YAAW,UAAS,UAAS,WAAU,YAAW,QAAO,QAAO,SAAQ,WAAU,SAAQ,UAAS,WAAU,WAAU,WAAU,UAAS,QAAO,QAAO,UAAS,WAAU,WAAU,YAAW,aAAY,aAAY,YAAW,aAAY,SAAQ,SAAQ,UAAS,WAAU,UAAS,WAAU,WAAU,SAAQ,SAAQ,SAAQ,QAAO,UAAS,WAAU,WAAU,UAAS,WAAU,aAAY,UAAS,UAAS,UAAS,YAAW,YAAW,WAAU,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,aAAY,aAAY,YAAW,aAAY,YAAW,YAAW,YAAW,YAAW,SAAQ,UAAS,YAAW,WAAU,WAAU,WAAU,WAAU,UAAS,QAAO,SAAQ,UAAS,SAAQ,aAAY,WAAU,WAAU,UAAS,YAAW,aAAY,UAA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AS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,QAAO,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,UAAS,QAAO,QAAO,OAAM,QAAO,SAAQ,UAAS,SAAQ,OAAM,UAAS,SAAQ,SAAQ,OAAM,SAAQ,UAAS,WAAU,SAAQ,SAAQ,UAAS,YAAW,SAAQ,SAAQ,UAAS,SAAQ,UAAS,YAAW,UAAS,WAAU,YAAW,SAAQ,UAAS,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,UAAS,UAAS,QAAO,SAAQ,YAAW,QAAO,SAAQ,UAAS,YAAW,UAAS,UAAS,OAAM,QAAO,UAAS,SAAQ,OAAM,QAAO,SAAQ,QAAO,OAAM,QAAO,WAAU,QAAO,OAAM,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,SAAQ,QAAO,UAAS,OAAM,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,aAAY,UAAS,UAAS,SAAQ,SAAQ,UAAS,WAAU,aAAY,aAAY,WAAU,YAAW,YAAW,WAAU,SAAQ,SAAQ,SAAQ,SAAQ,WAAU,YAAW,YAAW,SAAQ,WAAU,WAAU,YAAW,QAAO,YAAW,YAAW,UAAS,QAAO,UAAS,WAAU,SAAQ,YAAW,aAAY,cAAa,SAAQ,UAAS,UAAS,SAAQ,SAAQ,YAAW,aAAY,QAAO,QAAO,QAAO,YAAW,QAAO,SAAQ,UAAS,WAAU,QAAO,SAAQ,WAAU,QAAO,SAAQ,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,WAAU,SAAQ,QAAO,WAAU,QAAO,SAAQ,SAAQ,QAAO,SAAQ,YAAW,WAAU,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,QAAO,SAAQ,UAAS,UAAS,UAAS,UAAS,MAAK,OAAM,UAAS,UAAS,UAAS,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,SAAQ,UAAS,UAAS,WAAU,SAAQ,SAAQ,UAAS,WAAU,QAAO,WAAU,YAAW,WAAU,YAAW,aAAY,YAAW,SAAQ,QAAO,SAAQ,QAAO,SAAQ,WAAU,SAAQ,UAAS,YAAW,QAAO,UAAS,cAAa,UAAS,aAAY,WAAU,WAAU,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,SAAQ,QAAO,SAAQ,SAAQ,UAAS,QAAO,cAAa,cAAa,UAAS,WAAU,WAAU,QAAO,YAAW,WAAU,aAAY,SAAQ,QAAO,QAAO,WAAU,QAAO,aAAY,QAAO,SAAQ,QAAO,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,UAAS,YAAW,cAAa,SAAQ,WAAU,WAAU,YAAW,YAAW,WAAU,SAAQ,QAAO,QAAO,SAAQ,QAAO,UAAS,WAAU,WAAU,UAAS,QAAO,WAAU,UAAS,YAAW,YAAW,OAAM,WAAU,aAAY,aAAY,cAAa,cAAa,UAAS,UAAS,OAAM,WAAU,WAAU,WAAU,UAAS,QAAO,QAAO,SAAQ,UAAS,SAAQ,QAAO,OAAM,QAAO,SAAQ,aAAY,OAAM,SAAQ,SAAQ,UAAS,OAAM,aAAY,WAAU,UAAS,SAAQ,YAAW,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,UAAS,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,YAAW,YAAW,QAAO,SAAQ,UAAS,OAAM,UAAS,QAAO,WAAU,UAAS,SAAQ,SAAQ,UAAS,YAAW,UAAS,WAAU,YAAW,UAAS,WAAU,YAAW,WAAU,UAAS,WAAU,UAAS,UAAS,WAAU,WAAU,cAAa,cAAa,QAAO,YAAW,YAAW,cAAa,SAAQ,OAAM,SAAQ,UAAS,UAAS,WAAU,YAAW,QAAO,UAAS,SAAQ,UAAS,WAAU,QAAO,SAAQ,UAAS,YAAW,YAAW,SAAQ,aAAY,OAAM,QAAO,SAAQ,YAAW,SAAQ,YAAW,YAAW,aAAY,aAAY,YAAW,YAAW,SAAQ,UAAS,WAAU,UAAS,WAAU,YAAW,UAAS,UAAS,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,QAAO,QAAO,YAAW,WAAU,aAAY,YAAW,aAAY,aAAY,aAAY,YAAW,SAAQ,WAAU,UAAS,UAAS,WAAU,UAAS,UAAS,QAAO,SAAQ,UAAS,WAAU,UAAS,YAAW,aAAY,cAAa,cAAa,SAAQ,UAAS,UAAS,YAAW,UAAS,UAAS,cAAa,UAAS,UAAS,SAAQ,UAAS,SAAQ,QAAO,SAAQ,WAAU,YAAW,YAAW,aAAY,aAAY,cAAa,WAAU,QAAO,OAAM,QAAO,QAAO,QAAO,UAAS,WAAU,UAAS,YAAW,SAAQ,SAAQ,aAAY,OAAM,QAAO,SAAQ,SAAQ,SAAQ,WAAU,WAAU,UAAS,SAAQ,QAAO,QAAO,UAAS,aAAY,WAAU,SAAQ,SAAQ,SAAQ,UAAS,YAAW,SAAQ,YAAW,YAAW,UAAS,cAAa,cAAa,YAAW,YAAW,aAAY,aAAY,WAAU,aAAY,cAAa,cAAa,WAAU,YAAW,YAAW,WAAU,aAAY,SAAQ,cAAa,QAAO,YAAW,YAAW,aAAY,WAAU,YAAW,WAAU,SAAQ,UAAS,YAAW,SAAQ,QAAO,SAAQ,SAAQ,UAAS,WAAU,YAAW,YAAW,aAAY,SAAQ,YAAW,SAAQ,WAAU,UAAS,QAAO,YAAW,YAAW,cAAa,cAAa,SAAQ,aAAY,QAAO,UAAS,SAAQ,WAAU,UAAS,YAAW,SAAQ,QAAO,WAAU,WAAU,UAAS,SAAQ,UAAS,YAAW,SAAQ,WAAU,YAAW,SAAQ,WAAU,UAAS,UAAS,WAAU,WAAU,YAAW,UAAS,aAAY,YAAW,UAAS,QAAO,SAAQ,UAAS,SAAQ,QAAO,UAAS,WAAU,SAAQ,UAAS,WAAU,WAAU,SAAQ,UAAS,YAAW,YAAW,SAAQ,QAAO,UAAS,UAAS,WAAU,QAAO,UAAS,SAAQ,aAAY,SAAQ,UAAS,UAAS,WAAU,SAAQ,SAAQ,UAAS,UAAS,SAAQ,UAAS,YAAW,QAAO,UAAS,UAAS,SAAQ,SAAQ,UAAS,YAAW,SAAQ,UAAS,WAAU,UAAS,UAAS,SAAQ,YAAW,WAAU,aAAY,aAAY,UAAS,aAAY,OAAM,YAAW,eAAc,aAAY,UAAS,WAAU,OAAM,WAAU,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,QAAO,aAAY,aAAY,aAAY,WAAU,YAAW,YAAW,UAAS,WAAU,UAAS,WAAU,WAAU,QAAO,WAAU,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,WAAU,SAAQ,QAAO,SAAQ,YAAW,UAAS,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,UAAS,SAAQ,SAAQ,WAAU,UAAS,SAAQ,UAAS,YAAW,YAAW,WAAU,SAAQ,UAAS,WAAU,YAAW,aAAY,aAAY,WAAU,YAAW,SAAQ,UAAS,SAAQ,UAAS,SAAQ,SAAQ,WAAU,QAAO,SAAQ,SAAQ,UAAS,QAAO,UAAS,WAAU,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,SAAQ,mBAAkB,UAAS,UAAS,WAAU,SAAQ,SAAQ,SAAQ,WAAU,SAAQ,SAAQ,YAAW,SAAQ,UAAS,YAAW,aAAY,aAAY,aAAY,aAAY,UAAS,WAAU,WAAU,YAAW,YAAW,SAAQ,UAAS,UAAS,WAAU,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAY,cAAa,SAAQ,cAAa,cAAa,SAAQ,WAAU,YAAW,SAAQ,SAAQ,UAAS,SAAQ,cAAa,aAAY,SAAQ,SAAQ,WAAU,QAAO,WAAU,YAAW,aAAY,SAAQ,YAAW,aAAY,aAAY,cAAa,cAAa,SAAQ,UAAS,SAAQ,QAAO,OAAM,UAAS,WAAU,WAAU,SAAQ,UAAS,UAAS,UAAS,UAAS,SAAQ,SAAQ,QAAO,QAAO,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,UAAS,WAAU,WAAU,OAAM,UAAS,QAAO,WAAU,UAAS,QAAO,QAAO,YAAW,YAAW,QAAO,YAAW,YAAW,SAAQ,UAAS,WAAU,QAAO,WAAU,YAAW,QAAO,WAAU,OAAM,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,QAAO,OAAM,UAAS,aAAY,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,UAAS,QAAO,UAAS,SAAQ,OAAM,UAAS,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,SAAQ,UAAS,WAAU,WAAU,cAAa,eAAc,SAAQ,UAAS,UAAS,aAAY,cAAa,aAAY,cAAa,eAAc,eAAc,aAAY,aAAY,UAAS,WAAU,WAAU,QAAO,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,UAAS,OAAM,QAAO,UAAS,UAAS,SAAQ,QAAO,UAAS,YAAW,UAAS,SAAQ,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,SAAQ,UAAS,WAAU,WAAU,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,UAAS,UAAS,SAAQ,UAAS,SAAQ,SAAQ,UAAS,YAAW,SAAQ,QAAO,YAAW,YAAW,cAAa,cAAa,WAAU,UAAS,WAAU,WAAU,SAAQ,UAAS,SAAQ,WAAU,UAAS,QAAO,SAAQ,SAAQ,YAAW,YAAW,UAAS,WAAU,UAAS,UAAS,aAAY,WAAU,YAAW,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,SAAQ,OAAM,QAAO,SAAQ,WAAU,QAAO,UAAS,WAAU,WAAU,YAAW,WAAU,UAAS,QAAO,SAAQ,UAAS,YAAW,SAAQ,WAAU,UAAS,YAAW,YAAW,WAAU,SAAQ,WAAU,QAAO,QAAO,YAAW,UAAS,YAAW,YAAW,WAAU,SAAQ,YAAW,QAAO,SAAQ,YAAW,YAAW,aAAY,YAAW,SAAQ,YAAW,SAAQ,WAAU,UAAS,WAAU,SAAQ,SAAQ,UAAS,WAAU,QAAO,WAAU,WAAU,YAAW,WAAU,WAAU,SAAQ,WAAU,UAAS,SAAQ,SAAQ,MAAK,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,SAAQ,UAAS,UAAS,WAAU,SAAQ,QAAO,SAAQ,UAAS,QAAO,SAAQ,UAAS,WAAU,YAAW,WAAU,YAAW,SAAQ,QAAO,SAAQ,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,WAAU,UAAS,WAAU,WAAU,SAAQ,QAAO,WAAU,YAAW,SAAQ,WAAU,YAAW,UAAS,SAAQ,QAAO,SAAQ,UAAS,UAAS,WAAU,QAAO,SAAQ,UAAS,QAAO,SAAQ,UAAS,UAAS,QAAO,SAAQ,SAAQ,WAAU,UAAS,WAAU,YAAW,SAAQ,QAAO,SAAQ,UAAS,SAAQ,YAAW,SAAQ,UAAS,YAAW,WAAU,aAAY,aAAY,SAAQ,QAAO,SAAQ,YAAW,QAAO,WAAU,OAAM,QAAO,SAAQ,UAAS,SAAQ,YAAW,QAAO,WAAU,SAAQ,WAAU,QAAO,SAAQ,UAAS,WAAU,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,WAAU,WAAU,WAAU,YAAW,YAAW,SAAQ,YAAW,UAAS,WAAU,YAAW,YAAW,UAAS,UAAS,WAAU,UAAS,QAAO,WAAU,SAAQ,SAAQ,UAAS,WAAU,WAAU,WAAU,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,OAAM,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,YAAW,QAAO,YAAW,QAAO,WAAU,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,SAAQ,UAAS,UAAS,WAAU,YAAW,WAAU,SAAQ,SAAQ,SAAQ,QAAO,aAAY,WAAU,YAAW,QAAO,SAAQ,SAAQ,SAAQ,UAAS,QAAO,SAAQ,SAAQ,SAAQ,YAAW,SAAQ,UAAS,UAAS,YAAW,UAAS,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,WAAU,UAAS,YAAW,YAAW,SAAQ,UAAS,UAAS,SAAQ,SAAQ,UAAS,UAAS,YAAW,YAAW,UAAS,SAAQ,UAAS,UAAS,SAAQ,QAAO,SAAQ,WAAU,SAAQ,SAAQ,QAAO,aAAY,UAAS,SAAQ,UAAS,UAAS,OAAM,QAAO,WAAU,QAAO,SAAQ,YAAW,YAAW,SAAQ,QAAO,SAAQ,aAAY,aAAY,YAAW,SAAQ,aAAY,aAAY,YAAW,SAAQ,UAAS,YAAW,WAAU,YAAW,WAAU,YAAW,SAAQ,UAAS,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,YAAW,SAAQ,UAAS,YAAW,WAAU,QAAO,SAAQ,OAAM,UAAS,QAAO,SAAQ,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,YAAW,UAAS,SAAQ,SAAQ,UAAS,UAAS,SAAQ,QAAO,WAAU,YAAW,SAAQ,UAAS,WAAU,UAAS,SAAQ,WAAU,UAAS,UAAS,UAAS,WAAU,SAAQ,UAAS,SAAQ,UAAS,SAAQ,MAAK,QAAO,QAAO,SAAQ,YAAW,WAAU,SAAQ,OAAM,aAAY,aAAY,YAAW,YAAW,aAAY,UAAS,SAAQ,UAAS,SAAQ,SAAQ,OAAM,QAAO,UAAS,SAAQ,QAAO,UAAS,UAAS,SAAQ,QAAO,WAAU,YAAW,UAAS,WAAU,WAAU,UAAS,WAAU,UAAS,OAAM,SAAQ,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,YAAW,aAAY,aAAY,OAAM,QAAO,SAAQ,WAAU,WAAU,QAAO,WAAU,SAAQ,WAAU,QAAO,SAAQ,UAAS,UAAS,SAAQ,QAAO,WAAU,UAAS,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,UAAS,YAAW,WAAU,YAAW,YAAW,UAAS,WAAU,UAAS,WAAU,aAAY,WAAU,YAAW,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,OAAM,WAAU,WAAU,SAAQ,SAAQ,SAAQ,QAAO,WAAU,YAAW,SAAQ,UAAS,QAAO,SAAQ,QAAO,WAAU,SAAQ,QAAO,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,QAAO,WAAU,QAAO,UAAS,UAAS,UAAS,WAAU,QAAO,WAAU,YAAW,SAAQ,WAAU,WAAU,WAAU,SAAQ,YAAW,UAAS,YAAW,SAAQ,UAAS,WAAU,UAAS,YAAW,UAAS,WAAU,WAAU,YAAW,YAAW,SAAQ,aAAY,WAAU,UAAS,UAAS,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,SAAQ,SAAQ,UAAS,OAAM,QAAO,WAAU,SAAQ,UAAS,UAAS,WAAU,UAAS,QAAO,OAAM,UAAS,WAAU,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,UAAS,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,WAAU,SAAQ,SAAQ,UAAS,UAAS,WAAU,UAAS,SAAQ,WAAU,SAAQ,YAAW,SAAQ,YAAW,UAAS,WAAU,WAAU,YAAW,YAAW,SAAQ,UAAS,UAAS,SAAQ,UAAS,SAAQ,SAAQ,QAAO,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,OAAM,QAAO,SAAQ,SAAQ,UAAS,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,SAAQ,OAAM,QAAO,SAAQ,SAAQ,SAAQ,UAAS,WAAU,UAAS,UAAS,SAAQ,SAAQ,WAAU,UAAS,WAAU,SAAQ,QAAO,UAAS,OAAM,QAAO,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,QAAO,UAAS,WAAU,UAAS,UAAS,SAAQ,QAAO,QAAO,YAAW,WAAU,QAAO,WAAU,WAAU,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,QAAO,SAAQ,OAAM,QAAO,SAAQ,UAAS,SAAQ,UAAS,QAAO,OAAM,QAAO,YAAW,WAAU,WAAU,UAAS,SAAQ,UAAS,QAAO,SAAQ,QAAO,UAAS,UAAS,SAAQ,QAAO,SAAQ,QAAO,SAAQ,SAAQ,UAAS,QAAO,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,WAAU,WAAU,SAAQ,UAAS,UAAS,WAAU,WAAU,WAAU,QAAO,SAAQ,YAAW,YAAW,SAAQ,WAAU,WAAU,WAAU,UAAS,UAAS,SAAQ,SAAQ,YAAW,YAAW,SAAQ,UAAS,UAAS,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,OAAM,WAAU,UAAS,UAAS,aAAY,YAAW,MAAK,QAAO,QAAO,SAAQ,WAAU,SAAQ,YAAW,UAAS,WAAU,WAAU,UAAS,WAAU,UAAS,UAAS,SAAQ,YAAW,QAAO,YAAW,UAAS,UAAS,SAAQ,SAAQ,QAAO,UAAS,QAAO,QAAO,WAAU,WAAU,WAAU,WAAU,QAAO,OAAM,QAAO,SAAQ,SAAQ,OAAM,SAAQ,SAAQ,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,SAAQ,WAAU,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,WAAU,YAAW,UAAS,WAAU,YAAW,UAAS,SAAQ,OAAM,SAAQ,WAAU,SAAQ,QAAO,YAAW,WAAU,aAAY,SAAQ,UAAS,SAAQ,SAAQ,aAAY,aAAY,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,UAAS,WAAU,QAAO,OAAM,UAAS,OAAM,SAAQ,WAAU,YAAW,aAAY,aAAY,UAAS,SAAQ,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,SAAQ,aAAY,QAAO,SAAQ,UAAS,UAAS,YAAW,QAAO,WAAU,UAAS,SAAQ,UAAS,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,WAAU,UAAS,SAAQ,WAAU,WAAU,QAAO,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,QAAO,WAAU,WAAU,YAAW,YAAW,YAAW,cAAa,cAAa,aAAY,SAAQ,UAAS,UAAS,WAAU,YAAW,SAAQ,UAAS,SAAQ,UAAS,WAAU,SAAQ,YAAW,WAAU,YAAW,aAAY,aAAY,cAAa,cAAa,cAAa,cAAa,aAAY,WAAU,SAAQ,YAAW,WAAU,UAAS,YAAW,SAAQ,UAAS,UAAS,SAAQ,UAAS,WAAU,cAAa,SAAQ,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,YAAW,YAAW,WAAU,aAAY,YAAW,UAAS,WAAU,SAAQ,aAAY,gBAAe,YAAW,eAAc,UAAS,WAAU,YAAW,aAAY,YAAW,YAAW,YAAW,UAAS,UAAS,WAAU,WAAU,YAAW,WAAU,SAAQ,UAAS,WAAU,UAAS,cAAa,SAAQ,UAAS,WAAU,WAAU,UAAS,WAAU,UAAS,QAAO,SAAQ,SAAQ,SAAQ,UAAS,YAAW,WAAU,SAAQ,WAAU,SAAQ,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,UAAS,UAAS,WAAU,SAAQ,UAAS,SAAQ,SAAQ,UAAS,SAAQ,UAAS,UAAS,YAAW,YAAW,UAAS,YAAW,UAAS,aAAY,SAAQ,YAAW,eAAc,UAAS,UAAS,YAAW,SAAQ,WAAU,UAAS,WAAU,WAAU,SAAQ,YAAW,QAAO,SAAQ,WAAU,YAAW,YAAW,aAAY,YAAW,aAAY,YAAW,UAAS,SAAQ,WAAU,WAAU,aAAY,WAAU,aAAY,YAAW,SAAQ,UAAS,SAAQ,WAAU,YAAW,YAAW,WAAU,WAAU,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,SAAQ,SAAQ,WAAU,YAAW,WAAU,WAAU,WAAU,WAAU,YAAW,SAAQ,SAAQ,OAAM,QAAO,SAAQ,UAAS,QAAO,OAAM,YAAW,QAAO,QAAO,SAAQ,UAAS,WAAU,SAAQ,YAAW,OAAM,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,UAAS,WAAU,aAAY,OAAM,OAAM,QAAO,WAAU,WAAU,WAAU,YAAW,UAAS,SAAQ,UAAS,WAAU,YAAW,UAAS,WAAU,WAAU,UAAS,aAAY,cAAa,aAAY,YAAW,WAAU,WAAU,UAAS,WAAU,SAAQ,SAAQ,aAAY,UAAS,WAAU,aAAY,YAAW,SAAQ,WAAU,WAAU,UAAS,WAAU,UAAS,UAAS,SAAQ,YAAW,SAAQ,UAAS,SAAQ,YAAW,aAAY,WAAU,YAAW,UAAS,WAAU,WAAU,SAAQ,WAAU,QAAO,SAAQ,SAAQ,WAAU,WAAU,SAAQ,UAAS,YAAW,YAAW,UAAS,aAAY,WAAU,YAAW,WAAU,WAAU,WAAU,SAAQ,UAAS,SAAQ,QAAO,OAAM,WAAU,YAAW,cAAa,cAAa,aAAY,UAAS,UAAS,WAAU,aAAY,aAAY,WAAU,YAAW,SAAQ,UAAS,SAAQ,SAAQ,UAAS,YAAW,WAAU,aAAY,WAAU,OAAM,WAAU,WAAU,UAAS,YAAW,aAAY,SAAQ,SAAQ,aAAY,UAAS,aAAY,SAAQ,UAAS,QAAO,OAAM,QAAO,SAAQ,SAAQ,WAAU,WAAU,WAAU,SAAQ,eAAc,SAAQ,SAAQ,UAAS,WAAU,SAAQ,SAAQ,WAAU,QAAO,WAAU,aAAY,aAAY,SAAQ,WAAU,aAAY,YAAW,WAAU,WAAU,UAAS,WAAU,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,WAAU,YAAW,aAAY,WAAU,SAAQ,SAAQ,QAAO,UAAS,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,UAAS,UAAS,WAAU,QAAO,UAAS,UAAS,UAAS,WAAU,aAAY,YAAW,UAAS,SAAQ,WAAU,SAAQ,WAAU,SAAQ,SAAQ,WAAU,UAAS,QAAO,aAAY,SAAQ,UAAS,UAAS,UAAS,YAAW,QAAO,SAAQ,WAAU,UAAS,WAAU,SAAQ,WAAU,SAAQ,SAAQ,UAAS,WAAU,UAAS,UAAS,QAAO,UAAS,UAAS,SAAQ,UAAS,UAAS,QAAO,SAAQ,UAAS,OAAM,QAAO,WAAU,SAAQ,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,UAAS,YAAW,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,QAAO,QAAO,UAAS,OAAM,QAAO,UAAS,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,aAAY,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,UAAS,UAAS,SAAQ,SAAQ,QAAO,SAAQ,SAAQ,UAAS,SAAQ,WAAU,UAAS,QAAO,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,SAAQ,SAAQ,SAAQ,UAAS,WAAU,YAAW,SAAQ,UAAS,SAAQ,SAAQ,UAAS,UAAS,WAAU,aAAY,UAAS,YAAW,YAAW,WAAU,YAAW,QAAO,QAAO,SAAQ,UAAS,aAAY,WAAU,QAAO,WAAU,WAAU,YAAW,YAAW,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,QAAO,SAAQ,SAAQ,QAAO,WAAU,SAAQ,UAAS,UAAS,WAAU,UAAS,SAAQ,QAAO,UAAS,SAAQ,UAAS,QAAO,QAAO,SAAQ,QAAO,SAAQ,SAAQ,UAAS,QAAO,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,SAAQ,SAAQ,WAAU,SAAQ,UAAS,YAAW,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,OAAM,UAAS,QAAO,QAAO,WAAU,SAAQ,YAAW,UAAS,UAAS,QAAO,SAAQ,QAAO,QAAO,SAAQ,UAAS,WAAU,WAAU,UAAS,UAAS,SAAQ,QAAO,QAAO,WAAU,WAAU,WAAU,WAAU,OAAM,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,QAAO,UAAS,YAAW,QAAO,WAAU,WAAU,WAAU,WAAU,WAAU,QAAO,SAAQ,UAAS,OAAM,UAAS,YAAW,WAAU,SAAQ,UAAS,SAAQ,WAAU,UAAS,SAAQ,SAAQ,WAAU,YAAW,OAAM,YAAW,WAAU,WAAU,YAAW,YAAW,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,YAAW,YAAW,SAAQ,UAAS,WAAU,WAAU,WAAU,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,YAAW,OAAM,UAAS,SAAQ,UAAS,SAAQ,OAAM,YAAW,YAAW,SAAQ,UAAS,SAAQ,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,WAAU,SAAQ,UAAS,OAAM,QAAO,SAAQ,WAAU,cAAa,YAAW,cAAa,cAAa,WAAU,WAAU,WAAU,SAAQ,UAAS,UAAS,QAAO,WAAU,YAAW,YAAW,cAAa,UAAS,YAAW,WAAU,WAAU,UAAS,aAAY,UAAS,UAAS,YAAW,WAAU,WAAU,UAAS,OAAM,QAAO,YAAW,aAAY,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,aAAY,QAAO,SAAQ,UAAS,QAAO,UAAS,aAAY,aAAY,WAAU,OAAM,YAAW,SAAQ,SAAQ,QAAO,WAAU,WAAU,WAAU,SAAQ,UAAS,YAAW,aAAY,YAAW,WAAU,UAAS,WAAU,YAAW,OAAM,UAAS,OAAM,QAAO,WAAU,YAAW,aAAY,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,WAAU,QAAO,SAAQ,UAAS,WAAU,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,UAAS,WAAU,SAAQ,YAAW,UAAS,WAAU,SAAQ,SAAQ,SAAQ,OAAM,WAAU,QAAO,SAAQ,WAAU,YAAW,OAAM,QAAO,YAAW,QAAO,UAAS,WAAU,WAAU,UAAS,WAAU,YAAW,OAAM,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,UAAS,SAAQ,SAAQ,SAAQ,QAAO,QAAO,SAAQ,UAAS,UAAS,QAAO,SAAQ,UAAS,WAAU,SAAQ,UAAS,QAAO,SAAQ,UAAS,OAAM,SAAQ,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,WAAU,SAAQ,UAAS,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,UAAS,QAAO,SAAQ,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,QAAO,QAAO,QAAO,QAAO,WAAU,QAAO,UAAS,QAAO,SAAQ,UAAS,UAAS,SAAQ,UAAS,UAAS,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,UAAS,WAAU,YAAW,aAAY,aAAY,WAAU,QAAO,SAAQ,QAAO,WAAU,YAAW,YAAW,YAAW,QAAO,QAAO,SAAQ,UAAS,QAAO,UAAS,UAAS,WAAU,QAAO,QAAO,WAAU,SAAQ,UAAS,SAAQ,SAAQ,WAAU,UAAS,SAAQ,WAAU,QAAO,QAAO,SAAQ,QAAO,OAAM,QAAO,WAAU,aAAY,aAAY,YAAW,WAAU,WAAU,YAAW,aAAY,aAAY,YAAW,WAAU,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,QAAO,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,WAAU,aAAY,aAAY,YAAW,aAAY,UAAS,WAAU,WAAU,YAAW,SAAQ,UAAS,UAAS,UAAS,YAAW,QAAO,OAAM,QAAO,UAAS,UAAS,UAAS,WAAU,WAAU,QAAO,SAAQ,UAAS,QAAO,OAAM,WAAU,WAAU,YAAW,WAAU,WAAU,QAAO,UAAS,WAAU,WAAU,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,QAAO,WAAU,QAAO,WAAU,YAAW,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,QAAO,UAAS,UAAS,SAAQ,WAAU,SAAQ,QAAO,WAAU,SAAQ,SAAQ,UAAS,OAAM,WAAU,UAAS,SAAQ,UAAS,SAAQ,YAAW,aAAY,UAAS,UAAS,UAAS,OAAM,YAAW,UAAS,WAAU,SAAQ,SAAQ,SAAQ,UAAS,UAAS,SAAQ,UAAS,YAAW,YAAW,QAAO,YAAW,WAAU,SAAQ,YAAW,SAAQ,UAAS,UAAS,WAAU,QAAO,UAAS,UAAS,UAAS,UAAS,SAAQ,YAAW,UAAS,WAAU,UAAS,SAAQ,WAAU,YAAW,QAAO,SAAQ,QAAO,QAAO,UAAS,UAAS,aAAY,SAAQ,SAAQ,UAAS,WAAU,UAAS,SAAQ,SAAQ,SAAQ,QAAO,WAAU,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,WAAU,aAAY,WAAU,WAAU,UAAS,SAAQ,SAAQ,UAAS,UAAS,WAAU,WAAU,WAAU,UAAS,UAAS,WAAU,SAAQ,UAAS,SAAQ,UAAS,WAAU,SAAQ,UAAS,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,UAAS,SAAQ,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,WAAU,WAAU,YAAW,UAAS,UAAS,QAAO,SAAQ,UAAS,YAAW,WAAU,UAAS,WAAU,UAAS,kBAAiB,WAAU,QAAO,SAAQ,WAAU,UAAS,UAAS,UAAS,UAAS,SAAQ,WAAU,UAAS,WAAU,UAAS,SAAQ,QAAO,UAAS,SAAQ,UAAS,WAAU,YAAW,YAAW,UAAS,WAAU,UAAS,UAAS,UAAS,SAAQ,QAAO,SAAQ,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,aAAY,SAAQ,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,WAAU,WAAU,WAAU,UAAS,SAAQ,WAAU,WAAU,WAAU,WAAU,YAAW,UAAS,QAAO,UAAS,SAAQ,WAAU,UAAS,UAAS,UAAS,UAAS,aAAY,WAAU,UAAS,WAAU,SAAQ,WAAU,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,UAAS,WAAU,SAAQ,SAAQ,UAAS,SAAQ,UAAS,UAAS,aAAY,UAAS,WAAU,SAAQ,UAAS,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,QAAO,UAAS,YAAW,WAAU,SAAQ,SAAQ,YAAW,YAAW,YAAW,UAAS,WAAU,UAAS,UAAS,YAAW,YAAW,aAAY,cAAa,aAAY,UAAS,WAAU,YAAW,UAAS,WAAU,WAAU,YAAW,SAAQ,UAAS,WAAU,UAAS,OAAM,WAAU,SAAQ,QAAO,QAAO,SAAQ,YAAW,SAAQ,UAAS,aAAY,UAAS,WAAU,YAAW,WAAU,WAAU,QAAO,SAAQ,QAAO,UAAS,WAAU,WAAU,WAAU,QAAO,SAAQ,QAAO,SAAQ,UAAS,WAAU,WAAU,SAAQ,SAAQ,WAAU,UAAS,UAAS,WAAU,YAAW,SAAQ,UAAS,YAAW,SAAQ,UAAS,WAAU,SAAQ,SAAQ,UAAS,UAAS,UAAS,YAAW,SAAQ,SAAQ,UAAS,SAAQ,UAAS,WAAU,WAAU,UAAS,QAAO,UAAS,SAAQ,WAAU,SAAQ,UAAS,SAAQ,WAAU,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,QAAO,SA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",
|
|
47
|
-
"debugId": "
|
|
46
|
+
"mappings": "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S,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,WAAU,SAAQ,eAAc,WAAU,WAAU,OAAM,UAAS,SAAQ,UAAS,SAAQ,WAAU,UAAS,SAAQ,WAAU,OAAM,UAAS,SAAQ,WAAU,YAAW,QAAO,UAAS,UAAS,WAAU,WAAU,SAAQ,UAAS,SAAQ,WAAU,SAAQ,WAAU,WAAU,WAAU,UAAS,UAAS,UAAS,SAAQ,WAAU,QAAO,WAAU,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,WAAU,SAAQ,UAAS,UAAS,YAAW,WAAU,UAAS,WAAU,SAAQ,UAAS,WAAU,UAAS,WAAU,UAAS,UAAS,UAAS,WAAU,WAAU,WAAU,WAAU,YAAW,SAAQ,UAAS,UAAS,WAAU,YAAW,SAAQ,UAAS,WAAU,YAAW,aAAY,aAAY,YAAW,YAAW,UAAS,cAAa,WAAU,WAAU,WAAU,UAAS,QAAO,SAAQ,cAAa,UAAS,WAAU,YAAW,UAAS,WAAU,WAAU,YAAW,YAAW,aAAY,WAAU,YAAW,YAAW,SAAQ,UAAS,SAAQ,UAAS,YAAW,WAAU,SAAQ,QAAO,SAAQ,SAAQ,YAAW,SAAQ,QAAO,SAAQ,QAAO,aAAY,aAAY,aAAY,cAAa,UAAS,SAAQ,UAAS,aAAY,SAAQ,YAAW,QAAO,YAAW,SAAQ,aAAY,aAAY,SAAQ,UAAS,YAAW,aAAY,aAAY,SAAQ,UAAS,YAAW,YAAW,WAAU,YAAW,WAAU,SAAQ,aAAY,QAAO,SAAQ,UAAS,YAAW,UAAS,UAAS,WAAU,YAAW,QAAO,QAAO,SAAQ,WAAU,SAAQ,UAAS,WAAU,WAAU,WAAU,UAAS,QAAO,QAAO,UAAS,WAAU,WAAU,YAAW,aAAY,aAAY,YAAW,aAAY,SAAQ,SAAQ,UAAS,WAAU,UAAS,WAAU,WAAU,SAAQ,SAAQ,SAAQ,QAAO,UAAS,WAAU,WAAU,UAAS,WAAU,aAAY,UAAS,UAAS,UAAS,YAAW,YAAW,WAAU,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,aAAY,aAAY,YAAW,aAAY,YAAW,YAAW,YAAW,YAAW,SAAQ,UAAS,YAAW,WAAU,WAAU,WAAU,WAAU,UAAS,QAAO,SAAQ,UAAS,SAAQ,aAAY,WAAU,WAAU,UAAS,YAAW,aAAY,UAA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AS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,QAAO,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,UAAS,QAAO,QAAO,OAAM,QAAO,SAAQ,UAAS,SAAQ,OAAM,UAAS,SAAQ,SAAQ,OAAM,SAAQ,UAAS,WAAU,SAAQ,SAAQ,UAAS,YAAW,SAAQ,SAAQ,UAAS,SAAQ,UAAS,YAAW,UAAS,WAAU,YAAW,SAAQ,UAAS,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,UAAS,UAAS,QAAO,SAAQ,YAAW,QAAO,SAAQ,UAAS,YAAW,UAAS,UAAS,OAAM,QAAO,UAAS,SAAQ,OAAM,QAAO,SAAQ,QAAO,OAAM,QAAO,WAAU,QAAO,OAAM,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,SAAQ,QAAO,UAAS,OAAM,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,aAAY,UAAS,UAAS,SAAQ,SAAQ,UAAS,WAAU,aAAY,aAAY,WAAU,YAAW,YAAW,WAAU,SAAQ,SAAQ,SAAQ,SAAQ,WAAU,YAAW,YAAW,SAAQ,WAAU,WAAU,YAAW,QAAO,YAAW,YAAW,UAAS,QAAO,UAAS,WAAU,SAAQ,YAAW,aAAY,cAAa,SAAQ,UAAS,UAAS,SAAQ,SAAQ,YAAW,aAAY,QAAO,QAAO,QAAO,YAAW,QAAO,SAAQ,UAAS,WAAU,QAAO,SAAQ,WAAU,QAAO,SAAQ,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,WAAU,SAAQ,QAAO,WAAU,QAAO,SAAQ,SAAQ,QAAO,SAAQ,YAAW,WAAU,QAAO,QAAO,UAAS,UAAS,UAAS,UAAS,QAAO,SAAQ,UAAS,UAAS,UAAS,UAAS,MAAK,OAAM,UAAS,UAAS,UAAS,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,SAAQ,UAAS,UAAS,WAAU,SAAQ,SAAQ,UAAS,WAAU,QAAO,WAAU,YAAW,WAAU,YAAW,aAAY,YAAW,SAAQ,QAAO,SAAQ,QAAO,SAAQ,WAAU,SAAQ,UAAS,YAAW,QAAO,UAAS,cAAa,UAAS,aAAY,WAAU,WAAU,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,SAAQ,QAAO,SAAQ,SAAQ,UAAS,QAAO,cAAa,cAAa,UAAS,WAAU,WAAU,QAAO,YAAW,WAAU,aAAY,SAAQ,QAAO,QAAO,WAAU,QAAO,aAAY,QAAO,SAAQ,QAAO,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,UAAS,YAAW,cAAa,SAAQ,WAAU,WAAU,YAAW,YAAW,WAAU,SAAQ,QAAO,QAAO,SAAQ,QAAO,UAAS,WAAU,WAAU,UAAS,QAAO,WAAU,UAAS,YAAW,YAAW,OAAM,WAAU,aAAY,aAAY,cAAa,cAAa,UAAS,UAAS,OAAM,WAAU,WAAU,WAAU,UAAS,QAAO,QAAO,SAAQ,UAAS,SAAQ,QAAO,OAAM,QAAO,SAAQ,aAAY,OAAM,SAAQ,SAAQ,UAAS,OAAM,aAAY,WAAU,UAAS,SAAQ,YAAW,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,UAAS,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,YAAW,YAAW,QAAO,SAAQ,UAAS,OAAM,UAAS,QAAO,WAAU,UAAS,SAAQ,SAAQ,UAAS,YAAW,UAAS,WAAU,YAAW,UAAS,WAAU,YAAW,WAAU,UAAS,WAAU,UAAS,UAAS,WAAU,WAAU,cAAa,cAAa,QAAO,YAAW,YAAW,cAAa,SAAQ,OAAM,SAAQ,UAAS,UAAS,WAAU,YAAW,QAAO,UAAS,SAAQ,UAAS,WAAU,QAAO,SAAQ,UAAS,YAAW,YAAW,SAAQ,aAAY,OAAM,QAAO,SAAQ,YAAW,SAAQ,YAAW,YAAW,aAAY,aAAY,YAAW,YAAW,SAAQ,UAAS,WAAU,UAAS,WAAU,YAAW,UAAS,UAAS,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,QAAO,QAAO,YAAW,WAAU,aAAY,YAAW,aAAY,aAAY,aAAY,YAAW,SAAQ,WAAU,UAAS,UAAS,WAAU,UAAS,UAAS,QAAO,SAAQ,UAAS,WAAU,UAAS,YAAW,aAAY,cAAa,cAAa,SAAQ,UAAS,UAAS,YAAW,UAAS,UAAS,cAAa,UAAS,UAAS,SAAQ,UAAS,SAAQ,QAAO,SAAQ,WAAU,YAAW,YAAW,aAAY,aAAY,cAAa,WAAU,QAAO,OAAM,QAAO,QAAO,QAAO,UAAS,WAAU,UAAS,YAAW,SAAQ,SAAQ,aAAY,OAAM,QAAO,SAAQ,SAAQ,SAAQ,WAAU,WAAU,UAAS,SAAQ,QAAO,QAAO,UAAS,aAAY,WAAU,SAAQ,SAAQ,SAAQ,UAAS,YAAW,SAAQ,YAAW,YAAW,UAAS,cAAa,cAAa,YAAW,YAAW,aAAY,aAAY,WAAU,aAAY,cAAa,cAAa,WAAU,YAAW,YAAW,WAAU,aAAY,SAAQ,cAAa,QAAO,YAAW,YAAW,aAAY,WAAU,YAAW,WAAU,SAAQ,UAAS,YAAW,SAAQ,QAAO,SAAQ,SAAQ,UAAS,WAAU,YAAW,YAAW,aAAY,SAAQ,YAAW,SAAQ,WAAU,UAAS,QAAO,YAAW,YAAW,cAAa,cAAa,SAAQ,aAAY,QAAO,UAAS,SAAQ,WAAU,UAAS,YAAW,SAAQ,QAAO,WAAU,WAAU,UAAS,SAAQ,UAAS,YAAW,SAAQ,WAAU,YAAW,SAAQ,WAAU,UAAS,UAAS,WAAU,WAAU,YAAW,UAAS,aAAY,YAAW,UAAS,QAAO,SAAQ,UAAS,SAAQ,QAAO,UAAS,WAAU,SAAQ,UAAS,WAAU,WAAU,SAAQ,UAAS,YAAW,YAAW,SAAQ,QAAO,UAAS,UAAS,WAAU,QAAO,UAAS,SAAQ,aAAY,SAAQ,UAAS,UAAS,WAAU,SAAQ,SAAQ,UAAS,UAAS,SAAQ,UAAS,YAAW,QAAO,UAAS,UAAS,SAAQ,SAAQ,UAAS,YAAW,SAAQ,UAAS,WAAU,UAAS,UAAS,SAAQ,YAAW,WAAU,aAAY,aAAY,UAAS,aAAY,OAAM,YAAW,eAAc,aAAY,UAAS,WAAU,OAAM,WAAU,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,QAAO,aAAY,aAAY,aAAY,WAAU,YAAW,YAAW,UAAS,WAAU,UAAS,WAAU,WAAU,QAAO,WAAU,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,WAAU,SAAQ,QAAO,SAAQ,YAAW,UAAS,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,UAAS,SAAQ,SAAQ,WAAU,UAAS,SAAQ,UAAS,YAAW,YAAW,WAAU,SAAQ,UAAS,WAAU,YAAW,aAAY,aAAY,WAAU,YAAW,SAAQ,UAAS,SAAQ,UAAS,SAAQ,SAAQ,WAAU,QAAO,SAAQ,SAAQ,UAAS,QAAO,UAAS,WAAU,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,SAAQ,mBAAkB,UAAS,UAAS,WAAU,SAAQ,SAAQ,SAAQ,WAAU,SAAQ,SAAQ,YAAW,SAAQ,UAAS,YAAW,aAAY,aAAY,aAAY,aAAY,UAAS,WAAU,WAAU,YAAW,YAAW,SAAQ,UAAS,UAAS,WAAU,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,aAAY,cAAa,SAAQ,cAAa,cAAa,SAAQ,WAAU,YAAW,SAAQ,SAAQ,UAAS,SAAQ,cAAa,aAAY,SAAQ,SAAQ,WAAU,QAAO,WAAU,YAAW,aAAY,SAAQ,YAAW,aAAY,aAAY,cAAa,cAAa,SAAQ,UAAS,SAAQ,QAAO,OAAM,UAAS,WAAU,WAAU,SAAQ,UAAS,UAAS,UAAS,UAAS,SAAQ,SAAQ,QAAO,QAAO,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,UAAS,WAAU,WAAU,OAAM,UAAS,QAAO,WAAU,UAAS,QAAO,QAAO,YAAW,YAAW,QAAO,YAAW,YAAW,SAAQ,UAAS,WAAU,QAAO,WAAU,YAAW,QAAO,WAAU,OAAM,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,QAAO,OAAM,UAAS,aAAY,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,UAAS,QAAO,UAAS,SAAQ,OAAM,UAAS,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,SAAQ,UAAS,WAAU,WAAU,cAAa,eAAc,SAAQ,UAAS,UAAS,aAAY,cAAa,aAAY,cAAa,eAAc,eAAc,aAAY,aAAY,UAAS,WAAU,WAAU,QAAO,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,UAAS,OAAM,QAAO,UAAS,UAAS,SAAQ,QAAO,UAAS,YAAW,UAAS,SAAQ,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,SAAQ,UAAS,WAAU,WAAU,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,UAAS,UAAS,SAAQ,UAAS,SAAQ,SAAQ,UAAS,YAAW,SAAQ,QAAO,YAAW,YAAW,cAAa,cAAa,WAAU,UAAS,WAAU,WAAU,SAAQ,UAAS,SAAQ,WAAU,UAAS,QAAO,SAAQ,SAAQ,YAAW,YAAW,UAAS,WAAU,UAAS,UAAS,aAAY,WAAU,YAAW,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,SAAQ,OAAM,QAAO,SAAQ,WAAU,QAAO,UAAS,WAAU,WAAU,YAAW,WAAU,UAAS,QAAO,SAAQ,UAAS,YAAW,SAAQ,WAAU,UAAS,YAAW,YAAW,WAAU,SAAQ,WAAU,QAAO,QAAO,YAAW,UAAS,YAAW,YAAW,WAAU,SAAQ,YAAW,QAAO,SAAQ,YAAW,YAAW,aAAY,YAAW,SAAQ,YAAW,SAAQ,WAAU,UAAS,WAAU,SAAQ,SAAQ,UAAS,WAAU,QAAO,WAAU,WAAU,YAAW,WAAU,WAAU,SAAQ,WAAU,UAAS,SAAQ,SAAQ,MAAK,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,SAAQ,UAAS,UAAS,WAAU,SAAQ,QAAO,SAAQ,UAAS,QAAO,SAAQ,UAAS,WAAU,YAAW,WAAU,YAAW,SAAQ,QAAO,SAAQ,QAAO,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,WAAU,UAAS,WAAU,WAAU,SAAQ,QAAO,WAAU,YAAW,SAAQ,WAAU,YAAW,UAAS,SAAQ,QAAO,SAAQ,UAAS,UAAS,WAAU,QAAO,SAAQ,UAAS,QAAO,SAAQ,UAAS,UAAS,QAAO,SAAQ,SAAQ,WAAU,UAAS,WAAU,YAAW,SAAQ,QAAO,SAAQ,UAAS,SAAQ,YAAW,SAAQ,UAAS,YAAW,WAAU,aAAY,aAAY,SAAQ,QAAO,SAAQ,YAAW,QAAO,WAAU,OAAM,QAAO,SAAQ,UAAS,SAAQ,YAAW,QAAO,WAAU,SAAQ,WAAU,QAAO,SAAQ,UAAS,WAAU,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,WAAU,WAAU,WAAU,YAAW,YAAW,SAAQ,YAAW,UAAS,WAAU,YAAW,YAAW,UAAS,UAAS,WAAU,UAAS,QAAO,WAAU,SAAQ,SAAQ,UAAS,WAAU,WAAU,WAAU,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,OAAM,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,YAAW,QAAO,YAAW,QAAO,WAAU,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,SAAQ,UAAS,UAAS,WAAU,YAAW,WAAU,SAAQ,SAAQ,SAAQ,QAAO,aAAY,WAAU,YAAW,QAAO,SAAQ,SAAQ,SAAQ,UAAS,QAAO,SAAQ,SAAQ,SAAQ,YAAW,SAAQ,UAAS,UAAS,YAAW,UAAS,WAAU,UAAS,SAAQ,UAAS,WAAU,UAAS,WAAU,UAAS,YAAW,YAAW,SAAQ,UAAS,UAAS,SAAQ,SAAQ,UAAS,UAAS,YAAW,YAAW,UAAS,SAAQ,UAAS,UAAS,SAAQ,QAAO,SAAQ,WAAU,SAAQ,SAAQ,QAAO,aAAY,UAAS,SAAQ,UAAS,UAAS,OAAM,QAAO,WAAU,QAAO,SAAQ,YAAW,YAAW,SAAQ,QAAO,SAAQ,aAAY,aAAY,YAAW,SAAQ,aAAY,aAAY,YAAW,SAAQ,UAAS,YAAW,WAAU,YAAW,WAAU,YAAW,SAAQ,UAAS,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,YAAW,SAAQ,UAAS,YAAW,WAAU,QAAO,SAAQ,OAAM,UAAS,QAAO,SAAQ,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,SAAQ,UAAS,UAAS,UAAS,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,YAAW,UAAS,SAAQ,SAAQ,UAAS,UAAS,SAAQ,QAAO,WAAU,YAAW,SAAQ,UAAS,WAAU,UAAS,SAAQ,WAAU,UAAS,UAAS,UAAS,WAAU,SAAQ,UAAS,SAAQ,UAAS,SAAQ,MAAK,QAAO,QAAO,SAAQ,YAAW,WAAU,SAAQ,OAAM,aAAY,aAAY,YAAW,YAAW,aAAY,UAAS,SAAQ,UAAS,SAAQ,SAAQ,OAAM,QAAO,UAAS,SAAQ,QAAO,UAAS,UAAS,SAAQ,QAAO,WAAU,YAAW,UAAS,WAAU,WAAU,UAAS,WAAU,UAAS,OAAM,SAAQ,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,YAAW,aAAY,aAAY,OAAM,QAAO,SAAQ,WAAU,WAAU,QAAO,WAAU,SAAQ,WAAU,QAAO,SAAQ,UAAS,UAAS,SAAQ,QAAO,WAAU,UAAS,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,UAAS,YAAW,WAAU,YAAW,YAAW,UAAS,WAAU,UAAS,WAAU,aAAY,WAAU,YAAW,QAAO,QAAO,SAAQ,SAAQ,UAAS,UAAS,OAAM,WAAU,WAAU,SAAQ,SAAQ,SAAQ,QAAO,WAAU,YAAW,SAAQ,UAAS,QAAO,SAAQ,QAAO,WAAU,SAAQ,QAAO,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,QAAO,WAAU,QAAO,UAAS,UAAS,UAAS,WAAU,QAAO,WAAU,YAAW,SAAQ,WAAU,WAAU,WAAU,SAAQ,YAAW,UAAS,YAAW,SAAQ,UAAS,WAAU,UAAS,YAAW,UAAS,WAAU,WAAU,YAAW,YAAW,SAAQ,aAAY,WAAU,UAAS,UAAS,UAAS,WAAU,WAAU,UAAS,WAAU,WAAU,SAAQ,SAAQ,UAAS,OAAM,QAAO,WAAU,SAAQ,UAAS,UAAS,WAAU,UAAS,QAAO,OAAM,UAAS,WAAU,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,UAAS,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,WAAU,SAAQ,SAAQ,UAAS,UAAS,WAAU,UAAS,SAAQ,WAAU,SAAQ,YAAW,SAAQ,YAAW,UAAS,WAAU,WAAU,YAAW,YAAW,SAAQ,UAAS,UAAS,SAAQ,UAAS,SAAQ,SAAQ,QAAO,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,OAAM,QAAO,SAAQ,SAAQ,UAAS,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,SAAQ,OAAM,QAAO,SAAQ,SAAQ,SAAQ,UAAS,WAAU,UAAS,UAAS,SAAQ,SAAQ,WAAU,UAAS,WAAU,SAAQ,QAAO,UAAS,OAAM,QAAO,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,QAAO,UAAS,WAAU,UAAS,UAAS,SAAQ,QAAO,QAAO,YAAW,WAAU,QAAO,WAAU,WAAU,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,QAAO,SAAQ,OAAM,QAAO,SAAQ,UAAS,SAAQ,UAAS,QAAO,OAAM,QAAO,YAAW,WAAU,WAAU,UAAS,SAAQ,UAAS,QAAO,SAAQ,QAAO,UAAS,UAAS,SAAQ,QAAO,SAAQ,QAAO,SAAQ,SAAQ,UAAS,QAAO,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,WAAU,WAAU,SAAQ,UAAS,UAAS,WAAU,WAAU,WAAU,QAAO,SAAQ,YAAW,YAAW,SAAQ,WAAU,WAAU,WAAU,UAAS,UAAS,SAAQ,SAAQ,YAAW,YAAW,SAAQ,UAAS,UAAS,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,OAAM,WAAU,UAAS,UAAS,aAAY,YAAW,MAAK,QAAO,QAAO,SAAQ,WAAU,SAAQ,YAAW,UAAS,WAAU,WAAU,UAAS,WAAU,UAAS,UAAS,SAAQ,YAAW,QAAO,YAAW,UAAS,UAAS,SAAQ,SAAQ,QAAO,UAAS,QAAO,QAAO,WAAU,WAAU,WAAU,WAAU,QAAO,OAAM,QAAO,SAAQ,SAAQ,OAAM,SAAQ,SAAQ,UAAS,WAAU,WAAU,WAAU,WAAU,SAAQ,SAAQ,WAAU,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,WAAU,YAAW,UAAS,WAAU,YAAW,UAAS,SAAQ,OAAM,SAAQ,WAAU,SAAQ,QAAO,YAAW,WAAU,aAAY,SAAQ,UAAS,SAAQ,SAAQ,aAAY,aAAY,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,SAAQ,UAAS,UAAS,WAAU,QAAO,OAAM,UAAS,OAAM,SAAQ,WAAU,YAAW,aAAY,aAAY,UAAS,SAAQ,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,SAAQ,aAAY,QAAO,SAAQ,UAAS,UAAS,YAAW,QAAO,WAAU,UAAS,SAAQ,UAAS,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,WAAU,UAAS,SAAQ,WAAU,WAAU,QAAO,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,QAAO,WAAU,WAAU,YAAW,YAAW,YAAW,cAAa,cAAa,aAAY,SAAQ,UAAS,UAAS,WAAU,YAAW,SAAQ,UAAS,SAAQ,UAAS,WAAU,SAAQ,YAAW,WAAU,YAAW,aAAY,aAAY,cAAa,cAAa,cAAa,cAAa,aAAY,WAAU,SAAQ,YAAW,WAAU,UAAS,YAAW,SAAQ,UAAS,UAAS,SAAQ,UAAS,WAAU,cAAa,SAAQ,QAAO,SAAQ,UAAS,UAAS,WAAU,WAAU,YAAW,YAAW,WAAU,aAAY,YAAW,UAAS,WAAU,SAAQ,aAAY,gBAAe,YAAW,eAAc,UAAS,WAAU,YAAW,aAAY,YAAW,YAAW,YAAW,UAAS,UAAS,WAAU,WAAU,YAAW,WAAU,SAAQ,UAAS,WAAU,UAAS,cAAa,SAAQ,UAAS,WAAU,WAAU,UAAS,WAAU,UAAS,QAAO,SAAQ,SAAQ,SAAQ,UAAS,YAAW,WAAU,SAAQ,WAAU,SAAQ,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,UAAS,UAAS,WAAU,SAAQ,UAAS,SAAQ,SAAQ,UAAS,SAAQ,UAAS,UAAS,YAAW,YAAW,UAAS,YAAW,UAAS,aAAY,SAAQ,YAAW,eAAc,UAAS,UAAS,YAAW,SAAQ,WAAU,UAAS,WAAU,WAAU,SAAQ,YAAW,QAAO,SAAQ,WAAU,YAAW,YAAW,aAAY,YAAW,aAAY,YAAW,UAAS,SAAQ,WAAU,WAAU,aAAY,WAAU,aAAY,YAAW,SAAQ,UAAS,SAAQ,WAAU,YAAW,YAAW,WAAU,WAAU,SAAQ,UAAS,SAAQ,QAAO,SAAQ,UAAS,SAAQ,SAAQ,WAAU,YAAW,WAAU,WAAU,WAAU,WAAU,YAAW,SAAQ,SAAQ,OAAM,QAAO,SAAQ,UAAS,QAAO,OAAM,YAAW,QAAO,QAAO,SAAQ,UAAS,WAAU,SAAQ,YAAW,OAAM,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,UAAS,WAAU,aAAY,OAAM,OAAM,QAAO,WAAU,WAAU,WAAU,YAAW,UAAS,SAAQ,UAAS,WAAU,YAAW,UAAS,WAAU,WAAU,UAAS,aAAY,cAAa,aAAY,YAAW,WAAU,WAAU,UAAS,WAAU,SAAQ,SAAQ,aAAY,UAAS,WAAU,aAAY,YAAW,SAAQ,WAAU,WAAU,UAAS,WAAU,UAAS,UAAS,SAAQ,YAAW,SAAQ,UAAS,SAAQ,YAAW,aAAY,WAAU,YAAW,UAAS,WAAU,WAAU,SAAQ,WAAU,QAAO,SAAQ,SAAQ,WAAU,WAAU,SAAQ,UAAS,YAAW,YAAW,UAAS,aAAY,WAAU,YAAW,WAAU,WAAU,WAAU,SAAQ,UAAS,SAAQ,QAAO,OAAM,WAAU,YAAW,cAAa,cAAa,aAAY,UAAS,UAAS,WAAU,aAAY,aAAY,WAAU,YAAW,SAAQ,UAAS,SAAQ,SAAQ,UAAS,YAAW,WAAU,aAAY,WAAU,OAAM,WAAU,WAAU,UAAS,YAAW,aAAY,SAAQ,SAAQ,aAAY,UAAS,aAAY,SAAQ,UAAS,QAAO,OAAM,QAAO,SAAQ,SAAQ,WAAU,WAAU,WAAU,SAAQ,eAAc,SAAQ,SAAQ,UAAS,WAAU,SAAQ,SAAQ,WAAU,QAAO,WAAU,aAAY,aAAY,SAAQ,WAAU,aAAY,YAAW,WAAU,WAAU,UAAS,WAAU,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,WAAU,YAAW,aAAY,WAAU,SAAQ,SAAQ,QAAO,UAAS,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,UAAS,UAAS,WAAU,QAAO,UAAS,UAAS,UAAS,WAAU,aAAY,YAAW,UAAS,SAAQ,WAAU,SAAQ,WAAU,SAAQ,SAAQ,WAAU,UAAS,QAAO,aAAY,SAAQ,UAAS,UAAS,UAAS,YAAW,QAAO,SAAQ,WAAU,UAAS,WAAU,SAAQ,WAAU,SAAQ,SAAQ,UAAS,WAAU,UAAS,UAAS,QAAO,UAAS,UAAS,SAAQ,UAAS,UAAS,QAAO,SAAQ,UAAS,OAAM,QAAO,WAAU,SAAQ,UAAS,UAAS,SAAQ,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,UAAS,YAAW,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,QAAO,QAAO,UAAS,OAAM,QAAO,UAAS,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,aAAY,SAAQ,SAAQ,SAAQ,QAAO,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,UAAS,UAAS,SAAQ,SAAQ,QAAO,SAAQ,SAAQ,UAAS,SAAQ,WAAU,UAAS,QAAO,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,SAAQ,SAAQ,SAAQ,UAAS,WAAU,YAAW,SAAQ,UAAS,SAAQ,SAAQ,UAAS,UAAS,WAAU,aAAY,UAAS,YAAW,YAAW,WAAU,YAAW,QAAO,QAAO,SAAQ,UAAS,aAAY,WAAU,QAAO,WAAU,WAAU,YAAW,YAAW,SAAQ,SAAQ,SAAQ,UAAS,SAAQ,QAAO,SAAQ,SAAQ,QAAO,WAAU,SAAQ,UAAS,UAAS,WAAU,UAAS,SAAQ,QAAO,UAAS,SAAQ,UAAS,QAAO,QAAO,SAAQ,QAAO,SAAQ,SAAQ,UAAS,QAAO,SAAQ,UAAS,UAAS,UAAS,UAAS,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,SAAQ,SAAQ,WAAU,SAAQ,UAAS,YAAW,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,OAAM,UAAS,QAAO,QAAO,WAAU,SAAQ,YAAW,UAAS,UAAS,QAAO,SAAQ,QAAO,QAAO,SAAQ,UAAS,WAAU,WAAU,UAAS,UAAS,SAAQ,QAAO,QAAO,WAAU,WAAU,WAAU,WAAU,OAAM,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,UAAS,UAAS,QAAO,QAAO,UAAS,YAAW,QAAO,WAAU,WAAU,WAAU,WAAU,WAAU,QAAO,SAAQ,UAAS,OAAM,UAAS,YAAW,WAAU,SAAQ,UAAS,SAAQ,WAAU,UAAS,SAAQ,SAAQ,WAAU,YAAW,OAAM,YAAW,WAAU,WAAU,YAAW,YAAW,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,YAAW,YAAW,SAAQ,UAAS,WAAU,WAAU,WAAU,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,YAAW,OAAM,UAAS,SAAQ,UAAS,SAAQ,OAAM,YAAW,YAAW,SAAQ,UAAS,SAAQ,QAAO,UAAS,QAAO,SAAQ,QAAO,SAAQ,SAAQ,SAAQ,WAAU,SAAQ,UAAS,OAAM,QAAO,SAAQ,WAAU,cAAa,YAAW,cAAa,cAAa,WAAU,WAAU,WAAU,SAAQ,UAAS,UAAS,QAAO,WAAU,YAAW,YAAW,cAAa,UAAS,YAAW,WAAU,WAAU,UAAS,aAAY,UAAS,UAAS,YAAW,WAAU,WAAU,UAAS,OAAM,QAAO,YAAW,aAAY,UAAS,SAAQ,SAAQ,SAAQ,SAAQ,aAAY,QAAO,SAAQ,UAAS,QAAO,UAAS,aAAY,aAAY,WAAU,OAAM,YAAW,SAAQ,SAAQ,QAAO,WAAU,WAAU,WAAU,SAAQ,UAAS,YAAW,aAAY,YAAW,WAAU,UAAS,WAAU,YAAW,OAAM,UAAS,OAAM,QAAO,WAAU,YAAW,aAAY,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,WAAU,QAAO,SAAQ,UAAS,WAAU,SAAQ,UAAS,SAAQ,SAAQ,QAAO,SAAQ,UAAS,WAAU,SAAQ,YAAW,UAAS,WAAU,SAAQ,SAAQ,SAAQ,OAAM,WAAU,QAAO,SAAQ,WAAU,YAAW,OAAM,QAAO,YAAW,QAAO,UAAS,WAAU,WAAU,UAAS,WAAU,YAAW,OAAM,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,SAAQ,UAAS,UAAS,UAAS,SAAQ,SAAQ,SAAQ,QAAO,QAAO,SAAQ,UAAS,UAAS,QAAO,SAAQ,UAAS,WAAU,SAAQ,UAAS,QAAO,SAAQ,UAAS,OAAM,SAAQ,QAAO,SAAQ,SAAQ,UAAS,WAAU,WAAU,WAAU,SAAQ,UAAS,UAAS,SAAQ,SAAQ,UAAS,SAAQ,WAAU,UAAS,QAAO,SAAQ,QAAO,SAAQ,UAAS,SAAQ,QAAO,SAAQ,QAAO,QAAO,QAAO,QAAO,WAAU,QAAO,UAAS,QAAO,SAAQ,UAAS,UAAS,SAAQ,UAAS,UAAS,SAAQ,UAAS,UAAS,WAAU,WAAU,SAAQ,UAAS,WAAU,YAAW,aAAY,aAAY,WAAU,QAAO,SAAQ,QAAO,WAAU,YAAW,YAAW,YAAW,QAAO,QAAO,SAAQ,UAAS,QAAO,UAAS,UAAS,WAAU,QAAO,QAAO,WAAU,SAAQ,UAAS,SAAQ,SAAQ,WAAU,UAAS,SAAQ,WAAU,QAAO,QAAO,SAAQ,QAAO,OAAM,QAAO,WAAU,aAAY,aAAY,YAAW,WAAU,WAAU,YAAW,aAAY,aAAY,YAAW,WAAU,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,QAAO,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,WAAU,aAAY,aAAY,YAAW,aAAY,UAAS,WAAU,WAAU,YAAW,SAAQ,UAAS,UAAS,UAAS,YAAW,QAAO,OAAM,QAAO,UAAS,UAAS,UAAS,WAAU,WAAU,QAAO,SAAQ,UAAS,QAAO,OAAM,WAAU,WAAU,YAAW,WAAU,WAAU,QAAO,UAAS,WAAU,WAAU,UAAS,WAAU,QAAO,SAAQ,SAAQ,UAAS,QAAO,WAAU,QAAO,WAAU,YAAW,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,QAAO,UAAS,UAAS,SAAQ,WAAU,SAAQ,QAAO,WAAU,SAAQ,SAAQ,UAAS,OAAM,WAAU,UAAS,SAAQ,UAAS,SAAQ,YAAW,aAAY,UAAS,UAAS,UAAS,OAAM,YAAW,UAAS,WAAU,SAAQ,SAAQ,SAAQ,UAAS,UAAS,SAAQ,UAAS,YAAW,YAAW,QAAO,YAAW,WAAU,SAAQ,YAAW,SAAQ,UAAS,UAAS,WAAU,QAAO,UAAS,UAAS,UAAS,UAAS,SAAQ,YAAW,UAAS,WAAU,UAAS,SAAQ,WAAU,YAAW,QAAO,SAAQ,QAAO,QAAO,UAAS,UAAS,aAAY,SAAQ,SAAQ,UAAS,WAAU,UAAS,SAAQ,SAAQ,SAAQ,QAAO,WAAU,UAAS,UAAS,QAAO,UAAS,UAAS,UAAS,UAAS,SAAQ,UAAS,WAAU,aAAY,WAAU,WAAU,UAAS,SAAQ,SAAQ,UAAS,UAAS,WAAU,WAAU,WAAU,UAAS,UAAS,WAAU,SAAQ,UAAS,SAAQ,UAAS,WAAU,SAAQ,UAAS,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,UAAS,SAAQ,UAAS,SAAQ,UAAS,WAAU,QAAO,UAAS,WAAU,WAAU,YAAW,UAAS,UAAS,QAAO,SAAQ,UAAS,YAAW,WAAU,UAAS,WAAU,UAAS,kBAAiB,WAAU,QAAO,SAAQ,WAAU,UAAS,UAAS,UAAS,UAAS,SAAQ,WAAU,UAAS,WAAU,UAAS,SAAQ,QAAO,UAAS,SAAQ,UAAS,WAAU,YAAW,YAAW,UAAS,WAAU,UAAS,UAAS,UAAS,SAAQ,QAAO,SAAQ,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,aAAY,SAAQ,UAAS,OAAM,UAAS,SAAQ,UAAS,SAAQ,WAAU,WAAU,WAAU,UAAS,SAAQ,WAAU,WAAU,WAAU,WAAU,YAAW,UAAS,QAAO,UAAS,SAAQ,WAAU,UAAS,UAAS,UAAS,UAAS,aAAY,WAAU,UAAS,WAAU,SAAQ,WAAU,UAAS,UAAS,UAAS,SAAQ,UAAS,SAAQ,SAAQ,UAAS,SAAQ,SAAQ,SAAQ,UAAS,WAAU,SAAQ,SAAQ,UAAS,SAAQ,UAAS,UAAS,aAAY,UAAS,WAAU,SAAQ,UAAS,UAAS,SAAQ,UAAS,UAAS,SAAQ,WAAU,QAAO,UAAS,YAAW,WAAU,SAAQ,SAAQ,YAAW,YAAW,YAAW,UAAS,WAAU,UAAS,UAAS,YAAW,YAAW,aAAY,cAAa,aAAY,UAAS,WAAU,YAAW,UAAS,WAAU,WAAU,YAAW,SAAQ,UAAS,WAAU,UAAS,OAAM,WAAU,SAAQ,QAAO,QAAO,SAAQ,YAAW,SAAQ,UAAS,aAAY,UAAS,WAAU,YAAW,WAAU,WAAU,QAAO,SAAQ,QAAO,UAAS,WAAU,WAAU,WAAU,QAAO,SAAQ,QAAO,SAAQ,UAAS,WAAU,WAAU,SAAQ,SAAQ,WAAU,UAAS,UAAS,WAAU,YAAW,SAAQ,UAAS,YAAW,SAAQ,UAAS,WAAU,SAAQ,SAAQ,UAAS,UAAS,UAAS,YAAW,SAAQ,SAAQ,UAAS,SAAQ,UAAS,WAAU,WAAU,UAAS,QAAO,UAAS,SAAQ,WAAU,SAAQ,UAAS,SAAQ,WAAU,SAAQ,QAAO,SAAQ,UAAS,SAAQ,UAAS,QAAO,SA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",
|
|
47
|
+
"debugId": "0B130525A243124D64756E2164756E21",
|
|
48
48
|
"names": []
|
|
49
49
|
}
|