a tool to help your Letta AI agents navigate bluesky
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 8f5306ab3dad80dbbc83a88a3f21465c47a8fc9d 102 lines 3.1 kB view raw
1import type { AppBskyNotificationListNotifications } from "@atproto/api"; 2import { 3 allAgentTools, 4 configAgentTools, 5 requiredAgentTools, 6 validAutomationLevels, 7 validNotifTypes, 8} from "./const.ts"; 9export type Notification = AppBskyNotificationListNotifications.Notification; 10 11export type AutomationLevel = typeof validAutomationLevels[number]; 12export type ResponsiblePartyType = "person" | "organization"; 13 14export type notifType = typeof validNotifTypes[number]; 15 16export type configAgentTool = typeof configAgentTools[number]; 17export type requiredAgentTool = typeof requiredAgentTools[number]; 18export type allAgentTool = typeof allAgentTools[number]; 19 20export type agentContextObject = { 21 // state 22 busy: boolean; 23 sleeping: boolean; 24 checkCount: number; 25 reflectionCount: number; 26 processingCount: number; 27 proactiveCount: number; 28 likeCount: number; 29 repostCount: number; 30 followCount: number; 31 mentionCount: number; 32 replyCount: number; 33 quoteCount: number; 34 // required manual variables 35 lettaProjectIdentifier: string; 36 agentBskyHandle: string; 37 agentBskyName: string; 38 responsiblePartyName: string; // what person or org is responsible for this bot? 39 responsiblePartyContact: string; // email or url for people to contact about bot 40 // required variables with fallbacks 41 agentBskyServiceUrl: string; 42 automationLevel: AutomationLevel; 43 supportedNotifTypes: notifType[]; 44 supportedTools: allAgentTool[]; 45 notifDelayMinimum: number; 46 notifDelayMaximum: number; 47 notifDelayMultiplier: number; 48 reflectionDelayMinimum: number; 49 reflectionDelayMaximum: number; 50 proactiveDelayMinimum: number; 51 proactiveDelayMaximum: number; 52 wakeTime: number; 53 sleepTime: number; 54 timeZone: string; 55 responsiblePartyType: string; // person / organization 56 preserveAgentMemory: boolean; // if true, mount won't update existing memory blocks 57 // set automatically 58 agentBskyDID: string; 59 reflectionEnabled: boolean; 60 proactiveEnabled: boolean; 61 sleepEnabled: boolean; 62 notifDelayCurrent: number; 63 // optional 64 automationDescription?: string; // short description of what this agent does 65 disclosureUrl?: string; // url to a ToS/Privacy Policy style page 66 responsiblePartyBsky?: string; // handle w/o @ or DID of responsible party 67}; 68 69export type AutonomyDeclarationRecord = { 70 $type: "studio.voyager.account.autonomy"; 71 72 // How automated is this account? 73 automationLevel?: "human" | "assisted" | "collaborative" | "automated"; 74 75 // Is AI involved in content creation? 76 usesGenerativeAI?: boolean; 77 78 // Plain language explanation 79 description?: string; // maxGraphemes: 300 80 81 // Who is accountable for this account? 82 responsibleParty?: { 83 type?: "person" | "organization"; 84 name?: string; 85 contact?: string; // email, URL, handle, or DID 86 did?: string; // ATProto DID 87 }; 88 89 // Where can someone learn more? 90 disclosureUrl?: string; // URI format 91 92 // When was this declaration created? 93 createdAt: string; // ISO datetime (required) 94}; 95 96export type memoryBlock = { 97 label: string; 98 description: string; 99 readOnly: boolean; 100 limit: number; 101 value: string; 102};