@elizaos/plugin-farcaster 2.0.0-alpha.3 → 2.0.0-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/cjs/index.node.cjs +19 -15
- package/dist/cjs/index.node.js.map +8 -8
- package/dist/node/index.node.js +19 -15
- package/dist/node/index.node.js.map +8 -8
- package/package.json +1 -1
package/dist/cjs/index.node.cjs
CHANGED
|
@@ -47,13 +47,15 @@ var coreActionsSpec = {
|
|
|
47
47
|
version: "1.0.0",
|
|
48
48
|
actions: [
|
|
49
49
|
{
|
|
50
|
-
name: "
|
|
51
|
-
description: "",
|
|
50
|
+
name: "SEND_CAST",
|
|
51
|
+
description: "Posts a cast (message) on Farcaster",
|
|
52
|
+
similes: ["POST_CAST", "FARCASTER_POST", "CAST", "SHARE_ON_FARCASTER", "ANNOUNCE"],
|
|
52
53
|
parameters: []
|
|
53
54
|
},
|
|
54
55
|
{
|
|
55
|
-
name: "
|
|
56
|
-
description: "",
|
|
56
|
+
name: "REPLY_TO_CAST",
|
|
57
|
+
description: "Replies to a cast on Farcaster",
|
|
58
|
+
similes: ["REPLY_CAST", "RESPOND_CAST", "ANSWER_CAST", "COMMENT_CAST"],
|
|
57
59
|
parameters: []
|
|
58
60
|
}
|
|
59
61
|
]
|
|
@@ -62,13 +64,15 @@ var allActionsSpec = {
|
|
|
62
64
|
version: "1.0.0",
|
|
63
65
|
actions: [
|
|
64
66
|
{
|
|
65
|
-
name: "
|
|
66
|
-
description: "",
|
|
67
|
+
name: "SEND_CAST",
|
|
68
|
+
description: "Posts a cast (message) on Farcaster",
|
|
69
|
+
similes: ["POST_CAST", "FARCASTER_POST", "CAST", "SHARE_ON_FARCASTER", "ANNOUNCE"],
|
|
67
70
|
parameters: []
|
|
68
71
|
},
|
|
69
72
|
{
|
|
70
|
-
name: "
|
|
71
|
-
description: "",
|
|
73
|
+
name: "REPLY_TO_CAST",
|
|
74
|
+
description: "Replies to a cast on Farcaster",
|
|
75
|
+
similes: ["REPLY_CAST", "RESPOND_CAST", "ANSWER_CAST", "COMMENT_CAST"],
|
|
72
76
|
parameters: []
|
|
73
77
|
}
|
|
74
78
|
]
|
|
@@ -185,7 +189,7 @@ var FARCASTER_SERVICE_NAME = "farcaster";
|
|
|
185
189
|
var FARCASTER_SOURCE = "farcaster";
|
|
186
190
|
|
|
187
191
|
// actions/replyCast.ts
|
|
188
|
-
var spec = requireActionSpec("
|
|
192
|
+
var spec = requireActionSpec("REPLY_TO_CAST");
|
|
189
193
|
var replyCastAction = {
|
|
190
194
|
name: spec.name,
|
|
191
195
|
description: spec.description,
|
|
@@ -422,7 +426,7 @@ ${errorMessages}`);
|
|
|
422
426
|
}
|
|
423
427
|
|
|
424
428
|
// providers/profileProvider.ts
|
|
425
|
-
var spec3 = requireProviderSpec("
|
|
429
|
+
var spec3 = requireProviderSpec("farcasterProfile");
|
|
426
430
|
var farcasterProfileProvider = {
|
|
427
431
|
name: spec3.name,
|
|
428
432
|
description: "Provides information about the agent's Farcaster profile",
|
|
@@ -495,7 +499,7 @@ var formatTimestamp = (timestamp) => {
|
|
|
495
499
|
day: "numeric"
|
|
496
500
|
});
|
|
497
501
|
};
|
|
498
|
-
var spec4 = requireProviderSpec("
|
|
502
|
+
var spec4 = requireProviderSpec("farcasterThread");
|
|
499
503
|
var farcasterThreadProvider = {
|
|
500
504
|
name: spec4.name,
|
|
501
505
|
description: "Provides thread context for Farcaster casts so the agent can reference the full conversation.",
|
|
@@ -577,7 +581,7 @@ function getTimeAgo(date) {
|
|
|
577
581
|
return `${Math.floor(seconds / 3600)}h ago`;
|
|
578
582
|
return `${Math.floor(seconds / 86400)}d ago`;
|
|
579
583
|
}
|
|
580
|
-
var spec5 = requireProviderSpec("
|
|
584
|
+
var spec5 = requireProviderSpec("farcasterTimeline");
|
|
581
585
|
var farcasterTimelineProvider = {
|
|
582
586
|
name: spec5.name,
|
|
583
587
|
description: "Provides recent casts from the agent's Farcaster timeline",
|
|
@@ -968,7 +972,7 @@ class FarcasterClient {
|
|
|
968
972
|
reactionType: params.reactionType,
|
|
969
973
|
target: params.target
|
|
970
974
|
});
|
|
971
|
-
return { success: result.success };
|
|
975
|
+
return { success: result.success ?? false };
|
|
972
976
|
} catch (err) {
|
|
973
977
|
if (import_nodejs_sdk.isApiErrorResponse(err)) {
|
|
974
978
|
import_core5.elizaLogger.error(`Neynar error publishing reaction: ${JSON.stringify(err.response.data)}`);
|
|
@@ -985,7 +989,7 @@ class FarcasterClient {
|
|
|
985
989
|
reactionType: params.reactionType,
|
|
986
990
|
target: params.target
|
|
987
991
|
});
|
|
988
|
-
return { success: result.success };
|
|
992
|
+
return { success: result.success ?? false };
|
|
989
993
|
} catch (err) {
|
|
990
994
|
if (import_nodejs_sdk.isApiErrorResponse(err)) {
|
|
991
995
|
import_core5.elizaLogger.error(`Neynar error deleting reaction: ${JSON.stringify(err.response.data)}`);
|
|
@@ -2348,4 +2352,4 @@ var farcasterPlugin = {
|
|
|
2348
2352
|
};
|
|
2349
2353
|
var typescript_default = farcasterPlugin;
|
|
2350
2354
|
|
|
2351
|
-
//# debugId=
|
|
2355
|
+
//# debugId=FAF4E61B8A4C1E3864756E2164756E21
|
|
@@ -2,21 +2,21 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../actions/replyCast.ts", "../../generated/specs/specs.ts", "../../generated/specs/spec-helpers.ts", "../../types/index.ts", "../../actions/sendCast.ts", "../../actions/index.ts", "../../utils/config.ts", "../../providers/profileProvider.ts", "../../providers/threadProvider.ts", "../../providers/timelineProvider.ts", "../../providers/index.ts", "../../routes/webhook.ts", "../../services/FarcasterService.ts", "../../managers/AgentManager.ts", "../../client/FarcasterClient.ts", "../../utils/index.ts", "../../managers/CastManager.ts", "../../utils/callbacks.ts", "../../managers/InteractionManager.ts", "../../utils/asyncqueue.ts", "../../managers/EmbedManager.ts", "../../managers/InteractionSource.ts", "../../services/CastService.ts", "../../services/MessageService.ts", "../../index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { Action, IAgentRuntime, Memory, State } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME, FarcasterMessageType } from \"../types\";\n\nconst spec = requireActionSpec(\"
|
|
6
|
-
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-farcaster.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"
|
|
5
|
+
"import type { Action, IAgentRuntime, Memory, State } from \"@elizaos/core\";\nimport { ModelType } from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME, FarcasterMessageType } from \"../types\";\n\nconst spec = requireActionSpec(\"REPLY_TO_CAST\");\n\nexport const replyCastAction: Action = {\n name: spec.name,\n description: spec.description,\n examples: [\n [\n {\n name: \"user\",\n content: {\n text: \"Someone asked about ElizaOS on Farcaster, can you reply?\",\n },\n },\n {\n name: \"assistant\",\n content: {\n text: \"I'll reply to their question about ElizaOS.\",\n actions: [\"REPLY_TO_CAST\"],\n },\n },\n ],\n [\n {\n name: \"user\",\n content: { text: \"Reply to that cast and thank them for the feedback\" },\n },\n {\n name: \"assistant\",\n content: {\n text: \"I'll reply with a thank you message.\",\n actions: [\"REPLY_TO_CAST\"],\n },\n },\n ],\n ],\n\n validate: async (runtime: IAgentRuntime, message: Memory): Promise<boolean> => {\n const text = message.content.text?.toLowerCase() || \"\";\n const keywords = [\"reply\", \"respond\", \"answer\", \"comment\"];\n\n const hasKeyword = keywords.some((keyword) => text.includes(keyword));\n\n const hasParentCast = !!(\n message.content.metadata &&\n (message.content.metadata as Record<string, unknown>).parentCastHash\n );\n\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService;\n const isServiceAvailable = !!service?.getMessageService(runtime.agentId);\n\n return hasKeyword && (hasParentCast || isServiceAvailable);\n },\n\n handler: async (runtime: IAgentRuntime, message: Memory, state?: State) => {\n try {\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService;\n const messageService = service?.getMessageService(runtime.agentId);\n\n if (!messageService) {\n runtime.logger.error(\"[REPLY_TO_CAST] MessageService not available\");\n return { success: false, error: \"MessageService not available\" };\n }\n\n const metadata = message.content.metadata as Record<string, string | undefined> | undefined;\n const stateParentCastHash =\n typeof state?.parentCastHash === \"string\" ? state.parentCastHash : undefined;\n const parentCastHash = metadata?.parentCastHash ?? stateParentCastHash;\n\n if (!parentCastHash) {\n runtime.logger.error(\"[REPLY_TO_CAST] No parent cast to reply to\");\n return { success: false, error: \"No parent cast to reply to\" };\n }\n\n let replyContent = \"\";\n\n if (state?.replyContent) {\n replyContent = state.replyContent as string;\n } else {\n const prompt = `Based on this request: \"${message.content.text}\", generate a helpful and engaging reply for a Farcaster cast (max 320 characters).`;\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, { prompt });\n replyContent = typeof response === \"string\" ? response : String(response);\n }\n\n if (replyContent.length > 320) {\n replyContent = `${replyContent.substring(0, 317)}...`;\n }\n\n const reply = await messageService.sendMessage({\n agentId: runtime.agentId,\n roomId: message.roomId,\n text: replyContent,\n type: FarcasterMessageType.REPLY,\n replyToId: parentCastHash,\n metadata: {\n parentHash: parentCastHash,\n },\n });\n\n runtime.logger.info(`[REPLY_TO_CAST] Successfully replied to cast: ${reply.id}`);\n return { success: true, text: `Replied to cast: ${reply.id}` };\n } catch (error) {\n runtime.logger.error(\n \"[REPLY_TO_CAST] Error replying to cast:\",\n typeof error === \"string\" ? error : (error as Error).message\n );\n throw error;\n }\n },\n};\n",
|
|
6
|
+
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-farcaster.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"SEND_CAST\",\n description: \"Posts a cast (message) on Farcaster\",\n similes: [\"POST_CAST\", \"FARCASTER_POST\", \"CAST\", \"SHARE_ON_FARCASTER\", \"ANNOUNCE\"],\n parameters: [],\n },\n {\n name: \"REPLY_TO_CAST\",\n description: \"Replies to a cast on Farcaster\",\n similes: [\"REPLY_CAST\", \"RESPOND_CAST\", \"ANSWER_CAST\", \"COMMENT_CAST\"],\n parameters: [],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"SEND_CAST\",\n description: \"Posts a cast (message) on Farcaster\",\n similes: [\"POST_CAST\", \"FARCASTER_POST\", \"CAST\", \"SHARE_ON_FARCASTER\", \"ANNOUNCE\"],\n parameters: [],\n },\n {\n name: \"REPLY_TO_CAST\",\n description: \"Replies to a cast on Farcaster\",\n similes: [\"REPLY_CAST\", \"RESPOND_CAST\", \"ANSWER_CAST\", \"COMMENT_CAST\"],\n parameters: [],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"farcasterProfile\",\n description: \"Provides information about the agent\",\n dynamic: true,\n },\n {\n name: \"farcasterThread\",\n description:\n \"Provides thread context for Farcaster casts so the agent can reference the full conversation.\",\n dynamic: true,\n },\n {\n name: \"farcasterTimeline\",\n description: \"Provides recent casts from the agent\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"farcasterProfile\",\n description: \"Provides information about the agent\",\n dynamic: true,\n },\n {\n name: \"farcasterThread\",\n description:\n \"Provides thread context for Farcaster casts so the agent can reference the full conversation.\",\n dynamic: true,\n },\n {\n name: \"farcasterTimeline\",\n description: \"Provides recent casts from the agent\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
|
|
7
7
|
"/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
|
|
8
8
|
"import type { Media, Memory, MessagePayload } from \"@elizaos/core\";\nimport type { Cast as NeynarCast, Embed as NeynarEmbed } from \"@neynar/nodejs-sdk/build/api\";\nimport { z } from \"zod\";\n\nexport interface Profile {\n fid: number;\n name: string;\n username: string;\n pfp?: string;\n bio?: string;\n url?: string;\n}\n\nexport interface CastEmbed {\n type: \"image\" | \"video\" | \"audio\" | \"url\" | \"cast\" | \"frame\" | \"unknown\";\n url: string;\n castHash?: string;\n metadata?: {\n contentType?: string;\n width?: number;\n height?: number;\n duration?: number;\n title?: string;\n description?: string;\n authorFid?: number;\n authorUsername?: string;\n };\n}\n\nexport interface Cast {\n hash: string;\n authorFid: number;\n text: string;\n profile: Profile;\n threadId?: string;\n inReplyTo?: {\n hash: string;\n fid: number;\n };\n timestamp: Date;\n stats?: {\n recasts: number;\n replies: number;\n likes: number;\n };\n embeds?: NeynarEmbed[];\n media?: Media[];\n}\n\nexport interface CastId {\n hash: string;\n fid: number;\n}\n\nexport interface FidRequest {\n fid: number;\n pageSize: number;\n}\n\nexport interface LastCast {\n hash: string;\n timestamp: number;\n}\n\nexport const DEFAULT_MAX_CAST_LENGTH = 320;\nexport const DEFAULT_POLL_INTERVAL = 120;\nexport const DEFAULT_CAST_INTERVAL_MIN = 90;\nexport const DEFAULT_CAST_INTERVAL_MAX = 180;\nexport const DEFAULT_CAST_CACHE_TTL = 1000 * 30 * 60;\nexport const DEFAULT_CAST_CACHE_SIZE = 9000;\n\nexport const FarcasterConfigSchema = z.object({\n FARCASTER_DRY_RUN: z\n .union([z.boolean(), z.string()])\n .transform((val) => (typeof val === \"string\" ? val.toLowerCase() === \"true\" : val)),\n FARCASTER_FID: z.number().int().min(1, \"Farcaster fid is required\"),\n MAX_CAST_LENGTH: z.number().int().default(DEFAULT_MAX_CAST_LENGTH),\n FARCASTER_POLL_INTERVAL: z.number().int().default(DEFAULT_POLL_INTERVAL),\n FARCASTER_MODE: z.enum([\"polling\", \"webhook\"]).default(\"polling\"),\n ENABLE_CAST: z\n .union([z.boolean(), z.string()])\n .transform((val) => (typeof val === \"string\" ? val.toLowerCase() === \"true\" : val)),\n CAST_INTERVAL_MIN: z.number().int(),\n CAST_INTERVAL_MAX: z.number().int(),\n ENABLE_ACTION_PROCESSING: z\n .union([z.boolean(), z.string()])\n .transform((val) => (typeof val === \"string\" ? val.toLowerCase() === \"true\" : val)),\n ACTION_INTERVAL: z.number().int(),\n CAST_IMMEDIATELY: z\n .union([z.boolean(), z.string()])\n .transform((val) => (typeof val === \"string\" ? val.toLowerCase() === \"true\" : val)),\n MAX_ACTIONS_PROCESSING: z.number().int(),\n FARCASTER_SIGNER_UUID: z.string().min(1, \"FARCASTER_SIGNER_UUID is not set\"),\n FARCASTER_NEYNAR_API_KEY: z.string().min(1, \"FARCASTER_NEYNAR_API_KEY is not set\"),\n FARCASTER_HUB_URL: z.string().min(1, \"FARCASTER_HUB_URL is not set\"),\n});\n\nexport type FarcasterConfig = z.infer<typeof FarcasterConfigSchema>;\n\nexport enum FarcasterEventTypes {\n CAST_GENERATED = \"FARCASTER_CAST_GENERATED\",\n MENTION_RECEIVED = \"FARCASTER_MENTION_RECEIVED\",\n THREAD_CAST_CREATED = \"FARCASTER_THREAD_CAST_CREATED\",\n}\n\nexport enum FarcasterMessageType {\n CAST = \"CAST\",\n REPLY = \"REPLY\",\n}\n\nexport interface FarcasterGenericCastPayload extends Omit<MessagePayload, \"message\"> {\n memory: Memory;\n cast: NeynarCast;\n}\n\nexport interface NeynarWebhookData {\n type: string;\n data?: {\n hash: string;\n text?: string;\n author: {\n fid: number;\n username?: string;\n };\n mentioned_profiles?: Array<{ fid: number }>;\n parent_hash?: string;\n parent_author?: { fid: number };\n };\n}\n\nexport const FARCASTER_SERVICE_NAME = \"farcaster\";\nexport const FARCASTER_SOURCE = \"farcaster\";\n",
|
|
9
9
|
"import {\n type Action,\n type ActionExample,\n createUniqueUuid,\n type IAgentRuntime,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME } from \"../types\";\n\nconst spec = requireActionSpec(\"SEND_CAST\");\n\nexport const sendCastAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n examples: (spec.examples ?? []) as ActionExample[][],\n\n validate: async (runtime: IAgentRuntime, message: Memory): Promise<boolean> => {\n const text = message.content.text?.toLowerCase() || \"\";\n const keywords = [\"post\", \"cast\", \"share\", \"announce\", \"farcaster\"];\n\n const hasKeyword = keywords.some((keyword) => text.includes(keyword));\n\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService;\n const isServiceAvailable = !!service?.getCastService(runtime.agentId);\n\n return hasKeyword && isServiceAvailable;\n },\n\n handler: async (runtime: IAgentRuntime, message: Memory, state?: State) => {\n try {\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService;\n const postService = service?.getCastService(runtime.agentId);\n\n if (!postService) {\n runtime.logger.error(\"[SEND_CAST] PostService not available\");\n return { success: false, error: \"PostService not available\" };\n }\n\n let castContent = \"\";\n\n if (state?.castContent) {\n castContent = state.castContent as string;\n } else {\n const prompt = `Based on this request: \"${message.content.text}\", generate a concise Farcaster cast (max 320 characters). Be engaging and use appropriate hashtags if relevant.`;\n\n const response = await runtime.useModel(ModelType.TEXT_LARGE, { prompt });\n castContent = typeof response === \"string\" ? response : String(response);\n }\n\n if (castContent.length > 320) {\n castContent = `${castContent.substring(0, 317)}...`;\n }\n\n const cast = await postService.createCast({\n agentId: runtime.agentId,\n roomId: createUniqueUuid(runtime, \"farcaster-timeline\"),\n text: castContent,\n });\n\n runtime.logger.info(`[SEND_CAST] Successfully posted cast: ${cast.id}`);\n\n await runtime.createMemory(\n {\n agentId: runtime.agentId,\n roomId: cast.roomId,\n entityId: runtime.agentId,\n content: {\n text: castContent,\n source: \"farcaster\",\n metadata: {\n castHash: String(cast.metadata?.castHash || \"\"),\n action: \"SEND_CAST\",\n },\n },\n createdAt: cast.timestamp,\n },\n \"messages\"\n );\n return { success: true, text: `Posted cast: ${cast.id}` };\n } catch (error) {\n runtime.logger.error(\n \"[SEND_CAST] Error posting cast:\",\n typeof error === \"string\" ? error : (error as Error).message\n );\n return { success: false, error: (error as Error).message };\n }\n },\n};\n",
|
|
10
10
|
"import { replyCastAction } from \"./replyCast\";\nimport { sendCastAction } from \"./sendCast\";\n\nexport { replyCastAction, sendCastAction };\nexport const farcasterActions = [sendCastAction, replyCastAction];\n",
|
|
11
11
|
"import { type IAgentRuntime, parseBooleanFromText } from \"@elizaos/core\";\nimport { z } from \"zod\";\nimport {\n DEFAULT_CAST_INTERVAL_MAX,\n DEFAULT_CAST_INTERVAL_MIN,\n DEFAULT_MAX_CAST_LENGTH,\n DEFAULT_POLL_INTERVAL,\n type FarcasterConfig,\n FarcasterConfigSchema,\n} from \"../types\";\n\ntype ProcessEnvLike = Record<string, string | undefined>;\n\nfunction getProcessEnv(): ProcessEnvLike {\n if (typeof process === \"undefined\") {\n return {};\n }\n return process.env as ProcessEnvLike;\n}\n\nconst env = getProcessEnv();\n\nfunction safeParseInt(value: string | undefined | null, defaultValue: number): number {\n if (!value) return defaultValue;\n const parsed = Number.parseInt(value, 10);\n return Number.isNaN(parsed) ? defaultValue : Math.max(1, parsed);\n}\n\nexport function getFarcasterFid(runtime: IAgentRuntime): number | null {\n const fidStr = runtime.getSetting(\"FARCASTER_FID\");\n if (!fidStr) return null;\n const fid = Number.parseInt(fidStr as string, 10);\n return Number.isNaN(fid) ? null : fid;\n}\n\nexport function hasFarcasterEnabled(runtime: IAgentRuntime): boolean {\n const fid = runtime.getSetting(\"FARCASTER_FID\");\n const signerUuid = runtime.getSetting(\"FARCASTER_SIGNER_UUID\");\n const apiKey = runtime.getSetting(\"FARCASTER_NEYNAR_API_KEY\");\n\n runtime.logger.debug(`[hasFarcasterEnabled] FID: ${fid ? \"Found\" : \"Missing\"}`);\n runtime.logger.debug(`[hasFarcasterEnabled] Signer UUID: ${signerUuid ? \"Found\" : \"Missing\"}`);\n runtime.logger.debug(`[hasFarcasterEnabled] API Key: ${apiKey ? \"Found\" : \"Missing\"}`);\n\n return !!(fid && signerUuid && apiKey);\n}\n\nexport function validateFarcasterConfig(runtime: IAgentRuntime): FarcasterConfig {\n const fid = getFarcasterFid(runtime);\n\n try {\n const farcasterConfig = {\n FARCASTER_DRY_RUN:\n runtime.getSetting(\"FARCASTER_DRY_RUN\") ||\n parseBooleanFromText(env.FARCASTER_DRY_RUN || \"false\"),\n\n FARCASTER_FID: fid ?? undefined,\n\n MAX_CAST_LENGTH: safeParseInt(\n runtime.getSetting(\"MAX_CAST_LENGTH\") as string,\n DEFAULT_MAX_CAST_LENGTH\n ),\n\n FARCASTER_POLL_INTERVAL: safeParseInt(\n runtime.getSetting(\"FARCASTER_POLL_INTERVAL\") as string,\n DEFAULT_POLL_INTERVAL\n ),\n\n ENABLE_CAST:\n runtime.getSetting(\"ENABLE_CAST\") || parseBooleanFromText(env.ENABLE_CAST || \"true\"),\n\n CAST_INTERVAL_MIN: safeParseInt(\n runtime.getSetting(\"CAST_INTERVAL_MIN\") as string,\n DEFAULT_CAST_INTERVAL_MIN\n ),\n\n CAST_INTERVAL_MAX: safeParseInt(\n runtime.getSetting(\"CAST_INTERVAL_MAX\") as string,\n DEFAULT_CAST_INTERVAL_MAX\n ),\n\n ENABLE_ACTION_PROCESSING:\n runtime.getSetting(\"ENABLE_ACTION_PROCESSING\") ||\n parseBooleanFromText(env.ENABLE_ACTION_PROCESSING || \"false\"),\n\n ACTION_INTERVAL: safeParseInt(runtime.getSetting(\"ACTION_INTERVAL\") as string, 5),\n\n CAST_IMMEDIATELY:\n runtime.getSetting(\"CAST_IMMEDIATELY\") ||\n parseBooleanFromText(env.CAST_IMMEDIATELY || \"false\"),\n\n MAX_ACTIONS_PROCESSING: safeParseInt(\n runtime.getSetting(\"MAX_ACTIONS_PROCESSING\") as string,\n 1\n ),\n\n FARCASTER_SIGNER_UUID: runtime.getSetting(\"FARCASTER_SIGNER_UUID\"),\n\n FARCASTER_NEYNAR_API_KEY: runtime.getSetting(\"FARCASTER_NEYNAR_API_KEY\"),\n\n FARCASTER_HUB_URL: runtime.getSetting(\"FARCASTER_HUB_URL\") || \"hub.pinata.cloud\",\n\n FARCASTER_MODE: runtime.getSetting(\"FARCASTER_MODE\") || \"polling\",\n };\n\n runtime.logger.debug(\n `[validateFarcasterConfig] Resolved FID: ${farcasterConfig.FARCASTER_FID}`\n );\n runtime.logger.debug(\n `[validateFarcasterConfig] Resolved Signer UUID: ${farcasterConfig.FARCASTER_SIGNER_UUID ? \"Found\" : \"Missing\"}`\n );\n runtime.logger.debug(\n `[validateFarcasterConfig] Resolved API Key: ${farcasterConfig.FARCASTER_NEYNAR_API_KEY ? \"Found\" : \"Missing\"}`\n );\n\n const config = FarcasterConfigSchema.parse(farcasterConfig);\n\n const isDryRun = config.FARCASTER_DRY_RUN;\n\n runtime.logger.info(\"Farcaster Client Configuration:\");\n runtime.logger.info(`- FID: ${config.FARCASTER_FID}`);\n runtime.logger.info(`- Dry Run Mode: ${isDryRun ? \"enabled\" : \"disabled\"}`);\n runtime.logger.info(`- Enable Cast: ${config.ENABLE_CAST ? \"enabled\" : \"disabled\"}`);\n\n if (config.ENABLE_CAST) {\n runtime.logger.info(\n `- Cast Interval: ${config.CAST_INTERVAL_MIN}-${config.CAST_INTERVAL_MAX} minutes`\n );\n runtime.logger.info(\n `- Cast Immediately: ${config.CAST_IMMEDIATELY ? \"enabled\" : \"disabled\"}`\n );\n }\n runtime.logger.info(\n `- Action Processing: ${config.ENABLE_ACTION_PROCESSING ? \"enabled\" : \"disabled\"}`\n );\n runtime.logger.info(`- Action Interval: ${config.ACTION_INTERVAL} minutes`);\n\n if (isDryRun) {\n runtime.logger.info(\n \"Farcaster client initialized in dry run mode - no actual casts should be posted\"\n );\n }\n\n return config;\n } catch (error) {\n if (error instanceof z.ZodError) {\n const errorMessages = error.issues\n .map((err) => `${err.path.join(\".\")}: ${err.message}`)\n .join(\"\\n\");\n throw new Error(`Farcaster configuration validation failed:\\n${errorMessages}`);\n }\n throw error;\n }\n}\n",
|
|
12
|
-
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME } from \"../types\";\nimport { getFarcasterFid } from \"../utils/config\";\n\nconst spec = requireProviderSpec(\"
|
|
13
|
-
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME, FARCASTER_SOURCE } from \"../types\";\n\nconst formatTimestamp = (timestamp: number): string => {\n return new Date(timestamp).toLocaleString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n });\n};\n\nconst spec = requireProviderSpec(\"
|
|
14
|
-
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME } from \"../types\";\n\nfunction getTimeAgo(date: Date): string {\n const seconds = Math.floor((Date.now() - date.getTime()) / 1000);\n\n if (seconds < 60) return \"just now\";\n if (seconds < 3600) return `${Math.floor(seconds / 60)}m ago`;\n if (seconds < 86400) return `${Math.floor(seconds / 3600)}h ago`;\n return `${Math.floor(seconds / 86400)}d ago`;\n}\n\nconst spec = requireProviderSpec(\"
|
|
12
|
+
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME } from \"../types\";\nimport { getFarcasterFid } from \"../utils/config\";\n\nconst spec = requireProviderSpec(\"farcasterProfile\");\n\nexport const farcasterProfileProvider: Provider = {\n name: spec.name,\n description: \"Provides information about the agent's Farcaster profile\",\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n try {\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService;\n const managers = service?.getActiveManagers();\n\n if (!managers || managers.size === 0) {\n runtime.logger.debug(\"[FarcasterProfileProvider] No managers available\");\n return {\n text: \"Farcaster profile not available.\",\n data: { available: false },\n };\n }\n\n const manager = managers.get(runtime.agentId);\n if (!manager) {\n runtime.logger.debug(\"[FarcasterProfileProvider] No manager for this agent\");\n return {\n text: \"Farcaster profile not available for this agent.\",\n data: { available: false },\n };\n }\n\n const fid = getFarcasterFid(runtime);\n if (!fid) {\n runtime.logger.warn(\"[FarcasterProfileProvider] Invalid or missing FARCASTER_FID\");\n return {\n text: \"Invalid Farcaster FID configured.\",\n data: { available: false, error: \"Invalid FID\" },\n };\n }\n\n try {\n const profile = await manager.client.getProfile(fid);\n\n return {\n text: `Your Farcaster profile: @${profile.username} (FID: ${profile.fid}). ${profile.name ? `Display name: ${profile.name}` : \"\"}`,\n data: {\n available: true,\n fid: profile.fid,\n username: profile.username,\n name: profile.name,\n pfp: profile.pfp,\n },\n values: {\n fid: profile.fid,\n username: profile.username,\n },\n };\n } catch (error) {\n runtime.logger.error(\n \"[FarcasterProfileProvider] Error fetching profile:\",\n typeof error === \"string\" ? error : (error as Error).message\n );\n return {\n text: \"Unable to fetch Farcaster profile at this time.\",\n data: { available: false, error: \"Fetch failed\" },\n };\n }\n } catch (error) {\n runtime.logger.error(\n \"[FarcasterProfileProvider] Error:\",\n typeof error === \"string\" ? error : (error as Error).message\n );\n return {\n text: \"Farcaster service is not available.\",\n data: { available: false },\n };\n }\n },\n};\n",
|
|
13
|
+
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME, FARCASTER_SOURCE } from \"../types\";\n\nconst formatTimestamp = (timestamp: number): string => {\n return new Date(timestamp).toLocaleString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n });\n};\n\nconst spec = requireProviderSpec(\"farcasterThread\");\n\nexport const farcasterThreadProvider: Provider = {\n name: spec.name,\n description:\n \"Provides thread context for Farcaster casts so the agent can reference the full conversation.\",\n\n get: async (runtime: IAgentRuntime, message: Memory, _state: State): Promise<ProviderResult> => {\n const contentForSource = message.content as Record<\n string,\n string | number | boolean | null | object | undefined\n >;\n const source =\n typeof contentForSource.source === \"string\" ? contentForSource.source : undefined;\n\n if (source !== FARCASTER_SOURCE) {\n return {\n text: \"\",\n data: {\n available: false,\n reason: `Not a Farcaster message (source=${source ?? \"unknown\"})`,\n },\n };\n }\n\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService | null;\n const messageService = service?.getMessageService(runtime.agentId);\n\n if (!messageService) {\n return {\n text: \"Farcaster message service not available.\",\n data: { available: false, error: \"service_unavailable\" },\n };\n }\n\n const content = message.content as {\n hash?: string;\n castHash?: string;\n metadata?: Record<string, string | undefined> | string;\n };\n const messageMetadata =\n (message.metadata as Record<string, string | undefined> | undefined) ?? {};\n const contentMetadata =\n typeof content.metadata === \"object\" &&\n content.metadata !== null &&\n !Array.isArray(content.metadata)\n ? content.metadata\n : undefined;\n const castHash =\n content.hash ||\n content.castHash ||\n contentMetadata?.castHash ||\n messageMetadata.castHash ||\n contentMetadata?.parentHash ||\n messageMetadata.parentHash;\n\n if (!castHash || typeof castHash !== \"string\") {\n return {\n text: \"Unable to resolve Farcaster cast hash for this message.\",\n data: { available: false, error: \"missing_cast_hash\" },\n };\n }\n\n const threadMessages = await messageService.getThread({\n agentId: runtime.agentId,\n castHash,\n });\n\n if (!threadMessages || threadMessages.length === 0) {\n runtime.logger.debug(\n { castHash },\n \"[FarcasterThreadProvider] No thread messages retrieved for cast.\"\n );\n return {\n text: \"No Farcaster thread context available.\",\n data: { available: false, castHash, count: 0 },\n };\n }\n\n const formattedThread = threadMessages\n .map((msg, index) => {\n const time = formatTimestamp(msg.timestamp);\n const username = msg.username || msg.userId || \"unknown\";\n const marker = index === threadMessages.length - 1 ? \"→\" : \"•\";\n const text = msg.text && msg.text.trim().length > 0 ? msg.text : \"<no text>\";\n return `${marker} [${time}] @${username}: ${text}`;\n })\n .join(\"\\n\");\n\n return {\n text: `# Farcaster Thread Context\\n${formattedThread}`,\n data: {\n available: true,\n castHash,\n count: threadMessages.length,\n },\n values: {\n farcasterThread: formattedThread,\n farcasterCastHash: castHash,\n farcasterCurrentCastText: threadMessages[threadMessages.length - 1]?.text ?? \"\",\n farcasterParentCastText:\n threadMessages.length > 1 ? (threadMessages[threadMessages.length - 2]?.text ?? \"\") : \"\",\n },\n };\n },\n};\n",
|
|
14
|
+
"import type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { FarcasterService } from \"../services/FarcasterService\";\nimport { FARCASTER_SERVICE_NAME } from \"../types\";\n\nfunction getTimeAgo(date: Date): string {\n const seconds = Math.floor((Date.now() - date.getTime()) / 1000);\n\n if (seconds < 60) return \"just now\";\n if (seconds < 3600) return `${Math.floor(seconds / 60)}m ago`;\n if (seconds < 86400) return `${Math.floor(seconds / 3600)}h ago`;\n return `${Math.floor(seconds / 86400)}d ago`;\n}\n\nconst spec = requireProviderSpec(\"farcasterTimeline\");\n\nexport const farcasterTimelineProvider: Provider = {\n name: spec.name,\n description: \"Provides recent casts from the agent's Farcaster timeline\",\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State): Promise<ProviderResult> => {\n try {\n const service = runtime.getService(FARCASTER_SERVICE_NAME) as FarcasterService;\n const castService = service?.getCastService(runtime.agentId);\n\n if (!castService) {\n return {\n text: \"Farcaster timeline not available.\",\n data: { available: false },\n };\n }\n\n const casts = await castService.getCasts({\n agentId: runtime.agentId,\n limit: 5,\n });\n\n if (!casts || casts.length === 0) {\n return {\n text: \"No recent casts in your timeline.\",\n data: {\n available: true,\n casts: [],\n count: 0,\n },\n };\n }\n\n const formattedCasts = casts\n .map((cast, index) => {\n const timeAgo = getTimeAgo(new Date(cast.timestamp));\n return `${index + 1}. @${cast.username} (${timeAgo}): ${cast.text}`;\n })\n .join(\"\\n\");\n\n return {\n text: `Recent casts from your timeline:\\n${formattedCasts}`,\n data: {\n available: true,\n castCount: casts.length,\n },\n values: {\n latestCastHash: String(casts[0]?.metadata?.castHash || \"\"),\n latestCastText: casts[0]?.text || \"\",\n },\n };\n } catch (error) {\n runtime.logger.error(\n \"[FarcasterTimelineProvider] Error:\",\n typeof error === \"string\" ? error : (error as Error).message\n );\n return {\n text: \"Unable to fetch Farcaster timeline.\",\n data: {\n available: false,\n error: error instanceof Error ? error.message : \"Unknown error\",\n },\n };\n }\n },\n};\n",
|
|
15
15
|
"import { farcasterProfileProvider } from \"./profileProvider\";\nimport { farcasterThreadProvider } from \"./threadProvider\";\nimport { farcasterTimelineProvider } from \"./timelineProvider\";\n\nexport { farcasterProfileProvider, farcasterThreadProvider, farcasterTimelineProvider };\nexport const farcasterProviders = [\n farcasterProfileProvider,\n farcasterTimelineProvider,\n farcasterThreadProvider,\n];\n",
|
|
16
16
|
"import type { IAgentRuntime, Route, RouteRequest, RouteResponse } from \"@elizaos/core\";\n\nexport const farcasterWebhookRoutes: Route[] = [\n {\n type: \"POST\",\n name: \"Farcaster Webhook Handler\",\n path: \"/webhook\",\n handler: async (req: RouteRequest, res: RouteResponse, runtime: IAgentRuntime) => {\n try {\n const webhookData = req.body as { type?: string };\n const eventType = webhookData.type;\n\n const farcasterService = runtime?.getService?.(\"farcaster\") as {\n managers?: {\n get?: (id: string) => {\n interactions?: {\n mode?: string;\n processWebhookData?: (data: { type?: string }) => Promise<void>;\n };\n };\n };\n };\n\n if (farcasterService) {\n const agentManager = farcasterService.managers?.get?.(runtime.agentId ?? \"\");\n\n if (agentManager?.interactions) {\n if (agentManager.interactions.mode === \"webhook\") {\n await agentManager.interactions.processWebhookData?.(webhookData);\n }\n }\n }\n\n res.status(200).json({\n success: true,\n message: \"Webhook processed successfully\",\n event_type: eventType,\n timestamp: new Date().toISOString(),\n });\n } catch (error) {\n if (runtime.logger) {\n runtime.logger.error(\n error instanceof Error ? error : new Error(String(error)),\n \"Webhook processing error\"\n );\n }\n res.status(500).json({\n success: false,\n error: \"Internal server error\",\n });\n }\n },\n },\n];\n",
|
|
17
17
|
"import { type IAgentRuntime, Service, type UUID } from \"@elizaos/core\";\nimport { FarcasterAgentManager } from \"../managers/AgentManager\";\nimport { FARCASTER_SERVICE_NAME } from \"../types\";\nimport { getFarcasterFid, hasFarcasterEnabled, validateFarcasterConfig } from \"../utils/config\";\nimport { FarcasterCastService } from \"./CastService\";\nimport { FarcasterMessageService } from \"./MessageService\";\n\nexport class FarcasterService extends Service {\n private static instance?: FarcasterService;\n private managers = new Map<UUID, FarcasterAgentManager>();\n private messageServices = new Map<UUID, FarcasterMessageService>();\n private castServices = new Map<UUID, FarcasterCastService>();\n\n static serviceType = FARCASTER_SERVICE_NAME;\n\n readonly description = \"Farcaster integration service for sending and receiving casts\";\n readonly capabilityDescription = \"The agent is able to send and receive messages on farcaster\";\n\n private static getInstance(): FarcasterService {\n if (!FarcasterService.instance) {\n FarcasterService.instance = new FarcasterService();\n }\n return FarcasterService.instance;\n }\n\n async initialize(runtime: IAgentRuntime): Promise<void> {\n await FarcasterService.start(runtime);\n }\n\n static async start(runtime: IAgentRuntime): Promise<Service> {\n const service = FarcasterService.getInstance();\n let manager = service.managers.get(runtime.agentId);\n\n if (manager) {\n runtime.logger.warn({ agentId: runtime.agentId }, \"Farcaster service already started\");\n return service;\n }\n\n if (!hasFarcasterEnabled(runtime)) {\n runtime.logger.debug({ agentId: runtime.agentId }, \"Farcaster service not enabled\");\n return service;\n }\n\n const farcasterConfig = validateFarcasterConfig(runtime);\n manager = new FarcasterAgentManager(runtime, farcasterConfig);\n service.managers.set(runtime.agentId, manager);\n\n const messageService = new FarcasterMessageService(manager.client, runtime);\n const castService = new FarcasterCastService(manager.client, runtime);\n\n service.messageServices.set(runtime.agentId, messageService);\n service.castServices.set(runtime.agentId, castService);\n\n await manager.start();\n\n runtime.logger.success({ agentId: runtime.agentId }, \"Farcaster client started\");\n return service;\n }\n\n static async stop(runtime: IAgentRuntime): Promise<void> {\n const service = FarcasterService.getInstance();\n const manager = service.managers.get(runtime.agentId);\n if (manager) {\n await manager.stop();\n service.managers.delete(runtime.agentId);\n service.messageServices.delete(runtime.agentId);\n service.castServices.delete(runtime.agentId);\n runtime.logger.info({ agentId: runtime.agentId }, \"Farcaster client stopped\");\n } else {\n runtime.logger.debug({ agentId: runtime.agentId }, \"Farcaster service not running\");\n }\n }\n\n async stop(): Promise<void> {\n for (const manager of Array.from(this.managers.values())) {\n const agentId = manager.runtime.agentId;\n manager.runtime.logger.debug(\"Stopping Farcaster service\");\n try {\n await FarcasterService.stop(manager.runtime);\n } catch (error) {\n manager.runtime.logger.error({ agentId, error }, \"Error stopping Farcaster service\");\n }\n }\n }\n\n getMessageService(agentId: UUID): FarcasterMessageService | undefined {\n return this.messageServices.get(agentId);\n }\n\n getCastService(agentId: UUID): FarcasterCastService | undefined {\n return this.castServices.get(agentId);\n }\n\n async healthCheck(): Promise<{\n healthy: boolean;\n details: Record<string, unknown>;\n }> {\n const managerStatuses: Record<string, unknown> = {};\n let overallHealthy = true;\n\n for (const [agentId, manager] of Array.from(this.managers.entries())) {\n try {\n const fid = getFarcasterFid(manager.runtime);\n if (!fid) {\n throw new Error(\"FARCASTER_FID not configured\");\n }\n const profile = await manager.client.getProfile(fid);\n managerStatuses[agentId] = {\n status: \"healthy\",\n fid: profile.fid,\n username: profile.username,\n };\n } catch (error) {\n managerStatuses[agentId] = {\n status: \"unhealthy\",\n error: error instanceof Error ? error.message : \"Unknown error\",\n };\n overallHealthy = false;\n }\n }\n\n return {\n healthy: overallHealthy,\n details: {\n activeManagers: this.managers.size,\n managerStatuses,\n },\n };\n }\n\n getActiveManagers(): Map<UUID, FarcasterAgentManager> {\n return new Map(this.managers);\n }\n}\n",
|
|
18
18
|
"import type { IAgentRuntime } from \"@elizaos/core\";\nimport { Configuration, NeynarAPIClient } from \"@neynar/nodejs-sdk\";\nimport { FarcasterClient } from \"../client/FarcasterClient\";\nimport type { FarcasterConfig } from \"../types\";\nimport { FarcasterCastManager } from \"./CastManager\";\nimport { FarcasterInteractionManager } from \"./InteractionManager\";\n\nexport class FarcasterAgentManager {\n readonly runtime: IAgentRuntime;\n readonly client: FarcasterClient;\n readonly casts: FarcasterCastManager;\n readonly interactions: FarcasterInteractionManager;\n\n constructor(runtime: IAgentRuntime, config: FarcasterConfig) {\n this.runtime = runtime;\n const signerUuid = config.FARCASTER_SIGNER_UUID;\n\n const neynarConfig = new Configuration({\n apiKey: config.FARCASTER_NEYNAR_API_KEY,\n });\n const neynar = new NeynarAPIClient(neynarConfig);\n const client = new FarcasterClient({ neynar, signerUuid });\n\n this.client = client;\n\n runtime.logger.success(\"Farcaster Neynar client initialized.\");\n\n this.interactions = new FarcasterInteractionManager({\n client,\n runtime,\n config,\n });\n this.casts = new FarcasterCastManager({ client, runtime, config });\n }\n\n async start(): Promise<void> {\n await Promise.all([this.casts.start(), this.interactions.start()]);\n }\n\n async stop(): Promise<void> {\n await Promise.all([this.casts.stop(), this.interactions.stop()]);\n }\n}\n",
|
|
19
|
-
"import { type Content, elizaLogger } from \"@elizaos/core\";\nimport { isApiErrorResponse, type NeynarAPIClient } from \"@neynar/nodejs-sdk\";\nimport type { Cast as NeynarCast } from \"@neynar/nodejs-sdk/build/api\";\nimport { LRUCache } from \"lru-cache\";\nimport {\n type Cast,\n type CastId,\n DEFAULT_CAST_CACHE_SIZE,\n DEFAULT_CAST_CACHE_TTL,\n type FidRequest,\n type Profile,\n} from \"../types\";\nimport { neynarCastToCast, splitPostContent } from \"../utils\";\n\nconst castCache: LRUCache<string, NeynarCast> = new LRUCache({\n max: DEFAULT_CAST_CACHE_SIZE,\n ttl: DEFAULT_CAST_CACHE_TTL,\n});\n\nconst profileCache: LRUCache<number, Profile> = new LRUCache({\n max: 1000,\n ttl: 1000 * 60 * 15,\n});\n\nexport class FarcasterClient {\n private neynar: NeynarAPIClient;\n private signerUuid: string;\n\n constructor(opts: { neynar: NeynarAPIClient; signerUuid: string }) {\n this.neynar = opts.neynar;\n this.signerUuid = opts.signerUuid;\n }\n\n async sendCast({\n content,\n inReplyTo,\n }: {\n content: Content;\n inReplyTo?: CastId;\n }): Promise<NeynarCast[]> {\n const text = (content.text ?? \"\").trim();\n if (text.length === 0) {\n return [];\n }\n\n const chunks = splitPostContent(text);\n const sent: NeynarCast[] = [];\n\n for (const chunk of chunks) {\n const result = await this.publishCast(chunk, inReplyTo);\n sent.push(result);\n }\n return sent;\n }\n\n private async publishCast(cast: string, parentCastId?: CastId): Promise<NeynarCast> {\n try {\n const result = await this.neynar.publishCast({\n signerUuid: this.signerUuid,\n text: cast,\n parent: parentCastId?.hash,\n });\n if (result.success) {\n return this.getCast(result.cast.hash);\n }\n throw new Error(`[Farcaster] Error publishing [${cast}] parentCastId: [${parentCastId}]`);\n } catch (err) {\n if (isApiErrorResponse(err)) {\n elizaLogger.error(`Neynar error: ${JSON.stringify(err.response.data)}`);\n throw err.response.data;\n } else {\n elizaLogger.error(`Error: ${JSON.stringify(err)}`);\n throw err;\n }\n }\n }\n\n async getCast(castHash: string): Promise<NeynarCast> {\n const cachedCast = castCache.get(castHash);\n if (cachedCast) {\n return cachedCast;\n }\n\n const response = await this.neynar.lookupCastByHashOrUrl({\n identifier: castHash,\n type: \"hash\",\n });\n\n castCache.set(castHash, response.cast);\n\n return response.cast;\n }\n\n /**\n * Get mentions for a FID.\n */\n async getMentions(request: FidRequest): Promise<NeynarCast[]> {\n const neynarMentionsResponse = await this.neynar.fetchAllNotifications({\n fid: request.fid,\n type: [\"mentions\", \"replies\"],\n limit: request.pageSize,\n });\n const mentions: NeynarCast[] = [];\n\n for (const notification of neynarMentionsResponse.notifications) {\n const neynarCast = notification.cast;\n if (neynarCast) {\n mentions.push(neynarCast);\n }\n }\n\n return mentions;\n }\n\n async getProfile(fid: number): Promise<Profile> {\n if (profileCache.has(fid)) {\n return profileCache.get(fid) as Profile;\n }\n\n try {\n const result = await this.neynar.fetchBulkUsers({ fids: [fid] });\n if (!result.users || result.users.length < 1) {\n elizaLogger.error(\"Error fetching user by fid\");\n throw new Error(\"Profile fetch failed\");\n }\n\n const neynarUserProfile = result.users[0];\n\n const profile: Profile = {\n fid,\n name: \"\",\n username: \"\",\n };\n\n profile.name = neynarUserProfile.display_name ?? \"\";\n profile.username = neynarUserProfile.username;\n profile.bio = neynarUserProfile.profile.bio.text;\n profile.pfp = neynarUserProfile.pfp_url;\n\n profileCache.set(fid, profile);\n\n return profile;\n } catch (error) {\n elizaLogger.error(`Error fetching profile: ${JSON.stringify(error)}`);\n throw error;\n }\n }\n\n async getTimeline(request: FidRequest): Promise<{\n timeline: Cast[];\n cursor?: string;\n }> {\n const timeline: Cast[] = [];\n\n const response = await this.neynar.fetchCastsForUser({\n fid: request.fid,\n limit: request.pageSize,\n });\n\n for (const cast of response.casts) {\n castCache.set(cast.hash, cast);\n timeline.push(neynarCastToCast(cast));\n }\n\n const nextCursor = response.next?.cursor ?? undefined;\n\n return {\n timeline,\n cursor: nextCursor,\n };\n }\n\n clearCache(): void {\n profileCache.clear();\n castCache.clear();\n }\n\n async publishReaction(params: {\n reactionType: \"like\" | \"recast\";\n target: string;\n }): Promise<{ success: boolean }> {\n try {\n const result = await this.neynar.publishReaction({\n signerUuid: this.signerUuid,\n reactionType: params.reactionType,\n target: params.target,\n });\n\n return { success: result.success };\n } catch (err) {\n if (isApiErrorResponse(err)) {\n elizaLogger.error(`Neynar error publishing reaction: ${JSON.stringify(err.response.data)}`);\n throw err.response.data;\n }\n elizaLogger.error(`Error publishing reaction: ${JSON.stringify(err)}`);\n throw err;\n }\n }\n\n async deleteReaction(params: {\n reactionType: \"like\" | \"recast\";\n target: string;\n }): Promise<{ success: boolean }> {\n try {\n const result = await this.neynar.deleteReaction({\n signerUuid: this.signerUuid,\n reactionType: params.reactionType,\n target: params.target,\n });\n\n return { success: result.success };\n } catch (err) {\n if (isApiErrorResponse(err)) {\n elizaLogger.error(`Neynar error deleting reaction: ${JSON.stringify(err.response.data)}`);\n throw err.response.data;\n }\n elizaLogger.error(`Error deleting reaction: ${JSON.stringify(err)}`);\n throw err;\n }\n }\n}\n",
|
|
19
|
+
"import { type Content, elizaLogger } from \"@elizaos/core\";\nimport { isApiErrorResponse, type NeynarAPIClient } from \"@neynar/nodejs-sdk\";\nimport type { Cast as NeynarCast } from \"@neynar/nodejs-sdk/build/api\";\nimport { LRUCache } from \"lru-cache\";\nimport {\n type Cast,\n type CastId,\n DEFAULT_CAST_CACHE_SIZE,\n DEFAULT_CAST_CACHE_TTL,\n type FidRequest,\n type Profile,\n} from \"../types\";\nimport { neynarCastToCast, splitPostContent } from \"../utils\";\n\nconst castCache: LRUCache<string, NeynarCast> = new LRUCache({\n max: DEFAULT_CAST_CACHE_SIZE,\n ttl: DEFAULT_CAST_CACHE_TTL,\n});\n\nconst profileCache: LRUCache<number, Profile> = new LRUCache({\n max: 1000,\n ttl: 1000 * 60 * 15,\n});\n\nexport class FarcasterClient {\n private neynar: NeynarAPIClient;\n private signerUuid: string;\n\n constructor(opts: { neynar: NeynarAPIClient; signerUuid: string }) {\n this.neynar = opts.neynar;\n this.signerUuid = opts.signerUuid;\n }\n\n async sendCast({\n content,\n inReplyTo,\n }: {\n content: Content;\n inReplyTo?: CastId;\n }): Promise<NeynarCast[]> {\n const text = (content.text ?? \"\").trim();\n if (text.length === 0) {\n return [];\n }\n\n const chunks = splitPostContent(text);\n const sent: NeynarCast[] = [];\n\n for (const chunk of chunks) {\n const result = await this.publishCast(chunk, inReplyTo);\n sent.push(result);\n }\n return sent;\n }\n\n private async publishCast(cast: string, parentCastId?: CastId): Promise<NeynarCast> {\n try {\n const result = await this.neynar.publishCast({\n signerUuid: this.signerUuid,\n text: cast,\n parent: parentCastId?.hash,\n });\n if (result.success) {\n return this.getCast(result.cast.hash);\n }\n throw new Error(`[Farcaster] Error publishing [${cast}] parentCastId: [${parentCastId}]`);\n } catch (err) {\n if (isApiErrorResponse(err)) {\n elizaLogger.error(`Neynar error: ${JSON.stringify(err.response.data)}`);\n throw err.response.data;\n } else {\n elizaLogger.error(`Error: ${JSON.stringify(err)}`);\n throw err;\n }\n }\n }\n\n async getCast(castHash: string): Promise<NeynarCast> {\n const cachedCast = castCache.get(castHash);\n if (cachedCast) {\n return cachedCast;\n }\n\n const response = await this.neynar.lookupCastByHashOrUrl({\n identifier: castHash,\n type: \"hash\",\n });\n\n castCache.set(castHash, response.cast);\n\n return response.cast;\n }\n\n /**\n * Get mentions for a FID.\n */\n async getMentions(request: FidRequest): Promise<NeynarCast[]> {\n const neynarMentionsResponse = await this.neynar.fetchAllNotifications({\n fid: request.fid,\n type: [\"mentions\", \"replies\"],\n limit: request.pageSize,\n });\n const mentions: NeynarCast[] = [];\n\n for (const notification of neynarMentionsResponse.notifications) {\n const neynarCast = notification.cast;\n if (neynarCast) {\n mentions.push(neynarCast);\n }\n }\n\n return mentions;\n }\n\n async getProfile(fid: number): Promise<Profile> {\n if (profileCache.has(fid)) {\n return profileCache.get(fid) as Profile;\n }\n\n try {\n const result = await this.neynar.fetchBulkUsers({ fids: [fid] });\n if (!result.users || result.users.length < 1) {\n elizaLogger.error(\"Error fetching user by fid\");\n throw new Error(\"Profile fetch failed\");\n }\n\n const neynarUserProfile = result.users[0];\n\n const profile: Profile = {\n fid,\n name: \"\",\n username: \"\",\n };\n\n profile.name = neynarUserProfile.display_name ?? \"\";\n profile.username = neynarUserProfile.username;\n profile.bio = neynarUserProfile.profile.bio.text;\n profile.pfp = neynarUserProfile.pfp_url;\n\n profileCache.set(fid, profile);\n\n return profile;\n } catch (error) {\n elizaLogger.error(`Error fetching profile: ${JSON.stringify(error)}`);\n throw error;\n }\n }\n\n async getTimeline(request: FidRequest): Promise<{\n timeline: Cast[];\n cursor?: string;\n }> {\n const timeline: Cast[] = [];\n\n const response = await this.neynar.fetchCastsForUser({\n fid: request.fid,\n limit: request.pageSize,\n });\n\n for (const cast of response.casts) {\n castCache.set(cast.hash, cast);\n timeline.push(neynarCastToCast(cast));\n }\n\n const nextCursor = response.next?.cursor ?? undefined;\n\n return {\n timeline,\n cursor: nextCursor,\n };\n }\n\n clearCache(): void {\n profileCache.clear();\n castCache.clear();\n }\n\n async publishReaction(params: {\n reactionType: \"like\" | \"recast\";\n target: string;\n }): Promise<{ success: boolean }> {\n try {\n const result = await this.neynar.publishReaction({\n signerUuid: this.signerUuid,\n reactionType: params.reactionType,\n target: params.target,\n });\n\n return { success: result.success ?? false };\n } catch (err) {\n if (isApiErrorResponse(err)) {\n elizaLogger.error(`Neynar error publishing reaction: ${JSON.stringify(err.response.data)}`);\n throw err.response.data;\n }\n elizaLogger.error(`Error publishing reaction: ${JSON.stringify(err)}`);\n throw err;\n }\n }\n\n async deleteReaction(params: {\n reactionType: \"like\" | \"recast\";\n target: string;\n }): Promise<{ success: boolean }> {\n try {\n const result = await this.neynar.deleteReaction({\n signerUuid: this.signerUuid,\n reactionType: params.reactionType,\n target: params.target,\n });\n\n return { success: result.success ?? false };\n } catch (err) {\n if (isApiErrorResponse(err)) {\n elizaLogger.error(`Neynar error deleting reaction: ${JSON.stringify(err.response.data)}`);\n throw err.response.data;\n }\n elizaLogger.error(`Error deleting reaction: ${JSON.stringify(err)}`);\n throw err;\n }\n }\n}\n",
|
|
20
20
|
"import type { IAgentRuntime, Memory, UUID } from \"@elizaos/core\";\nimport { stringToUuid } from \"@elizaos/core\";\nimport type { Cast as NeynarCast } from \"@neynar/nodejs-sdk/build/api\";\nimport { type Cast, FARCASTER_SOURCE } from \"../types\";\n\nexport const MAX_CAST_LENGTH = 1024;\n\nexport function castId({ hash, agentId }: { hash: string; agentId: string }): string {\n return `${hash}-${agentId}`;\n}\n\nexport function castUuid(props: { hash: string; agentId: string }): UUID {\n return stringToUuid(castId(props));\n}\n\nexport function splitPostContent(content: string, maxLength: number = MAX_CAST_LENGTH): string[] {\n const paragraphs = content.split(\"\\n\\n\").map((p) => p.trim());\n const posts: string[] = [];\n let currentCast = \"\";\n\n for (const paragraph of paragraphs) {\n if (!paragraph) continue;\n\n if (`${currentCast}\\n\\n${paragraph}`.trim().length <= maxLength) {\n if (currentCast) {\n currentCast += `\\n\\n${paragraph}`;\n } else {\n currentCast = paragraph;\n }\n } else {\n if (currentCast) {\n posts.push(currentCast.trim());\n }\n if (paragraph.length <= maxLength) {\n currentCast = paragraph;\n } else {\n const chunks = splitParagraph(paragraph, maxLength);\n posts.push(...chunks.slice(0, -1));\n currentCast = chunks[chunks.length - 1];\n }\n }\n }\n\n if (currentCast) {\n posts.push(currentCast.trim());\n }\n\n return posts;\n}\n\nexport function splitParagraph(paragraph: string, maxLength: number): string[] {\n const sentences = paragraph.match(/[^.!?]+[.!?]+|[^.!?]+$/g) || [paragraph];\n const chunks: string[] = [];\n let currentChunk = \"\";\n\n for (const sentence of sentences) {\n if (`${currentChunk} ${sentence}`.trim().length <= maxLength) {\n if (currentChunk) {\n currentChunk += ` ${sentence}`;\n } else {\n currentChunk = sentence;\n }\n } else {\n if (currentChunk) {\n chunks.push(currentChunk.trim());\n }\n if (sentence.length <= maxLength) {\n currentChunk = sentence;\n } else {\n const words = sentence.split(\" \");\n currentChunk = \"\";\n for (const word of words) {\n if (`${currentChunk} ${word}`.trim().length <= maxLength) {\n if (currentChunk) {\n currentChunk += ` ${word}`;\n } else {\n currentChunk = word;\n }\n } else {\n if (currentChunk) {\n chunks.push(currentChunk.trim());\n }\n currentChunk = word;\n }\n }\n }\n }\n }\n\n if (currentChunk) {\n chunks.push(currentChunk.trim());\n }\n\n return chunks;\n}\n\nexport function lastCastCacheKey(fid: number): string {\n return `farcaster/${fid}/lastCast`;\n}\n\nexport function neynarCastToCast(neynarCast: NeynarCast): Cast {\n return {\n hash: neynarCast.hash,\n authorFid: neynarCast.author.fid,\n text: neynarCast.text,\n threadId: neynarCast.thread_hash ?? undefined,\n profile: {\n fid: neynarCast.author.fid,\n name: neynarCast.author.display_name || \"anon\",\n username: neynarCast.author.username,\n },\n ...(neynarCast.parent_hash && neynarCast.parent_author?.fid\n ? {\n inReplyTo: {\n hash: neynarCast.parent_hash,\n fid: neynarCast.parent_author.fid,\n },\n }\n : {}),\n timestamp: new Date(neynarCast.timestamp),\n embeds: neynarCast.embeds && neynarCast.embeds.length > 0 ? neynarCast.embeds : undefined,\n };\n}\n\nexport function createCastMemory({\n roomId,\n senderId,\n runtime,\n cast,\n}: {\n roomId: UUID;\n senderId: UUID;\n runtime: IAgentRuntime;\n cast: Cast;\n}): Memory {\n const inReplyTo = cast.inReplyTo\n ? castUuid({\n hash: cast.inReplyTo.hash,\n agentId: runtime.agentId,\n })\n : undefined;\n\n return {\n id: castUuid({\n hash: cast.hash,\n agentId: runtime.agentId,\n }),\n agentId: runtime.agentId,\n entityId: senderId,\n content: {\n text: cast.text,\n source: FARCASTER_SOURCE,\n url: \"\",\n inReplyTo,\n hash: cast.hash,\n threadId: cast.threadId,\n attachments: cast.media && cast.media.length > 0 ? cast.media : undefined,\n },\n roomId,\n };\n}\n\nexport function formatCastTimestamp(timestamp: Date): string {\n return timestamp.toLocaleString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n month: \"short\",\n day: \"numeric\",\n });\n}\n",
|
|
21
21
|
"import { createUniqueUuid, type EventPayload, EventType, type IAgentRuntime } from \"@elizaos/core\";\nimport type { FarcasterClient } from \"../client/FarcasterClient\";\nimport {\n FARCASTER_SOURCE,\n type FarcasterConfig,\n FarcasterEventTypes,\n type LastCast,\n} from \"../types\";\nimport { lastCastCacheKey } from \"../utils\";\nimport { standardCastHandlerCallback } from \"../utils/callbacks\";\n\ninterface FarcasterCastParams {\n client: FarcasterClient;\n runtime: IAgentRuntime;\n config: FarcasterConfig;\n}\n\nexport class FarcasterCastManager {\n client: FarcasterClient;\n runtime: IAgentRuntime;\n fid: number;\n private timeout: ReturnType<typeof setTimeout> | undefined;\n private config: FarcasterConfig;\n private isRunning: boolean = false;\n\n constructor(opts: FarcasterCastParams) {\n this.client = opts.client;\n this.runtime = opts.runtime;\n this.config = opts.config;\n this.fid = this.config.FARCASTER_FID;\n }\n\n async start(): Promise<void> {\n if (this.isRunning || !this.config.ENABLE_CAST) {\n return;\n }\n\n this.isRunning = true;\n\n void this.runPeriodically();\n }\n\n async stop(): Promise<void> {\n if (this.timeout) clearTimeout(this.timeout);\n this.isRunning = false;\n }\n\n private calculateDelay(): { delay: number; randomMinutes: number } {\n const minMinutes = this.config.CAST_INTERVAL_MIN;\n const maxMinutes = this.config.CAST_INTERVAL_MAX;\n const randomMinutes = Math.floor(Math.random() * (maxMinutes - minMinutes + 1)) + minMinutes;\n const delay = randomMinutes * 60 * 1000;\n return { delay, randomMinutes };\n }\n\n private async runPeriodically(): Promise<void> {\n if (this.config.CAST_IMMEDIATELY) {\n await this.generateNewCast();\n }\n\n while (this.isRunning) {\n try {\n const lastPost = await this.runtime.getCache<LastCast>(lastCastCacheKey(this.fid));\n const lastPostTimestamp = lastPost?.timestamp ?? 0;\n const { delay, randomMinutes } = this.calculateDelay();\n\n if (Date.now() > lastPostTimestamp + delay) {\n await this.generateNewCast();\n }\n\n this.runtime.logger.log(`Next cast scheduled in ${randomMinutes} minutes`);\n await new Promise((resolve) => {\n const timeoutId = setTimeout(resolve, delay);\n this.timeout = timeoutId;\n });\n } catch (error) {\n this.runtime.logger.error(\n { agentId: this.runtime.agentId, error },\n \"[Farcaster] Error in periodic cast loop:\"\n );\n }\n }\n }\n\n private async generateNewCast(): Promise<void> {\n this.runtime.logger.info(\"Generating new cast\");\n try {\n const worldId = createUniqueUuid(this.runtime, this.fid.toString());\n const roomId = createUniqueUuid(this.runtime, `${this.fid}-home`);\n\n const callback = standardCastHandlerCallback({\n client: this.client,\n runtime: this.runtime,\n config: this.config,\n roomId,\n onCompletion: async (casts, _memories) => {\n const lastCast = casts[casts.length - 1];\n await this.runtime.setCache<LastCast>(lastCastCacheKey(this.fid), {\n hash: lastCast.hash,\n timestamp: new Date(lastCast.timestamp).getTime(),\n });\n },\n });\n\n await this.runtime.emitEvent(EventType.POST_GENERATED, {\n runtime: this.runtime,\n callback,\n worldId,\n userId: this.runtime.agentId,\n roomId,\n source: FARCASTER_SOURCE,\n });\n\n await this.runtime.emitEvent(\n FarcasterEventTypes.CAST_GENERATED as string,\n {\n runtime: this.runtime,\n source: FARCASTER_SOURCE,\n } as EventPayload\n );\n } catch (error) {\n this.runtime.logger.error({ error }, \"[Farcaster] Error generating new cast\");\n }\n }\n}\n",
|
|
22
22
|
"import type { Content, HandlerCallback, IAgentRuntime, Memory, UUID } from \"@elizaos/core\";\nimport type { Cast as NeynarCast } from \"@neynar/nodejs-sdk/build/api\";\nimport type { FarcasterClient } from \"../client\";\nimport type { CastId, FarcasterConfig } from \"../types\";\nimport { createCastMemory, neynarCastToCast } from \"./index\";\n\nexport function standardCastHandlerCallback({\n client,\n runtime,\n config,\n roomId,\n onCompletion,\n onError,\n inReplyTo,\n}: {\n inReplyTo?: CastId;\n client: FarcasterClient;\n runtime: IAgentRuntime;\n config: FarcasterConfig;\n roomId: UUID;\n onCompletion?: (casts: NeynarCast[], memories: Memory[]) => Promise<void>;\n onError?: (error: unknown) => Promise<void>;\n}): HandlerCallback {\n const callback: HandlerCallback = async (content: Content): Promise<Memory[]> => {\n try {\n if (config.FARCASTER_DRY_RUN) {\n runtime.logger.info(`[Farcaster] Dry run: would have cast: ${content.text}`);\n return [];\n }\n\n const casts = await client.sendCast({ content, inReplyTo });\n\n if (casts.length === 0) {\n runtime.logger.warn(\"[Farcaster] No casts posted\");\n return [];\n }\n\n const memories: Memory[] = [];\n for (let i = 0; i < casts.length; i++) {\n const cast = casts[i];\n runtime.logger.success(`[Farcaster] Published cast ${cast.hash}`);\n\n const memory = createCastMemory({\n roomId,\n senderId: runtime.agentId,\n runtime,\n cast: neynarCastToCast(cast),\n });\n\n if (i === 0) {\n memory.content.actions = content.actions;\n }\n\n await runtime.createMemory(memory, \"messages\");\n memories.push(memory);\n }\n\n if (onCompletion) {\n await onCompletion(casts, memories);\n }\n\n return memories;\n } catch (error) {\n runtime.logger.error(\n \"[Farcaster] Error posting cast:\",\n typeof error === \"string\" ? error : (error as Error).message\n );\n\n if (onError) {\n await onError(error);\n }\n\n return [];\n }\n };\n\n return callback;\n}\n",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"import { createUniqueUuid, type IAgentRuntime, type UUID } from \"@elizaos/core\";\nimport type { FarcasterClient } from \"../client/FarcasterClient\";\nimport { type Cast, FARCASTER_SOURCE, FarcasterEventTypes, FarcasterMessageType } from \"../types\";\nimport { castUuid, neynarCastToCast } from \"../utils\";\nimport { getFarcasterFid } from \"../utils/config\";\n\ntype MessageMetadata = Record<string, string | number | boolean | null | undefined>;\n\ninterface Message {\n id: string;\n agentId: UUID;\n roomId: string;\n userId: string;\n username: string;\n text: string;\n type: FarcasterMessageType;\n timestamp: number;\n inReplyTo?: string;\n metadata?: MessageMetadata;\n}\n\ninterface GetMessagesOptions {\n agentId: UUID;\n roomId?: string;\n limit?: number;\n}\n\ninterface SendMessageOptions {\n agentId: UUID;\n roomId: string;\n text: string;\n type: string;\n replyToId?: string;\n metadata?: MessageMetadata;\n}\n\ninterface IMessageService {\n getMessages(options: GetMessagesOptions): Promise<Message[]>;\n sendMessage(options: SendMessageOptions): Promise<Message>;\n getMessage(messageId: string, agentId: UUID): Promise<Message | null>;\n}\n\nexport class FarcasterMessageService implements IMessageService {\n constructor(\n private client: FarcasterClient,\n private runtime: IAgentRuntime\n ) {}\n\n private castToMessage(cast: Cast, agentId: UUID, extraMetadata?: MessageMetadata): Message {\n return {\n id: castUuid({ hash: cast.hash, agentId }),\n agentId,\n roomId: createUniqueUuid(this.runtime, cast.threadId || cast.hash),\n userId: cast.profile.fid.toString(),\n username: cast.profile.username,\n text: cast.text,\n type: cast.inReplyTo ? FarcasterMessageType.REPLY : FarcasterMessageType.CAST,\n timestamp: cast.timestamp.getTime(),\n inReplyTo: cast.inReplyTo ? castUuid({ hash: cast.inReplyTo.hash, agentId }) : undefined,\n metadata: {\n source: FARCASTER_SOURCE,\n castHash: cast.hash,\n threadId: cast.threadId,\n authorFid: cast.authorFid,\n ...(extraMetadata || {}),\n },\n };\n }\n\n async getMessages(options: GetMessagesOptions): Promise<Message[]> {\n try {\n const { agentId, roomId, limit = 20 } = options;\n\n const fid = getFarcasterFid(this.runtime);\n if (!fid) {\n this.runtime.logger.error(\"[Farcaster] FARCASTER_FID is not configured\");\n return [];\n }\n\n const { timeline } = await this.client.getTimeline({\n fid,\n pageSize: limit,\n });\n\n const messages: Message[] = timeline\n .map((cast) => this.castToMessage(cast, agentId))\n .filter((message) => {\n if (roomId) {\n return message.roomId === roomId;\n }\n return true;\n });\n\n return messages;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.runtime.logger.error(err, \"[Farcaster] Error fetching messages\");\n return [];\n }\n }\n\n async sendMessage(options: SendMessageOptions): Promise<Message> {\n try {\n const { text, type, roomId, replyToId, agentId } = options;\n\n let inReplyTo: { hash: string; fid: number } | undefined;\n if (replyToId && type === FarcasterMessageType.REPLY) {\n const parentHash =\n typeof options.metadata?.parentHash === \"string\"\n ? options.metadata.parentHash\n : replyToId;\n const fid = getFarcasterFid(this.runtime);\n if (!fid) {\n throw new Error(\"FARCASTER_FID is not configured\");\n }\n inReplyTo = {\n hash: parentHash,\n fid,\n };\n }\n\n const casts = await this.client.sendCast({\n content: { text },\n inReplyTo,\n });\n\n if (casts.length === 0) {\n throw new Error(\"No cast was created\");\n }\n\n const cast = neynarCastToCast(casts[0]);\n const message = this.castToMessage(cast, agentId, options.metadata);\n message.roomId = roomId;\n message.type = type as FarcasterMessageType;\n\n const castGeneratedPayload = {\n runtime: this.runtime,\n source: FARCASTER_SOURCE,\n castHash: cast.hash,\n ...(cast.threadId ? { threadId: cast.threadId } : {}),\n messageId: message.id,\n roomId,\n };\n await this.runtime.emitEvent(\n FarcasterEventTypes.CAST_GENERATED as string,\n castGeneratedPayload\n );\n\n return message;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.runtime.logger.error(err, \"[Farcaster] Error sending message\");\n throw err;\n }\n }\n\n async deleteMessage(_messageId: string, _agentId: UUID): Promise<void> {\n this.runtime.logger.warn(\"[Farcaster] Cast deletion is not supported by the Farcaster API\");\n }\n\n async getMessage(messageId: string, agentId: UUID): Promise<Message | null> {\n try {\n const castHash = messageId;\n\n const cast = await this.client.getCast(castHash);\n const farcasterCast = neynarCastToCast(cast);\n\n return this.castToMessage(farcasterCast, agentId);\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.runtime.logger.error(err, \"[Farcaster] Error fetching message\");\n return null;\n }\n }\n\n async getThread(params: { agentId: UUID; castHash: string }): Promise<Message[]> {\n try {\n const thread: Message[] = [];\n const visited = new Set<string>();\n let currentHash: string | undefined = params.castHash;\n\n while (currentHash) {\n if (visited.has(currentHash)) {\n break;\n }\n visited.add(currentHash);\n\n const cast = neynarCastToCast(await this.client.getCast(currentHash));\n thread.unshift(this.castToMessage(cast, params.agentId));\n\n currentHash = cast.inReplyTo?.hash;\n }\n\n return thread;\n } catch (error) {\n const err = error instanceof Error ? error : new Error(String(error));\n this.runtime.logger.error(err, \"[Farcaster] Error fetching thread\");\n return [];\n }\n }\n\n async markAsRead(_messageIds: string[], _agentId: UUID): Promise<void> {\n this.runtime.logger.debug(\"[Farcaster] Mark as read is not applicable for Farcaster casts\");\n }\n}\n",
|
|
29
29
|
"import type { Plugin } from \"@elizaos/core\";\nimport { farcasterActions } from \"./actions\";\nimport { farcasterProviders } from \"./providers\";\nimport { farcasterWebhookRoutes } from \"./routes/webhook\";\nimport { FarcasterService } from \"./services/FarcasterService\";\n\nexport { FarcasterClient } from \"./client/FarcasterClient\";\nexport {\n EmbedManager,\n isEmbedCast,\n isEmbedUrl,\n type ProcessedEmbed,\n} from \"./managers/EmbedManager\";\nexport { FarcasterService } from \"./services/FarcasterService\";\nexport type {\n Cast,\n CastEmbed,\n CastId,\n FarcasterConfig,\n FarcasterEventTypes,\n FarcasterMessageType,\n FidRequest,\n Profile,\n} from \"./types\";\n\nexport const farcasterPlugin: Plugin = {\n name: \"farcaster\",\n description: \"Farcaster client plugin for sending and receiving casts\",\n services: [FarcasterService],\n actions: farcasterActions,\n providers: farcasterProviders,\n routes: farcasterWebhookRoutes,\n};\n\nexport default farcasterPlugin;\n"
|
|
30
30
|
],
|
|
31
|
-
"mappings": "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",
|
|
32
|
-
"debugId": "
|
|
31
|
+
"mappings": "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",
|
|
32
|
+
"debugId": "FAF4E61B8A4C1E3864756E2164756E21",
|
|
33
33
|
"names": []
|
|
34
34
|
}
|