@elizaos/core 2.0.0-alpha.132 → 2.0.0-alpha.133

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.
@@ -1 +1 @@
1
- {"version":3,"file":"chain-example.d.ts","sourceRoot":"","sources":["../../../src/advanced-planning/actions/chain-example.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,MAAM,EAON,MAAM,sBAAsB,CAAC;AAgB9B,eAAO,MAAM,kBAAkB,EAAE,MA8ChC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAwDnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAmEhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAmE9B,CAAC"}
1
+ {"version":3,"file":"chain-example.d.ts","sourceRoot":"","sources":["../../../src/advanced-planning/actions/chain-example.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,MAAM,EAON,MAAM,sBAAsB,CAAC;AAmB9B,eAAO,MAAM,kBAAkB,EAAE,MA8ChC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAwDnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAmEhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAmE9B,CAAC"}
@@ -3813,7 +3813,7 @@ ${r}`}).join(`
3813
3813
  `)},V=async(C,G)=>{let I=[...G],c=new Set(G.map((U)=>U.id));for(let[U,m]of d.entries())if(!c.has(U))I.push(m);return Km({messages:C,entities:I,conversationHeader:!0})},[E,D]=await Promise.all([T(z),V(z,Z)]),M={recentMessages:j,recentInteractions:z,actionResults:H},R={recentPosts:k,recentMessages:N,recentMessageInteractions:E,recentPostInteractions:D,recentInteractions:X?D:E,recentActionResults:v,recentMessage:S},L=[X?k:N,v,N||k||q.content.text?p:"",N||k||q.content.text?B:""].filter(Boolean).join(`
3814
3814
 
3815
3815
  `);return{data:{recentMessages:M.recentMessages,recentInteractions:M.recentInteractions,actionResults:M.actionResults},values:R,text:L}}};v8();var xZ$=d8("TIME"),PF={name:xZ$.name,description:xZ$.description,get:async($,q,K)=>{let Y=new Date,P={timeZone:"UTC",dateStyle:"full",timeStyle:"long"},O=new Intl.DateTimeFormat("en-US",P).format(Y);return{data:{timestamp:Y.getTime(),isoString:Y.toISOString()},values:{time:O},text:`The current date and time is ${O}. Please use this as your reference for any time-based operations or responses.`}}};v8();T8();R8();r6();var OF=d8("WORLD"),WF={name:OF.name,description:OF.description,dynamic:OF.dynamic??!0,get:async($,q,K)=>{J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,roomId:q.roomId},"World provider activated");let Y=await $.getRoom(q.roomId);if(!Y)return J$.warn({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,roomId:q.roomId},"Room not found"),{data:{world:{info:"Unable to retrieve world information - room not found"}},values:{},text:"Unable to retrieve world information - room not found"};J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,roomName:Y.name,roomType:Y.type},"Found room");let P=Y.worldId;if(!P)return J$.warn({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,roomId:q.roomId},"World ID not found"),{data:{world:{info:"Unable to retrieve world information - world ID not found"}},values:{},text:"Unable to retrieve world information - world ID not found"};let O=await $.getWorld(P);if(!O)return J$.warn({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,worldId:P},"World not found"),{data:{world:{info:"Unable to retrieve world information - world not found"}},values:{},text:"Unable to retrieve world information - world not found"};J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,worldName:O.name,worldId:O.id},"Found world");let W=await $.getRooms(P);J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,roomCount:W.length,worldName:O.name},"Found rooms in world");let _=await $.getParticipantsForRoom(q.roomId);J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,participantCount:_.length,roomName:Y.name},"Found participants in room");let J={text:[],voice:[],dm:[],feed:[],thread:[],other:[]};for(let X of W){if(!X?.id||!X.name){J$.warn({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId,roomId:X?.id},"Room ID or name is missing");continue}let f={id:X.id,name:X.name,isCurrentChannel:X.id===q.roomId};if(X.type===_8.GROUP||X.type===_8.WORLD||X.type===_8.FORUM)J.text.push(f);else if(X.type===_8.VOICE_GROUP||X.type===_8.VOICE_DM)J.voice.push(f);else if(X.type===_8.DM||X.type===_8.SELF)J.dm.push(f);else if(X.type===_8.FEED)J.feed.push(f);else if(X.type===_8.THREAD)J.thread.push(f);else J.other.push({...f,type:X.type})}let z=[`# World: ${O.name}`,`Current Channel: ${Y.name} (${Y.type})`,`Total Channels: ${W.length}`,`Participants in current channel: ${_.length}`,"",`Text channels: ${J.text.length}`,`Voice channels: ${J.voice.length}`,`DM channels: ${J.dm.length}`,`Feed channels: ${J.feed.length}`,`Thread channels: ${J.thread.length}`,`Other channels: ${J.other.length}`].join(`
3816
- `),H={world:{id:O.id,name:O.name,messageServerId:O.messageServerId,metadata:O.metadata||{},currentRoom:{id:Y.id,name:Y.name,type:Y.type,channelId:Y.channelId,participantCount:_.length},channels:J,channelStats:{total:W.length,text:J.text.length,voice:J.voice.length,dm:J.dm.length,feed:J.feed.length,thread:J.thread.length,other:J.other.length}}},j={worldName:O.name??null,currentChannelName:Y.name??null,worldInfo:z},Z=U8("# World Information",z);return J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId},"World provider completed successfully"),{data:{world:H.world},values:j,text:Z}}};v8();V9();T8();R8();r6();var hf=B8("ADD_CONTACT"),EW6=Q1("action.addContact.request",{includeAllLocales:!0}),_F={name:hf.name,description:hf.description,similes:hf.similes?[...hf.similes]:[],examples:hf.examples??[],validate:async($,q,K)=>{if(!$.getService("relationships"))return J$.warn("[AddContact] RelationshipsService not available"),!1;let P=q.content.text??"";if(!P)return!1;return kq(P,EW6)!==void 0},handler:async($,q,K,Y,P)=>{let O=$.getService("relationships");if(!O)throw Error("RelationshipsService not available");if(!K)K={values:{},data:{},text:""};K.values={...K.values,message:q.content.text,senderId:q.entityId,senderName:K.values?.senderName||"User"};let W=h8({state:K,template:hj$}),_=await $.useModel(k$.TEXT_SMALL,{prompt:W,stopSequences:[]}),J=B6(_);if(!J)throw J$.warn("[AddContact] Failed to parse contact information from response"),Error("Could not extract contact information");let z=J.contactName?.trim();if(!z)throw J$.warn("[AddContact] Missing contact name in response"),Error("Could not extract contact name");let H=J.entityId?N1(J.entityId):null;if(!H){let v=await sP($,q,K);if(v?.id)H=v.id;else{H=Z8(`contact-${z}-${$.agentId}`);let k={id:H,names:[z],agentId:$.agentId};await $.createEntity(k)}}if(!H)throw Error("Could not determine entity ID for contact");if(!await $.getEntityById(H))await $.createEntity({id:H,names:[z],agentId:$.agentId});let Z=J.categories?J.categories.split(",").map((v)=>v.trim()).filter(Boolean):["acquaintance"],X={};if(J.timezone)X.timezone=J.timezone;if(J.language)X.language=J.language;if(J.notes)X.notes=J.notes;let f=await O.addContact(H,Z,X,{displayName:z});J$.info(`[AddContact] Added contact ${z} (${H})`);let A=`I've added ${z} to your contacts as ${Z.join(", ")}. ${J.reason||"They have been saved to your relationships."}`;if(P)await P({text:A,action:"ADD_CONTACT",metadata:{contactId:H,contactName:z,categories:Z,success:!0}});return{success:!0,values:{contactId:H,contactName:z,categoriesStr:Z.join(",")},data:{contactId:H,contactName:z,categories:Z.join(",")},text:A}}};v8();V9();T8();R8();r6();var If=B8("FOLLOW_ROOM"),SW6=Q1("action.followRoom.request",{includeAllLocales:!0}),JF={name:If.name,similes:If.similes?[...If.similes]:[],description:If.description,examples:If.examples??[],validate:async($,q)=>{let K=q.content.text;if(!K||kq(K,SW6)===void 0)return!1;let Y=q.roomId,P=await $.getParticipantUserState(Y,$.agentId);return P!=="FOLLOWED"&&P!=="MUTED"},handler:async($,q,K,Y,P,O)=>{if(!K)return J$.error({src:"plugin:advanced-capabilities:action:follow_room",agentId:$.agentId},"State is required for followRoomAction"),{text:"State is required for follow room action",values:{success:!1,error:"STATE_REQUIRED"},data:{actionName:"FOLLOW_ROOM",error:"State is required"},success:!1,error:Error("State is required for followRoomAction")};async function W(H){let j=h8({state:H,template:Fj$}),Z=await $.useModel(k$.TEXT_SMALL,{prompt:j,stopSequences:[]}),f=B6(Z)?.decision??Z.trim(),A=String(f).trim().toLowerCase();if(G9(f)||A.includes("true")||A.includes("yes"))return await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I will now follow this room and chime in",actions:["FOLLOW_ROOM_STARTED"]}},"messages"),!0;if(A==="false"||A==="no"||A==="n"||A.includes("false")||A.includes("no"))return await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I decided to not follow this room",actions:["FOLLOW_ROOM_FAILED"]}},"messages"),!1;return J$.warn({src:"plugin:advanced-capabilities:action:follow_room",agentId:$.agentId,response:Z},"Unclear boolean response, defaulting to false"),!1}let _=await W(K),J=K.data.room??await $.getRoom(q.roomId);if(!J)return{text:"Could not find room to follow",values:{success:!1,error:"ROOM_NOT_FOUND"},data:{actionName:"FOLLOW_ROOM",error:"Room not found"},success:!1};let z=J.name??`Room-${q.roomId.substring(0,8)}`;if(_)try{return await $.updateParticipantUserState(q.roomId,$.agentId,"FOLLOWED"),await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{thought:`I followed the room ${z}`,actions:["FOLLOW_ROOM_START"]}},"messages"),{text:`Now following room: ${z}`,values:{success:!0,roomFollowed:!0,roomId:q.roomId,roomName:z,newState:"FOLLOWED"},data:{actionName:"FOLLOW_ROOM",roomId:q.roomId,roomName:z,followed:!0},success:!0}}catch(H){return J$.error({src:"plugin:advanced-capabilities:action:follow_room",agentId:$.agentId,error:H instanceof Error?H.message:String(H)},"Error following room"),{text:"Failed to follow room",values:{success:!1,error:"FOLLOW_FAILED"},data:{actionName:"FOLLOW_ROOM",error:H instanceof Error?H.message:String(H),roomId:q.roomId},success:!1,error:H instanceof Error?H:Error(String(H))}}else return{text:`Decided not to follow room: ${z}`,values:{success:!0,roomFollowed:!1,roomId:q.roomId,roomName:z,reason:"NOT_APPROPRIATE"},data:{actionName:"FOLLOW_ROOM",roomId:q.roomId,roomName:z,followed:!1,reason:"Decision criteria not met"},success:!0}}};YK();v8();V9();T8();R8();r6();var Lf=B8("GENERATE_IMAGE"),CW6=new Set(["png","jpg","jpeg","gif","webp","bmp"]),RW6=Q1("action.generateImage.strong",{includeAllLocales:!0}),hW6=Q1("action.generateImage.weak",{includeAllLocales:!0}),IW6=($)=>{let q=new URL($).pathname,K=q.lastIndexOf(".");if(K===-1||K===q.length-1)return"png";let Y=q.slice(K+1).toLowerCase();return CW6.has(Y)?Y:"png"},zF={name:Lf.name,similes:Lf.similes?[...Lf.similes]:[],description:Lf.description,validate:async($,q)=>{let K=typeof q?.content==="string"?q.content:q?.content?.text??"";if(!K)return!1;if(Rn([K],RW6).size>0)return!0;return Rn([K],hW6).size>=2},handler:async($,q,K,Y,P,O)=>{let W=[];if(O)for(let b of O){let y=b.content?.providers;if(y&&y.length>0)W.push(...y)}K=await $.composeState(q,[...W??[],"RECENT_MESSAGES"]);let _=h8({state:K,template:$.character.templates?.imageGenerationTemplate||gj$}),J=await $.useModel(k$.TEXT_LARGE,{prompt:_,stopSequences:[]}),H=B6(J)?.prompt,j=typeof H==="string"?H:"Unable to generate descriptive prompt for image",Z=await $.useModel(k$.IMAGE,{prompt:j}),X=Array.isArray(Z)?Z:typeof Z==="string"?[Z]:[],f=X[0],A=typeof f==="string"?f:f?.url;if(X.length===0||!A)return J$.error({src:"plugin:advanced-capabilities:action:image_generation",agentId:$.agentId,imagePrompt:j},"Image generation failed - no valid response received"),{text:"Image generation failed",values:{success:!1,error:"IMAGE_GENERATION_FAILED",prompt:j},data:{actionName:"GENERATE_IMAGE",prompt:j,rawResponse:X.map((b)=>({url:typeof b==="string"?b:b.url}))},success:!1};let v=A;J$.info({src:"plugin:advanced-capabilities:action:image_generation",agentId:$.agentId,imageUrl:v},"Received image URL");let k=IW6(v),S=`Generated_Image_${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.${k}`,x={attachments:[{id:I6(),url:v,title:S,contentType:m4.IMAGE}],thought:`Generated an image based on: "${j}"`,actions:["GENERATE_IMAGE"],text:j};if(P)await P(x);return{text:"Generated image",values:{success:!0,imageGenerated:!0,imageUrl:v,prompt:j},data:{actionName:"GENERATE_IMAGE",imageUrl:v,prompt:j},success:!0}},examples:Lf.examples??[]};v8();V9();T8();R8();r6();var xf=B8("MUTE_ROOM"),LW6=Q1("action.muteRoom.request",{includeAllLocales:!0}),HF={name:xf.name,similes:xf.similes?[...xf.similes]:[],description:xf.description,examples:xf.examples??[],validate:async($,q)=>{let K=typeof q?.content==="string"?q.content:q?.content?.text??"";if(kq(K,LW6)===void 0)return!1;let Y=q.roomId;return await $.getParticipantUserState(Y,$.agentId)!=="MUTED"},handler:async($,q,K,Y,P,O)=>{if(!K)return J$.error({src:"plugin:advanced-capabilities:action:mute_room",agentId:$.agentId},"State is required for muting a room"),{text:"State is required for mute room action",values:{success:!1,error:"STATE_REQUIRED"},data:{actionName:"MUTE_ROOM",error:"State is required"},success:!1,error:Error("State is required for muting a room")};async function W(H){let j=h8({state:H,template:Qj$}),Z=await $.useModel(k$.TEXT_SMALL,{prompt:j,stopSequences:[]}),f=B6(Z)?.decision??Z.trim(),A=String(f).trim().toLowerCase();if(G9(f)||A.includes("true")||A.includes("yes"))return await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I will now mute this room",actions:["MUTE_ROOM_STARTED"]}},"messages"),!0;if(A==="false"||A==="no"||A==="n"||A.includes("false")||A.includes("no"))await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I decided to not mute this room",actions:["MUTE_ROOM_FAILED"]}},"messages");return J$.warn({src:"plugin:advanced-capabilities:action:mute_room",agentId:$.agentId,response:Z},"Unclear boolean response, defaulting to false"),!1}let _=await W(K),J=K.data.room??await $.getRoom(q.roomId);if(!J)return{text:"Could not find room to mute",values:{success:!1,error:"ROOM_NOT_FOUND"},data:{actionName:"MUTE_ROOM",error:"Room not found"},success:!1};let z=J.name??`Room-${q.roomId.substring(0,8)}`;if(_)try{return await $.updateParticipantUserState(q.roomId,$.agentId,"MUTED"),await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{thought:`I muted the room ${z}`,actions:["MUTE_ROOM_START"]}},"messages"),{text:`Room muted: ${z}`,values:{success:!0,roomMuted:!0,roomId:q.roomId,roomName:z,newState:"MUTED"},data:{actionName:"MUTE_ROOM",roomId:q.roomId,roomName:z,muted:!0},success:!0}}catch(H){return J$.error({src:"plugin:advanced-capabilities:action:mute_room",agentId:$.agentId,error:H instanceof Error?H.message:String(H)},"Error muting room"),{text:"Failed to mute room",values:{success:!1,error:"MUTE_FAILED"},data:{actionName:"MUTE_ROOM",error:H instanceof Error?H.message:String(H),roomId:q.roomId},success:!1,error:H instanceof Error?H:Error(String(H))}}else return{text:`Decided not to mute room: ${z}`,values:{success:!0,roomMuted:!1,roomId:q.roomId,roomName:z,reason:"NOT_APPROPRIATE"},data:{actionName:"MUTE_ROOM",roomId:q.roomId,roomName:z,muted:!1,reason:"Decision criteria not met"},success:!0}}};v8();V9();T8();R8();r6();var bf=B8("REMOVE_CONTACT"),xW6=Q1("action.removeContact.request",{includeAllLocales:!0}),jF={name:bf.name,similes:bf.similes?[...bf.similes]:[],description:bf.description,examples:bf.examples??[],validate:async($,q,K)=>{let Y=!!$.getService("relationships"),P=q.content.text;if(!P)return!1;let O=kq(P,xW6);return Y&&!!O},handler:async($,q,K,Y,P)=>{try{let O=$.getService("relationships");if(!O)throw Error("RelationshipsService not available");let W={values:{...K?.values,message:q.content.text,senderName:K?.values?.senderName||"User",senderId:q.entityId},data:K?.data||{},text:K?.text||""},_=h8({state:W,template:Bj$}),J=await $.useModel(k$.TEXT_SMALL,{prompt:_,stopSequences:[]}),z=B6(J);if(!z?.contactName){J$.warn("[RemoveContact] No contact name provided"),await P?.({text:"I couldn't determine which contact to remove. Please specify the contact name."});return}if(z.confirmed?.trim().toLowerCase()!=="yes"){await P?.({text:`To remove ${z.contactName} from your contacts, please confirm by saying "yes, remove ${z.contactName}".`});return}let j=await O.searchContacts({searchTerm:z.contactName});if(j.length===0){await P?.({text:`I couldn't find a contact named "${z.contactName}" in the relationships.`});return}let Z=j[0];if(await O.removeContact(Z.entityId)){let f=`I've removed ${z.contactName} from your contacts.`;return await P?.({text:f,actions:["REMOVE_CONTACT"]}),J$.info(`[RemoveContact] Removed contact ${Z.entityId}`),{success:!0,values:{contactId:Z.entityId},data:{success:!0},text:f}}else throw Error("Failed to remove contact")}catch(O){J$.error("[RemoveContact] Error:",O instanceof Error?O.message:String(O)),await P?.({text:"I encountered an error while removing the contact. Please try again.",error:O instanceof Error?O.message:"Unknown error"})}}};v8();T8();R8();r6();var gf=B8("UPDATE_ROLE");function ZF($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function bZ$($){if(Array.isArray($))return $.filter((q)=>ZF(q)&&(typeof q.entityId==="string"||typeof q.newRole==="string"));if(ZF($)&&"assignment"in $)return bZ$($.assignment);if(ZF($)&&(typeof $.entityId==="string"||typeof $.newRole==="string"))return[$];return[]}var bW6="OWNER",gW6="ADMIN",yW6="MEMBER",cW6="GUEST",gZ$="NONE",XF={[bW6]:4,[gW6]:3,[yW6]:2,[cW6]:1,[gZ$]:0},uW6=($,q,K)=>{if(q===$)return!1;let Y=XF[$]??0,P=q!==null?XF[q]??0:-1,O=XF[K]??0;return Y>P&&Y>O},TF={name:gf.name,similes:gf.similes?[...gf.similes]:[],description:gf.description,examples:gf.examples??[],validate:async($,q,K)=>{let Y=q.content.channelType;if(Y!==_8.GROUP&&Y!==_8.WORLD)return!1;if(!(K?.data?.room??await $.getRoom(q.roomId))?.messageServerId)return!1;return!0},handler:async($,q,K,Y,P)=>{if(!K)return J$.error({src:"plugin:advanced-capabilities:action:update_role",agentId:$.agentId},"State is required for role assignment"),{text:"State is required for role assignment",values:{success:!1,error:"STATE_REQUIRED"},data:{actionName:"UPDATE_ROLE",error:"State is required"},success:!1,error:Error("State is required for role assignment")};let{roomId:O}=q,W=$.getSetting("WORLD_ID"),_=null;if(W)_=await $.getWorld(W);if(!_)return J$.error({src:"plugin:advanced-capabilities:action:update_role",agentId:$.agentId},"World not found"),await P?.({text:"I couldn't find the world. This action only works in a world."}),{text:"World not found",values:{success:!1,error:"WORLD_NOT_FOUND"},data:{actionName:"UPDATE_ROLE",error:"World not found"},success:!1};if(!_.metadata?.roles)_.metadata=_.metadata||{},_.metadata.roles={};let J=await $.getEntitiesForRoom(O),z=new Map;for(let S of J)if(S.id)z.set(S.id,S);let H=_.metadata.roles[q.entityId]||gZ$,j=LK({state:{...K.values,content:K.text},template:`# Task: Parse Role Assignment
3816
+ `),H={world:{id:O.id,name:O.name,messageServerId:O.messageServerId,metadata:O.metadata||{},currentRoom:{id:Y.id,name:Y.name,type:Y.type,channelId:Y.channelId,participantCount:_.length},channels:J,channelStats:{total:W.length,text:J.text.length,voice:J.voice.length,dm:J.dm.length,feed:J.feed.length,thread:J.thread.length,other:J.other.length}}},j={worldName:O.name??null,currentChannelName:Y.name??null,worldInfo:z},Z=U8("# World Information",z);return J$.debug({src:"plugin:basic-capabilities:provider:world",agentId:$.agentId},"World provider completed successfully"),{data:{world:H.world},values:j,text:Z}}};v8();V9();T8();R8();r6();var hf=B8("ADD_CONTACT"),EW6=Q1("action.addContact.request",{includeAllLocales:!0}),_F={name:hf.name,description:hf.description,similes:hf.similes?[...hf.similes]:[],examples:hf.examples??[],validate:async($,q,K)=>{if(!$.getService("relationships"))return J$.warn("[AddContact] RelationshipsService not available"),!1;let P=q.content.text??"";if(!P)return!1;return kq(P,EW6)!==void 0},handler:async($,q,K,Y,P)=>{let O=$.getService("relationships");if(!O)throw Error("RelationshipsService not available");if(!K)K={values:{},data:{},text:""};K.values={...K.values,message:q.content.text,senderId:q.entityId,senderName:K.values?.senderName||"User"};let W=h8({state:K,template:hj$}),_=await $.useModel(k$.TEXT_SMALL,{prompt:W,stopSequences:[]}),J=B6(_);if(!J)throw J$.warn("[AddContact] Failed to parse contact information from response"),Error("Could not extract contact information");let z=J.contactName?.trim();if(!z)throw J$.warn("[AddContact] Missing contact name in response"),Error("Could not extract contact name");let H=J.entityId?N1(J.entityId):null;if(!H){let v=await sP($,q,K);if(v?.id)H=v.id;else{H=Z8(`contact-${z}-${$.agentId}`);let k={id:H,names:[z],agentId:$.agentId};await $.createEntity(k)}}if(!H)throw Error("Could not determine entity ID for contact");if(!await $.getEntityById(H))await $.createEntity({id:H,names:[z],agentId:$.agentId});let Z=J.categories?J.categories.split(",").map((v)=>v.trim()).filter(Boolean):["acquaintance"],X={};if(J.timezone)X.timezone=J.timezone;if(J.language)X.language=J.language;if(J.notes)X.notes=J.notes;let f=await O.addContact(H,Z,X,{displayName:z});J$.info(`[AddContact] Added contact ${z} (${H})`);let A=`I've added ${z} to your contacts as ${Z.join(", ")}. ${J.reason||"They have been saved to your relationships."}`;if(P)await P({text:A,action:"ADD_CONTACT",metadata:{contactId:H,contactName:z,categories:Z,success:!0}});return{success:!0,values:{contactId:H,contactName:z,categoriesStr:Z.join(",")},data:{contactId:H,contactName:z,categories:Z.join(",")},text:A}}};v8();V9();T8();R8();r6();var If=B8("FOLLOW_ROOM"),SW6=Q1("action.followRoom.request",{includeAllLocales:!0}),JF={name:If.name,similes:If.similes?[...If.similes]:[],description:If.description,examples:If.examples??[],validate:async($,q)=>{let K=q.content.text;if(!K||kq(K,SW6)===void 0)return!1;let Y=q.roomId,P=await $.getParticipantUserState(Y,$.agentId);return P!=="FOLLOWED"&&P!=="MUTED"},handler:async($,q,K,Y,P,O)=>{if(!K)return J$.error({src:"plugin:advanced-capabilities:action:follow_room",agentId:$.agentId},"State is required for followRoomAction"),{text:"State is required for follow room action",values:{success:!1,error:"STATE_REQUIRED"},data:{actionName:"FOLLOW_ROOM",error:"State is required"},success:!1,error:Error("State is required for followRoomAction")};async function W(H){let j=h8({state:H,template:Fj$}),Z=await $.useModel(k$.TEXT_SMALL,{prompt:j,stopSequences:[]}),f=B6(Z)?.decision??Z.trim(),A=String(f).trim().toLowerCase();if(G9(f)||A.includes("true")||A.includes("yes"))return await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I will now follow this room and chime in",actions:["FOLLOW_ROOM_STARTED"]}},"messages"),!0;if(A==="false"||A==="no"||A==="n"||A.includes("false")||A.includes("no"))return await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I decided to not follow this room",actions:["FOLLOW_ROOM_FAILED"]}},"messages"),!1;return J$.warn({src:"plugin:advanced-capabilities:action:follow_room",agentId:$.agentId,response:Z},"Unclear boolean response, defaulting to false"),!1}let _=await W(K),J=K.data.room??await $.getRoom(q.roomId);if(!J)return{text:"Could not find room to follow",values:{success:!1,error:"ROOM_NOT_FOUND"},data:{actionName:"FOLLOW_ROOM",error:"Room not found"},success:!1};let z=J.name??`Room-${q.roomId.substring(0,8)}`;if(_)try{return await $.updateParticipantUserState(q.roomId,$.agentId,"FOLLOWED"),await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{thought:`I followed the room ${z}`,actions:["FOLLOW_ROOM_START"]}},"messages"),{text:`Now following room: ${z}`,values:{success:!0,roomFollowed:!0,roomId:q.roomId,roomName:z,newState:"FOLLOWED"},data:{actionName:"FOLLOW_ROOM",roomId:q.roomId,roomName:z,followed:!0},success:!0}}catch(H){return J$.error({src:"plugin:advanced-capabilities:action:follow_room",agentId:$.agentId,error:H instanceof Error?H.message:String(H)},"Error following room"),{text:"Failed to follow room",values:{success:!1,error:"FOLLOW_FAILED"},data:{actionName:"FOLLOW_ROOM",error:H instanceof Error?H.message:String(H),roomId:q.roomId},success:!1,error:H instanceof Error?H:Error(String(H))}}else return{text:`Decided not to follow room: ${z}`,values:{success:!0,roomFollowed:!1,roomId:q.roomId,roomName:z,reason:"NOT_APPROPRIATE"},data:{actionName:"FOLLOW_ROOM",roomId:q.roomId,roomName:z,followed:!1,reason:"Decision criteria not met"},success:!0}}};YK();v8();V9();T8();R8();r6();var Lf=B8("GENERATE_IMAGE"),CW6=new Set(["png","jpg","jpeg","gif","webp","bmp"]),RW6=Q1("action.generateImage.strong",{includeAllLocales:!0}),hW6=Q1("action.generateImage.weak",{includeAllLocales:!0}),IW6=($)=>{let q=new URL($).pathname,K=q.lastIndexOf(".");if(K===-1||K===q.length-1)return"png";let Y=q.slice(K+1).toLowerCase();return CW6.has(Y)?Y:"png"},zF={name:Lf.name,similes:Lf.similes?[...Lf.similes]:[],description:Lf.description,validate:async($,q)=>{let K=typeof q?.content==="string"?q.content:q?.content?.text??"";if(!K)return!1;if(Rn([K],RW6).size>0)return!0;return Rn([K],hW6).size>0},handler:async($,q,K,Y,P,O)=>{let W=[];if(O)for(let b of O){let y=b.content?.providers;if(y&&y.length>0)W.push(...y)}K=await $.composeState(q,[...W??[],"RECENT_MESSAGES"]);let _=h8({state:K,template:$.character.templates?.imageGenerationTemplate||gj$}),J=await $.useModel(k$.TEXT_LARGE,{prompt:_,stopSequences:[]}),H=B6(J)?.prompt,j=typeof H==="string"?H:"Unable to generate descriptive prompt for image",Z=await $.useModel(k$.IMAGE,{prompt:j}),X=Array.isArray(Z)?Z:typeof Z==="string"?[Z]:[],f=X[0],A=typeof f==="string"?f:f?.url;if(X.length===0||!A)return J$.error({src:"plugin:advanced-capabilities:action:image_generation",agentId:$.agentId,imagePrompt:j},"Image generation failed - no valid response received"),{text:"Image generation failed",values:{success:!1,error:"IMAGE_GENERATION_FAILED",prompt:j},data:{actionName:"GENERATE_IMAGE",prompt:j,rawResponse:X.map((b)=>({url:typeof b==="string"?b:b.url}))},success:!1};let v=A;J$.info({src:"plugin:advanced-capabilities:action:image_generation",agentId:$.agentId,imageUrl:v},"Received image URL");let k=IW6(v),S=`Generated_Image_${new Date().toISOString().replace(/[:.]/g,"-").slice(0,19)}.${k}`,x={attachments:[{id:I6(),url:v,title:S,contentType:m4.IMAGE}],thought:`Generated an image based on: "${j}"`,actions:["GENERATE_IMAGE"],text:j};if(P)await P(x);return{text:"Generated image",values:{success:!0,imageGenerated:!0,imageUrl:v,prompt:j},data:{actionName:"GENERATE_IMAGE",imageUrl:v,prompt:j},success:!0}},examples:Lf.examples??[]};v8();V9();T8();R8();r6();var xf=B8("MUTE_ROOM"),LW6=Q1("action.muteRoom.request",{includeAllLocales:!0}),HF={name:xf.name,similes:xf.similes?[...xf.similes]:[],description:xf.description,examples:xf.examples??[],validate:async($,q)=>{let K=typeof q?.content==="string"?q.content:q?.content?.text??"";if(kq(K,LW6)===void 0)return!1;let Y=q.roomId;return await $.getParticipantUserState(Y,$.agentId)!=="MUTED"},handler:async($,q,K,Y,P,O)=>{if(!K)return J$.error({src:"plugin:advanced-capabilities:action:mute_room",agentId:$.agentId},"State is required for muting a room"),{text:"State is required for mute room action",values:{success:!1,error:"STATE_REQUIRED"},data:{actionName:"MUTE_ROOM",error:"State is required"},success:!1,error:Error("State is required for muting a room")};async function W(H){let j=h8({state:H,template:Qj$}),Z=await $.useModel(k$.TEXT_SMALL,{prompt:j,stopSequences:[]}),f=B6(Z)?.decision??Z.trim(),A=String(f).trim().toLowerCase();if(G9(f)||A.includes("true")||A.includes("yes"))return await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I will now mute this room",actions:["MUTE_ROOM_STARTED"]}},"messages"),!0;if(A==="false"||A==="no"||A==="n"||A.includes("false")||A.includes("no"))await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{source:q.content.source,thought:"I decided to not mute this room",actions:["MUTE_ROOM_FAILED"]}},"messages");return J$.warn({src:"plugin:advanced-capabilities:action:mute_room",agentId:$.agentId,response:Z},"Unclear boolean response, defaulting to false"),!1}let _=await W(K),J=K.data.room??await $.getRoom(q.roomId);if(!J)return{text:"Could not find room to mute",values:{success:!1,error:"ROOM_NOT_FOUND"},data:{actionName:"MUTE_ROOM",error:"Room not found"},success:!1};let z=J.name??`Room-${q.roomId.substring(0,8)}`;if(_)try{return await $.updateParticipantUserState(q.roomId,$.agentId,"MUTED"),await $.createMemory({entityId:q.entityId,agentId:q.agentId,roomId:q.roomId,content:{thought:`I muted the room ${z}`,actions:["MUTE_ROOM_START"]}},"messages"),{text:`Room muted: ${z}`,values:{success:!0,roomMuted:!0,roomId:q.roomId,roomName:z,newState:"MUTED"},data:{actionName:"MUTE_ROOM",roomId:q.roomId,roomName:z,muted:!0},success:!0}}catch(H){return J$.error({src:"plugin:advanced-capabilities:action:mute_room",agentId:$.agentId,error:H instanceof Error?H.message:String(H)},"Error muting room"),{text:"Failed to mute room",values:{success:!1,error:"MUTE_FAILED"},data:{actionName:"MUTE_ROOM",error:H instanceof Error?H.message:String(H),roomId:q.roomId},success:!1,error:H instanceof Error?H:Error(String(H))}}else return{text:`Decided not to mute room: ${z}`,values:{success:!0,roomMuted:!1,roomId:q.roomId,roomName:z,reason:"NOT_APPROPRIATE"},data:{actionName:"MUTE_ROOM",roomId:q.roomId,roomName:z,muted:!1,reason:"Decision criteria not met"},success:!0}}};v8();V9();T8();R8();r6();var bf=B8("REMOVE_CONTACT"),xW6=Q1("action.removeContact.request",{includeAllLocales:!0}),jF={name:bf.name,similes:bf.similes?[...bf.similes]:[],description:bf.description,examples:bf.examples??[],validate:async($,q,K)=>{let Y=!!$.getService("relationships"),P=q.content.text;if(!P)return!1;let O=kq(P,xW6);return Y&&!!O},handler:async($,q,K,Y,P)=>{try{let O=$.getService("relationships");if(!O)throw Error("RelationshipsService not available");let W={values:{...K?.values,message:q.content.text,senderName:K?.values?.senderName||"User",senderId:q.entityId},data:K?.data||{},text:K?.text||""},_=h8({state:W,template:Bj$}),J=await $.useModel(k$.TEXT_SMALL,{prompt:_,stopSequences:[]}),z=B6(J);if(!z?.contactName){J$.warn("[RemoveContact] No contact name provided"),await P?.({text:"I couldn't determine which contact to remove. Please specify the contact name."});return}if(z.confirmed?.trim().toLowerCase()!=="yes"){await P?.({text:`To remove ${z.contactName} from your contacts, please confirm by saying "yes, remove ${z.contactName}".`});return}let j=await O.searchContacts({searchTerm:z.contactName});if(j.length===0){await P?.({text:`I couldn't find a contact named "${z.contactName}" in the relationships.`});return}let Z=j[0];if(await O.removeContact(Z.entityId)){let f=`I've removed ${z.contactName} from your contacts.`;return await P?.({text:f,actions:["REMOVE_CONTACT"]}),J$.info(`[RemoveContact] Removed contact ${Z.entityId}`),{success:!0,values:{contactId:Z.entityId},data:{success:!0},text:f}}else throw Error("Failed to remove contact")}catch(O){J$.error("[RemoveContact] Error:",O instanceof Error?O.message:String(O)),await P?.({text:"I encountered an error while removing the contact. Please try again.",error:O instanceof Error?O.message:"Unknown error"})}}};v8();T8();R8();r6();var gf=B8("UPDATE_ROLE");function ZF($){return typeof $==="object"&&$!==null&&!Array.isArray($)}function bZ$($){if(Array.isArray($))return $.filter((q)=>ZF(q)&&(typeof q.entityId==="string"||typeof q.newRole==="string"));if(ZF($)&&"assignment"in $)return bZ$($.assignment);if(ZF($)&&(typeof $.entityId==="string"||typeof $.newRole==="string"))return[$];return[]}var bW6="OWNER",gW6="ADMIN",yW6="MEMBER",cW6="GUEST",gZ$="NONE",XF={[bW6]:4,[gW6]:3,[yW6]:2,[cW6]:1,[gZ$]:0},uW6=($,q,K)=>{if(q===$)return!1;let Y=XF[$]??0,P=q!==null?XF[q]??0:-1,O=XF[K]??0;return Y>P&&Y>O},TF={name:gf.name,similes:gf.similes?[...gf.similes]:[],description:gf.description,examples:gf.examples??[],validate:async($,q,K)=>{let Y=q.content.channelType;if(Y!==_8.GROUP&&Y!==_8.WORLD)return!1;if(!(K?.data?.room??await $.getRoom(q.roomId))?.messageServerId)return!1;return!0},handler:async($,q,K,Y,P)=>{if(!K)return J$.error({src:"plugin:advanced-capabilities:action:update_role",agentId:$.agentId},"State is required for role assignment"),{text:"State is required for role assignment",values:{success:!1,error:"STATE_REQUIRED"},data:{actionName:"UPDATE_ROLE",error:"State is required"},success:!1,error:Error("State is required for role assignment")};let{roomId:O}=q,W=$.getSetting("WORLD_ID"),_=null;if(W)_=await $.getWorld(W);if(!_)return J$.error({src:"plugin:advanced-capabilities:action:update_role",agentId:$.agentId},"World not found"),await P?.({text:"I couldn't find the world. This action only works in a world."}),{text:"World not found",values:{success:!1,error:"WORLD_NOT_FOUND"},data:{actionName:"UPDATE_ROLE",error:"World not found"},success:!1};if(!_.metadata?.roles)_.metadata=_.metadata||{},_.metadata.roles={};let J=await $.getEntitiesForRoom(O),z=new Map;for(let S of J)if(S.id)z.set(S.id,S);let H=_.metadata.roles[q.entityId]||gZ$,j=LK({state:{...K.values,content:K.text},template:`# Task: Parse Role Assignment
3817
3817
 
3818
3818
  I need to extract user role assignments from the input text. Users can be referenced by name, username, or mention.
3819
3819
 
@@ -4681,5 +4681,5 @@ Please complete: ${$8.missingFields.concat($8.invalidFields,$8.incompleteFields)
4681
4681
  END
4682
4682
  `}}};var gF$={name:"central_messages",schema:"",columns:{id:{name:"id",type:"text",primaryKey:!0,notNull:!0},channel_id:{name:"channel_id",type:"text",notNull:!0},author_id:{name:"author_id",type:"text",notNull:!0},content:{name:"content",type:"text",notNull:!0},raw_message:{name:"raw_message",type:"jsonb"},in_reply_to_root_message_id:{name:"in_reply_to_root_message_id",type:"text"},source_type:{name:"source_type",type:"text"},source_id:{name:"source_id",type:"text"},metadata:{name:"metadata",type:"jsonb"},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},updated_at:{name:"updated_at",type:"timestamp",notNull:!0,default:"now()"}},indexes:{idx_messages_channel_created:{name:"idx_messages_channel_created",columns:[{expression:"channel_id",isExpression:!1},{expression:"created_at",isExpression:!1}],isUnique:!1},idx_messages_author:{name:"idx_messages_author",columns:[{expression:"author_id",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_message_channel:{name:"fk_message_channel",tableFrom:"central_messages",tableTo:"channels",columnsFrom:["channel_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""},fk_message_reply:{name:"fk_message_reply",tableFrom:"central_messages",tableTo:"central_messages",columnsFrom:["in_reply_to_root_message_id"],columnsTo:["id"],onDelete:"set null",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var yF$={name:"message_servers",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0},name:{name:"name",type:"text",notNull:!0},source_type:{name:"source_type",type:"text",notNull:!0},source_id:{name:"source_id",type:"text"},metadata:{name:"metadata",type:"jsonb"},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},updated_at:{name:"updated_at",type:"timestamp",notNull:!0,default:"now()"}},indexes:{idx_ms_source:{name:"idx_ms_source",columns:[{expression:"source_type",isExpression:!1},{expression:"source_id",isExpression:!1}],isUnique:!1}},foreignKeys:{},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var cF$={name:"message_server_agents",schema:"",columns:{message_server_id:{name:"message_server_id",type:"uuid",notNull:!0},agent_id:{name:"agent_id",type:"uuid",notNull:!0}},indexes:{idx_msa_agent:{name:"idx_msa_agent",columns:[{expression:"agent_id",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_message_server_agent_server:{name:"fk_message_server_agent_server",tableFrom:"message_server_agents",tableTo:"message_servers",columnsFrom:["message_server_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""},fk_message_server_agent_agent:{name:"fk_message_server_agent_agent",tableFrom:"message_server_agents",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{message_server_agents_pk:{name:"message_server_agents_pk",columns:["message_server_id","agent_id"]}},uniqueConstraints:{},checkConstraints:{}};var uF$={name:"pairing_allowlist",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"defaultRandom()"},channel:{name:"channel",type:"text",notNull:!0},sender_id:{name:"sender_id",type:"text",notNull:!0},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},metadata:{name:"metadata",type:"jsonb",default:"{}"},agent_id:{name:"agent_id",type:"uuid",notNull:!0}},indexes:{pairing_allowlist_channel_agent_idx:{name:"pairing_allowlist_channel_agent_idx",columns:[{expression:"channel",isExpression:!1},{expression:"agent_id",isExpression:!1}],isUnique:!1},pairing_allowlist_sender_channel_agent_idx:{name:"pairing_allowlist_sender_channel_agent_idx",columns:[{expression:"sender_id",isExpression:!1},{expression:"channel",isExpression:!1},{expression:"agent_id",isExpression:!1}],isUnique:!0}},foreignKeys:{fk_pairing_allowlist_agent:{name:"fk_pairing_allowlist_agent",tableFrom:"pairing_allowlist",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var pF$={name:"pairing_requests",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"defaultRandom()"},channel:{name:"channel",type:"text",notNull:!0},sender_id:{name:"sender_id",type:"text",notNull:!0},code:{name:"code",type:"text",notNull:!0},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},last_seen_at:{name:"last_seen_at",type:"timestamp",notNull:!0,default:"now()"},metadata:{name:"metadata",type:"jsonb",default:"{}"},agent_id:{name:"agent_id",type:"uuid",notNull:!0}},indexes:{pairing_requests_channel_agent_idx:{name:"pairing_requests_channel_agent_idx",columns:[{expression:"channel",isExpression:!1},{expression:"agent_id",isExpression:!1}],isUnique:!1},pairing_requests_code_channel_agent_idx:{name:"pairing_requests_code_channel_agent_idx",columns:[{expression:"code",isExpression:!1},{expression:"channel",isExpression:!1},{expression:"agent_id",isExpression:!1}],isUnique:!0},pairing_requests_sender_channel_agent_idx:{name:"pairing_requests_sender_channel_agent_idx",columns:[{expression:"sender_id",isExpression:!1},{expression:"channel",isExpression:!1},{expression:"agent_id",isExpression:!1}],isUnique:!0}},foreignKeys:{fk_pairing_request_agent:{name:"fk_pairing_request_agent",tableFrom:"pairing_requests",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var UF$={name:"participants",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"gen_random_uuid()"},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},entity_id:{name:"entity_id",type:"uuid"},room_id:{name:"room_id",type:"uuid"},agent_id:{name:"agent_id",type:"uuid"},room_state:{name:"room_state",type:"text"}},indexes:{idx_participants_user:{name:"idx_participants_user",columns:[{expression:"entity_id",isExpression:!1}],isUnique:!1},idx_participants_room:{name:"idx_participants_room",columns:[{expression:"room_id",isExpression:!1}],isUnique:!1},idx_participants_entity_room:{name:"idx_participants_entity_room",columns:[{expression:"entity_id",isExpression:!1},{expression:"room_id",isExpression:!1}],isUnique:!0},idx_participants_agent:{name:"idx_participants_agent",columns:[{expression:"agent_id",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_room:{name:"fk_room",tableFrom:"participants",tableTo:"rooms",columnsFrom:["room_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""},fk_user:{name:"fk_user",tableFrom:"participants",tableTo:"entities",columnsFrom:["entity_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var BF$={name:"relationships",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"gen_random_uuid()"},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},source_entity_id:{name:"source_entity_id",type:"uuid",notNull:!0},target_entity_id:{name:"target_entity_id",type:"uuid",notNull:!0},agent_id:{name:"agent_id",type:"uuid",notNull:!0},tags:{name:"tags",type:"text[]"},metadata:{name:"metadata",type:"jsonb"}},indexes:{idx_relationships_users:{name:"idx_relationships_users",columns:[{expression:"source_entity_id",isExpression:!1},{expression:"target_entity_id",isExpression:!1}],isUnique:!1},idx_relationships_target:{name:"idx_relationships_target",columns:[{expression:"target_entity_id",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_user_a:{name:"fk_user_a",tableFrom:"relationships",tableTo:"entities",columnsFrom:["source_entity_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""},fk_user_b:{name:"fk_user_b",tableFrom:"relationships",tableTo:"entities",columnsFrom:["target_entity_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""},fk_relationship_agent:{name:"fk_relationship_agent",tableFrom:"relationships",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{unique_relationship:{name:"unique_relationship",columns:["source_entity_id","target_entity_id","agent_id"]}},checkConstraints:{}};var dF$={name:"rooms",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"gen_random_uuid()"},agent_id:{name:"agent_id",type:"uuid"},source:{name:"source",type:"text",notNull:!0},type:{name:"type",type:"text",notNull:!0},message_server_id:{name:"message_server_id",type:"uuid"},world_id:{name:"world_id",type:"uuid"},name:{name:"name",type:"text"},metadata:{name:"metadata",type:"jsonb"},channel_id:{name:"channel_id",type:"text"},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"}},indexes:{idx_rooms_agent:{name:"idx_rooms_agent",columns:[{expression:"agent_id",isExpression:!1}],isUnique:!1},idx_rooms_world:{name:"idx_rooms_world",columns:[{expression:"world_id",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_room_agent:{name:"fk_room_agent",tableFrom:"rooms",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var mF$={name:"servers",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"},updated_at:{name:"updated_at",type:"timestamp",notNull:!0,default:"now()"}},indexes:{},foreignKeys:{},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var nF$={name:"tasks",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"defaultRandom()"},name:{name:"name",type:"text",notNull:!0},description:{name:"description",type:"text"},room_id:{name:"room_id",type:"uuid"},world_id:{name:"world_id",type:"uuid"},entity_id:{name:"entity_id",type:"uuid"},agent_id:{name:"agent_id",type:"uuid",notNull:!0},tags:{name:"tags",type:"text[]",default:"[]"},metadata:{name:"metadata",type:"jsonb",default:"{}"},created_at:{name:"created_at",type:"timestamp",default:"now()"},updated_at:{name:"updated_at",type:"timestamp",default:"now()"}},indexes:{idx_tasks_agent:{name:"idx_tasks_agent",columns:[{expression:"agent_id",isExpression:!1}],isUnique:!1},idx_tasks_agent_name:{name:"idx_tasks_agent_name",columns:[{expression:"agent_id",isExpression:!1},{expression:"name",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_task_agent:{name:"fk_task_agent",tableFrom:"tasks",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};var FF$={name:"worlds",schema:"",columns:{id:{name:"id",type:"uuid",primaryKey:!0,notNull:!0,default:"gen_random_uuid()"},agent_id:{name:"agent_id",type:"uuid",notNull:!0},name:{name:"name",type:"text",notNull:!0},metadata:{name:"metadata",type:"jsonb"},message_server_id:{name:"message_server_id",type:"uuid"},created_at:{name:"created_at",type:"timestamp",notNull:!0,default:"now()"}},indexes:{idx_worlds_agent:{name:"idx_worlds_agent",columns:[{expression:"agent_id",isExpression:!1}],isUnique:!1}},foreignKeys:{fk_world_agent:{name:"fk_world_agent",tableFrom:"worlds",tableTo:"agents",columnsFrom:["agent_id"],columnsTo:["id"],onDelete:"cascade",schemaTo:""}},compositePrimaryKeys:{},uniqueConstraints:{},checkConstraints:{}};function jn6($,q){return{agent:$(EF$,q),cache:$(SF$,q),channel:$(CF$,q),channelParticipant:$(RF$,q),component:$(hF$,q),embedding:$(IF$,q),entity:$(LF$,q),log:$(xF$,q),memory:$(bF$,q),message:$(gF$,q),messageServer:$(yF$,q),messageServerAgent:$(cF$,q),pairingAllowlist:$(uF$,q),pairingRequest:$(pF$,q),participant:$(UF$,q),relationship:$(BF$,q),room:$(dF$,q),server:$(mF$,q),task:$(nF$,q),world:$(FF$,q)}}R8();class QF${serviceType;startFn;stopFn;description;constructor($){this.serviceType=$,this.description=""}withDescription($){return this.description=$,this}withStart($){return this.startFn=$,this}withStop($){return this.stopFn=$,this}build(){let $=this.serviceType,q=this.description,K=this.startFn,Y=this.stopFn,P=class extends H1{capabilityDescription=q;async stop(){if(Y)await Y()}};return Object.defineProperty(P,"serviceType",{value:$,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(P,"start",{value:async(W)=>{if(!K)throw Error(`Start function not defined for service ${$}`);return K(W)},writable:!1,enumerable:!0,configurable:!1}),P}}function Zn6($){return new QF$($)}function Bd8($){return Zn6($.serviceType).withDescription($.description).withStart($.start).withStop($.stop||(()=>Promise.resolve())).build()}z_();R8();r6();_z();var Qd8=!0,id8=!1,ld8={check:async()=>({status:"not-applicable",environment:"browser"}),isHealthy:()=>!0};export{OK6 as validateUuid,PW8 as validateCharacterConfig,Vf as validateCharacter,Wj$ as validateActionParams,Cj$ as uuidSchema,PZ8 as updateWorldSettings,W_8 as updateSettingsTemplate,P_8 as updateRoleTemplate,K_8 as updateEntityTemplate,rj$ as updateContactTemplate,JO as unsaltWorldSettings,m_6 as unsaltSettingValue,Pm as truncateToCompleteSentence,ZK8 as trimTokens,LH$ as toJson,UZ$ as toHex,oj$ as thinkTemplate,Af as summarizationEvaluator,SO6 as styleSchema,p38 as stripPluginOnlyAllowlist,Z8 as stringToUuid,eM as splitChunks,C38 as snakeToCamel,DF as slice,lj$ as shouldUnmuteRoomTemplate,ij$ as shouldUnfollowRoomTemplate,tW8 as shouldRespondWithContextTemplate,An as shouldRespondTemplate,Qj$ as shouldMuteRoomTemplate,Fj$ as shouldFollowRoomTemplate,RO6 as settingsSchema,sH as setTrajectoryPurpose,jj$ as setTrajectoryContextManager,dU8 as setStreamingContextManager,jQ6 as setEnv,uP8 as setEntityRole,xP8 as setConnectorAdminWhitelist,Mj$ as sessionSummaries,ld8 as serverHealth,hO6 as secretsSchema,nj$ as searchContactsTemplate,mj$ as scheduleFollowUpTemplate,oF as saltWorldSettings,d_6 as saltSettingValue,XK8 as safeReplacer,gN as runWithTrajectoryContext,HL as runWithStreamingContext,RN as resolveWorldForMessage,g38 as resolveToolProfilePolicy,tH$ as resolveEntityRole,yP8 as resolveCanonicalOwnerIdForMessage,tm as resolveCanonicalOwnerId,dj$ as replyTemplate,IQ6 as removeLogListener,Bj$ as removeContactTemplate,dW8 as reflectionTemplate,Uj$ as reflectionEvaluatorTemplate,uQ6 as recentLogs,aW6 as randomBytes,bH$ as proto,TK8 as prewarmUuidCache,pj$ as postCreationTemplate,fn as postActionDecisionTemplate,B6 as parseKeyValueXml,pH as parseJSONObjectFromText,YW8 as parseCharacter,G9 as parseBooleanFromText,sO8 as parseAndValidateCharacter,xN as parseActionParams,uj$ as optionExtractionTemplate,kN as normalizeToolName,cH$ as normalizeToolList,gP6 as normalizeRole,jK8 as normalizeJsonString,Hn as normalizeCharacterInput,cj$ as multiStepSummaryTemplate,yj$ as multiStepDecisionTemplate,YZ8 as migrateEncryptedStringValue,uN as messageHandlerTemplate,Rj$ as messageExampleSchema,NO6 as messageExampleGroupSchema,xW8 as messageClassifierTemplate,U38 as mergeToolPolicies,pU8 as mergeHybridResults,OW8 as mergeCharacterDefaults,Dj$ as memoryAccessLogs,AO6 as mediaSchema,MN as matchEntityToConnectorAdminWhitelist,SK8 as mapLegacyEvents,XK6 as mapLegacyEvent,vf as longTermMemoryProvider,vj$ as longTermMemories,ff as longTermExtractionEvaluator,J$ as logger,bQ6 as logResponse,xQ6 as logPrompt,yQ6 as logChatOut,gQ6 as logChatIn,fQ6 as loadEnvFile,MO6 as knowledgeItemSchema,VO6 as knowledgeDirectorySchema,eO8 as isValidCharacter,B38 as isToolAllowedByPolicy,bK8 as isStreamableModelType,UK8 as isStepCompleted,h8$ as isSimpleReplyResponse,id8 as isNode,fW8 as isMessageMetadata,wW8 as isFragmentMetadata,VW8 as isFragmentMemory,TW8 as isDocumentMetadata,vW8 as isDocumentMemory,AW8 as isDescriptionMetadata,GW8 as isCustomMetadata,iW6 as isBuffer,Qd8 as isBrowser,WZ8 as initializeOnboarding,TQ6 as initBrowserEnvironment,gj$ as imageGenerationTemplate,wn as imageDescriptionTemplate,aM as hasFirstSentence,ZQ6 as hasEnv,hP6 as hasConfiguredCanonicalOwner,OZ8 as getWorldSettings,QH$ as getUserServerRole,h38 as getTypedService,aP8 as getTrajectoryContextManager,X3 as getTrajectoryContext,mU8 as getStreamingContextManager,V8$ as getStreamingContext,p_$ as getStepIndex,cK as getSalt,pK8 as getPreviousStep,FK8 as getPairingIdLabel,$x as getNumberEnv,uK8 as getNextStep,u_$ as getModelFallbackChain,DW8 as getMemoryText,tM as getLocalServerUrl,rH$ as getLiveEntityMetadataFromMessage,kP as getEnvironment,h7 as getEnv,SN as getEntityRole,rH as getEntityDetails,wK8 as getContentTypeFromMimeType,oH$ as getConnectorAdminWhitelist,em as getConfiguredOwnerEntityIds,XQ6 as getBooleanEnv,vF as fromString,xH$ as fromJson,GF as fromHex,oW6 as fromBytes,h_$ as formatTimestamp,Km as formatPosts,Ym as formatMessages,dH$ as formatEntities,Pj$ as formatActions,oP6 as formatActionParameters,Yj$ as formatActionNames,jf as findWorldsForOwner,VQ$ as findEnvFile,sP as findEntityByName,gm6 as extractStandaloneActionParams,cH as extractFirstSentence,lm as expandToolGroups,u38 as expandPolicyWithPluginGroups,yH$ as expandPluginGroups,rW6 as equals,_Z8 as encryptedCharacter,lF as encryptStringValue,n_6 as encryptObjectValues,cQ6 as elizaLogger,x1$ as detectEnvironment,Bd8 as defineService,JZ8 as decryptedCharacter,nf as decryptStringValue,nf as decryptSecret,F_6 as decryptObjectValues,LQ6 as customLevels,wQ6 as currentRuntime,Yq as createUniqueUuid,U_6 as createSettingFromConfig,I38 as createServiceError,Zn6 as createService,XW8 as createMessageMemory,PT as createLogger,KW8 as createCharacter,fO6 as createAdvancedMemoryPlugin,Gf as contextSummaryProvider,vO6 as contentSchema,VF as concat,h8 as composePromptFromState,LK as composePrompt,FP8 as composeActionExamples,QP8 as composeActionCallExamples,y38 as collectExplicitAllowlist,KZ8 as clearSaltCache,RW8 as chooseOptionTemplate,cP8 as checkSenderRole,bP8 as checkSenderPrivateAccess,IO6 as characterSchema,gP8 as canModifyRole,BK8 as calculateProgress,tW6 as byteLength,c38 as buildPluginToolGroups,cU8 as buildFtsQuery,WW8 as buildCharacterPlugins,jn6 as buildBaseTables,nN as bufferToString,J_8 as booleanFooter,uU8 as bm25RankToScore,bj$ as autonomyTaskFirstTemplate,xj$ as autonomyTaskContinueTemplate,Lj$ as autonomyContinuousFirstTemplate,Ij$ as autonomyContinuousContinueTemplate,N1 as asUUID,lW6 as alloc,hQ6 as addLogListener,U8 as addHeader,hj$ as addContactTemplate,SQ6 as __loggerTestHooks,vK8 as VECTOR_DIMS,__8 as UPDATE_SETTINGS_TEMPLATE,O_8 as UPDATE_ROLE_TEMPLATE,Y_8 as UPDATE_ENTITY_TEMPLATE,q_8 as UPDATE_CONTACT_TEMPLATE,k5 as TrajectoriesService,A8$ as Tokenizer,m38 as TRIGGER_SCHEMA_VERSION,fP6 as TOOL_PROFILES,TP6 as TOOL_NAME_ALIASES,wP6 as TOOL_GROUPS,$_8 as THINK_TEMPLATE,bK as ServiceType,QF$ as ServiceBuilder,H1 as Service,zn6 as Semaphore,TK6 as SOCKET_MESSAGE_TYPE,eW8 as SHOULD_UNMUTE_ROOM_TEMPLATE,sW8 as SHOULD_UNFOLLOW_ROOM_TEMPLATE,aW8 as SHOULD_RESPOND_WITH_CONTEXT_TEMPLATE,rW8 as SHOULD_RESPOND_TEMPLATE,oW8 as SHOULD_MUTE_ROOM_TEMPLATE,lW8 as SHOULD_FOLLOW_ROOM_TEMPLATE,iW8 as SEARCH_CONTACTS_TEMPLATE,QW8 as SCHEDULE_FOLLOW_UP_TEMPLATE,DK8 as Role,NN as ROLE_RANK,Rm6 as RESERVED_XML_KEYS,FW8 as REPLY_TEMPLATE,nW8 as REMOVE_CONTACT_TEMPLATE,mW8 as REFLECTION_TEMPLATE,BW8 as REFLECTION_EVALUATOR_TEMPLATE,jK6 as PlatformPrefix,UW8 as POST_CREATION_TEMPLATE,pW8 as POST_ACTION_DECISION_TEMPLATE,AK6 as PAIRING_ID_LABELS,nK8 as PAIRING_CODE_ALPHABET,I4 as OnboardingStep,uW8 as OPTION_EXTRACTION_TEMPLATE,sw as ONBOARDING_STEP_ORDER,yK8 as ONBOARDING_STEP_LABELS,cK8 as ONBOARDING_STEP_DESCRIPTIONS,k$ as ModelType,D1 as MemoryType,qj as MemoryService,cW8 as MULTI_STEP_SUMMARY_TEMPLATE,yW8 as MULTI_STEP_DECISION_TEMPLATE,xK8 as MODEL_SETTINGS,hK8 as MESSAGE_STREAM_EVENT,gW8 as MESSAGE_HANDLER_TEMPLATE,bW8 as MESSAGE_CLASSIFIER_TEMPLATE,JK8 as MAX_EMBEDDING_TOKENS,zK8 as MAX_EMBEDDING_CHARS,wf as LongTermMemoryCategory,LK8 as LLMMode,ZK6 as LEGACY_EVENT_MAP,Tn as InMemoryDatabaseAdapter,HP6 as IWebSearchService,PP6 as IWalletService,_P6 as IVideoService,WP6 as ITranscriptionService,YP6 as ITokenDataService,XP6 as IPostService,zP6 as IPdfService,ZP6 as IMessagingService,LW8 as IMAGE_GENERATION_TEMPLATE,IW8 as IMAGE_DESCRIPTION_TEMPLATE,OP6 as ILpService,jP6 as IEmailService,JP6 as IBrowserService,rw as EventType,g1$ as Environment,x8$ as DefaultMessageService,jn as DatabaseAdapter,_m as DEFAULT_UUID,mK8 as DEFAULT_PAIRING_CONFIG,HK8 as DEFAULT_MAX_PROMPT_TOKENS,M_$ as DEFAULT_MAX_EMBEDDING_TOKENS,KK6 as DEFAULT_MAX_EMBEDDING_CHARS,_K8 as DEFAULT_MAX_CONVERSATION_TOKENS,EK8 as DEFAULT_HOOK_PRIORITY,m4 as ContentType,_8 as ChannelType,hW8 as CHOOSE_OPTION_TEMPLATE,H2 as BufferUtils,GK6 as BatcherDisposedError,z_8 as BOOLEAN_FOOTER,G8$ as BM25,HK6 as AgentStatus,i2 as AgentRuntime,CW8 as AUTONOMY_TASK_FIRST_TEMPLATE,SW8 as AUTONOMY_TASK_CONTINUE_TEMPLATE,EW8 as AUTONOMY_CONTINUOUS_FIRST_TEMPLATE,NW8 as AUTONOMY_CONTINUOUS_CONTINUE_TEMPLATE,MW8 as ADD_CONTACT_TEMPLATE};
4683
4683
 
4684
- //# debugId=28BF0F41AA42F2CF64756E2164756E21
4684
+ //# debugId=034789FAFC4C7F1064756E2164756E21
4685
4685
  //# sourceMappingURL=index.browser.js.map