@elizaos/plugin-farcaster 1.0.5 → 1.7.0
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/README.md +42 -1
- package/dist/__tests__/e2e/scenarios.d.ts +4 -0
- package/dist/__tests__/e2e/scenarios.d.ts.map +1 -0
- package/dist/__tests__/suite.d.ts +117 -0
- package/dist/__tests__/suite.d.ts.map +1 -0
- package/dist/__tests__/test-utils.d.ts +29 -0
- package/dist/__tests__/test-utils.d.ts.map +1 -0
- package/dist/__tests__/types.d.ts +88 -0
- package/dist/__tests__/types.d.ts.map +1 -0
- package/dist/actions/index.d.ts +4 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/replyCast.d.ts +3 -0
- package/dist/actions/replyCast.d.ts.map +1 -0
- package/dist/actions/sendCast.d.ts +3 -0
- package/dist/actions/sendCast.d.ts.map +1 -0
- package/dist/client.d.ts +26 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/common/asyncqueue.d.ts +13 -0
- package/dist/common/asyncqueue.d.ts.map +1 -0
- package/dist/common/callbacks.d.ts +14 -0
- package/dist/common/callbacks.d.ts.map +1 -0
- package/dist/common/config.d.ts +15 -0
- package/dist/common/config.d.ts.map +1 -0
- package/dist/common/constants.d.ts +9 -0
- package/dist/common/constants.d.ts.map +1 -0
- package/dist/common/prompts.d.ts +5 -0
- package/dist/common/prompts.d.ts.map +1 -0
- package/dist/common/types.d.ts +80 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/utils.d.ts +24 -0
- package/dist/common/utils.d.ts.map +1 -0
- package/dist/events/messageHandler.d.ts +29 -0
- package/dist/events/messageHandler.d.ts.map +1 -0
- package/dist/index.d.ts +7 -500
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1050 -739
- package/dist/index.js.map +35 -1
- package/dist/managers/agent.d.ts +21 -0
- package/dist/managers/agent.d.ts.map +1 -0
- package/dist/managers/interaction-processor.d.ts +12 -0
- package/dist/managers/interaction-processor.d.ts.map +1 -0
- package/dist/managers/interaction-source.d.ts +50 -0
- package/dist/managers/interaction-source.d.ts.map +1 -0
- package/dist/managers/interactions.d.ts +49 -0
- package/dist/managers/interactions.d.ts.map +1 -0
- package/dist/managers/post.d.ts +24 -0
- package/dist/managers/post.d.ts.map +1 -0
- package/dist/providers/index.d.ts +5 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/profileProvider.d.ts +3 -0
- package/dist/providers/profileProvider.d.ts.map +1 -0
- package/dist/providers/threadProvider.d.ts +3 -0
- package/dist/providers/threadProvider.d.ts.map +1 -0
- package/dist/providers/timelineProvider.d.ts +3 -0
- package/dist/providers/timelineProvider.d.ts.map +1 -0
- package/dist/routes/webhook.d.ts +3 -0
- package/dist/routes/webhook.d.ts.map +1 -0
- package/dist/service.d.ts +31 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/services/CastService.d.ts +142 -0
- package/dist/services/CastService.d.ts.map +1 -0
- package/dist/services/MessageService.d.ts +50 -0
- package/dist/services/MessageService.d.ts.map +1 -0
- package/package.json +5 -6
- package/dist/chunk-FNDASAYG.js +0 -83
- package/dist/chunk-FNDASAYG.js.map +0 -1
- package/dist/chunk-IOTLJXKN.js +0 -72
- package/dist/chunk-IOTLJXKN.js.map +0 -1
- package/dist/chunk-OAXQ6Z2Q.js +0 -105
- package/dist/chunk-OAXQ6Z2Q.js.map +0 -1
- package/dist/chunk-Y2URJ4EZ.js +0 -21
- package/dist/chunk-Y2URJ4EZ.js.map +0 -1
- package/dist/profileProvider-TNRU42OO.js +0 -8
- package/dist/profileProvider-TNRU42OO.js.map +0 -1
- package/dist/sendCast-OW6DBKQB.js +0 -8
- package/dist/sendCast-OW6DBKQB.js.map +0 -1
- package/dist/timelineProvider-GPRPFEVJ.js +0 -8
- package/dist/timelineProvider-GPRPFEVJ.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type IAgentRuntime } from '@elizaos/core';
|
|
2
|
+
import { FarcasterClient } from '../client';
|
|
3
|
+
import { type FarcasterConfig } from '../common/types';
|
|
4
|
+
import { FarcasterCastManager } from './post';
|
|
5
|
+
import { FarcasterInteractionManager } from './interactions';
|
|
6
|
+
/**
|
|
7
|
+
* A manager that orchestrates all Farcaster operations:
|
|
8
|
+
* - client: base operations (Neynar client, hub connection, etc.)
|
|
9
|
+
* - posts: autonomous posting logic
|
|
10
|
+
* - interactions: handling mentions, replies, likes, etc.
|
|
11
|
+
*/
|
|
12
|
+
export declare class FarcasterAgentManager {
|
|
13
|
+
readonly runtime: IAgentRuntime;
|
|
14
|
+
readonly client: FarcasterClient;
|
|
15
|
+
readonly casts: FarcasterCastManager;
|
|
16
|
+
readonly interactions: FarcasterInteractionManager;
|
|
17
|
+
constructor(runtime: IAgentRuntime, config: FarcasterConfig);
|
|
18
|
+
start(): Promise<void>;
|
|
19
|
+
stop(): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/managers/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,qBAAqB;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAAC;gBAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe;IAiBrD,KAAK;IAIL,IAAI;CAGX"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Cast, NeynarWebhookData } from '../common/types';
|
|
2
|
+
import type { Cast as NeynarCast } from '@neynar/nodejs-sdk/build/api';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for interaction processing to break circular dependency
|
|
5
|
+
*/
|
|
6
|
+
export interface IInteractionProcessor {
|
|
7
|
+
processMention(cast: NeynarCast): Promise<void>;
|
|
8
|
+
processReply(cast: NeynarCast): Promise<void>;
|
|
9
|
+
ensureCastConnection(cast: Cast): Promise<any>;
|
|
10
|
+
processWebhookData(webhookData: NeynarWebhookData): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=interaction-processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-processor.d.ts","sourceRoot":"","sources":["../../src/managers/interaction-processor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type IAgentRuntime } from '@elizaos/core';
|
|
2
|
+
import type { FarcasterClient } from '../client';
|
|
3
|
+
import type { FarcasterConfig, NeynarWebhookData } from '../common/types';
|
|
4
|
+
import type { IInteractionProcessor } from './interaction-processor';
|
|
5
|
+
interface FarcasterInteractionSourceParams {
|
|
6
|
+
client: FarcasterClient;
|
|
7
|
+
runtime: IAgentRuntime;
|
|
8
|
+
config: FarcasterConfig;
|
|
9
|
+
processor: IInteractionProcessor;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Abstract base class for Farcaster interaction sources
|
|
13
|
+
*/
|
|
14
|
+
export declare abstract class FarcasterInteractionSource {
|
|
15
|
+
protected client: FarcasterClient;
|
|
16
|
+
protected runtime: IAgentRuntime;
|
|
17
|
+
protected config: FarcasterConfig;
|
|
18
|
+
protected processor: IInteractionProcessor;
|
|
19
|
+
protected isRunning: boolean;
|
|
20
|
+
constructor(params: FarcasterInteractionSourceParams);
|
|
21
|
+
abstract start(): Promise<void>;
|
|
22
|
+
abstract stop(): Promise<void>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Polling-based interaction source (original behavior)
|
|
26
|
+
*/
|
|
27
|
+
export declare class FarcasterPollingSource extends FarcasterInteractionSource {
|
|
28
|
+
private timeout;
|
|
29
|
+
start(): Promise<void>;
|
|
30
|
+
stop(): Promise<void>;
|
|
31
|
+
private runPeriodically;
|
|
32
|
+
private pollForInteractions;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Webhook-based interaction source
|
|
36
|
+
*/
|
|
37
|
+
export declare class FarcasterWebhookSource extends FarcasterInteractionSource {
|
|
38
|
+
start(): Promise<void>;
|
|
39
|
+
stop(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Process webhook data (called from webhook route handler)
|
|
42
|
+
*/
|
|
43
|
+
processWebhookData(webhookData: NeynarWebhookData): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Factory function to create the appropriate interaction source based on config
|
|
47
|
+
*/
|
|
48
|
+
export declare function createFarcasterInteractionSource(params: FarcasterInteractionSourceParams): FarcasterInteractionSource;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=interaction-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-source.d.ts","sourceRoot":"","sources":["../../src/managers/interaction-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGrE,UAAU,gCAAgC;IACxC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,qBAAqB,CAAC;CAClC;AAED;;GAEG;AACH,8BAAsB,0BAA0B;IAC9C,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IACjC,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC;IAClC,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC3C,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;gBAEzB,MAAM,EAAE,gCAAgC;IAOpD,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,0BAA0B;IACpE,OAAO,CAAC,OAAO,CAA4C;IAErD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMb,eAAe;YAcf,mBAAmB;CAkClC;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,0BAA0B;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;CAYxE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,gCAAgC,GAAG,0BAA0B,CAUrH"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type IAgentRuntime, type Memory } from '@elizaos/core';
|
|
2
|
+
import { Cast as NeynarCast } from '@neynar/nodejs-sdk/build/api';
|
|
3
|
+
import type { FarcasterClient } from '../client';
|
|
4
|
+
import { type Cast, type FarcasterConfig, type NeynarWebhookData } from '../common/types';
|
|
5
|
+
import { type FarcasterInteractionSource } from './interaction-source';
|
|
6
|
+
import type { IInteractionProcessor } from './interaction-processor';
|
|
7
|
+
interface FarcasterInteractionManagerParams {
|
|
8
|
+
client: FarcasterClient;
|
|
9
|
+
runtime: IAgentRuntime;
|
|
10
|
+
config: FarcasterConfig;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Processes Farcaster interactions (mentions, replies) regardless of source (polling/webhook)
|
|
14
|
+
* This class contains the core logic for handling interactions and manages the interaction source
|
|
15
|
+
*/
|
|
16
|
+
export declare class FarcasterInteractionManager implements IInteractionProcessor {
|
|
17
|
+
private client;
|
|
18
|
+
private runtime;
|
|
19
|
+
private config;
|
|
20
|
+
private asyncQueue;
|
|
21
|
+
readonly mode: 'polling' | 'webhook';
|
|
22
|
+
readonly source: FarcasterInteractionSource;
|
|
23
|
+
constructor(opts: FarcasterInteractionManagerParams);
|
|
24
|
+
/**
|
|
25
|
+
* Process a mention from any source (webhook or polling)
|
|
26
|
+
*/
|
|
27
|
+
processMention(cast: NeynarCast): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Process a reply from any source (webhook or polling)
|
|
30
|
+
*/
|
|
31
|
+
processReply(cast: NeynarCast): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Process webhook data from Neynar
|
|
34
|
+
*/
|
|
35
|
+
processWebhookData(webhookData: NeynarWebhookData): Promise<void>;
|
|
36
|
+
ensureCastConnection(cast: Cast): Promise<Memory>;
|
|
37
|
+
private buildThreadForCast;
|
|
38
|
+
private handleMentionCast;
|
|
39
|
+
/**
|
|
40
|
+
* Start the interaction manager (delegates to the appropriate source)
|
|
41
|
+
*/
|
|
42
|
+
start(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Stop the interaction manager
|
|
45
|
+
*/
|
|
46
|
+
stop(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=interactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../src/managers/interactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EAElB,KAAK,MAAM,EAMZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIjD,OAAO,EACL,KAAK,IAAI,EACT,KAAK,eAAe,EAGpB,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAoC,KAAK,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,UAAU,iCAAiC;IACzC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,qBAAqB;IACvE,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAa;IAG/B,SAAgB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5C,SAAgB,MAAM,EAAE,0BAA0B,CAAC;gBAEvC,IAAI,EAAE,iCAAiC;IAkBnD;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkE1D,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YAmDhD,kBAAkB;YA2ClB,iBAAiB;IAsE/B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK5B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type IAgentRuntime } from '@elizaos/core';
|
|
2
|
+
import type { FarcasterClient } from '../client';
|
|
3
|
+
import { FarcasterConfig } from '../common/types';
|
|
4
|
+
interface FarcasterCastParams {
|
|
5
|
+
client: FarcasterClient;
|
|
6
|
+
runtime: IAgentRuntime;
|
|
7
|
+
config: FarcasterConfig;
|
|
8
|
+
}
|
|
9
|
+
export declare class FarcasterCastManager {
|
|
10
|
+
client: FarcasterClient;
|
|
11
|
+
runtime: IAgentRuntime;
|
|
12
|
+
fid: number;
|
|
13
|
+
private timeout;
|
|
14
|
+
private config;
|
|
15
|
+
private isRunning;
|
|
16
|
+
constructor(opts: FarcasterCastParams);
|
|
17
|
+
start(): Promise<void>;
|
|
18
|
+
stop(): Promise<void>;
|
|
19
|
+
private calculateDelay;
|
|
20
|
+
private runPeriodically;
|
|
21
|
+
private generateNewCast;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=post.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../src/managers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAiC,MAAM,iBAAiB,CAAC;AAGjF,UAAU,mBAAmB;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,qBAAa,oBAAoB;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,aAAa,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,IAAI,EAAE,mBAAmB;IAOxB,KAAK;IAWL,IAAI;IAKjB,OAAO,CAAC,cAAc;YAQR,eAAe;YAuBf,eAAe;CAiC9B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { farcasterProfileProvider } from './profileProvider';
|
|
2
|
+
export { farcasterTimelineProvider } from './timelineProvider';
|
|
3
|
+
export { farcasterThreadProvider } from './threadProvider';
|
|
4
|
+
export declare const farcasterProviders: any[];
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAO3D,eAAO,MAAM,kBAAkB,OAI9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profileProvider.d.ts","sourceRoot":"","sources":["../../src/providers/profileProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,wBAAwB,EAAE,QAmEtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threadProvider.d.ts","sourceRoot":"","sources":["../../src/providers/threadProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,QAAQ,EAKhB,MAAM,eAAe,CAAC;AAavB,eAAO,MAAM,uBAAuB,EAAE,QA0FrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timelineProvider.d.ts","sourceRoot":"","sources":["../../src/providers/timelineProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,eAAe,CAAC;AAIvB,eAAO,MAAM,yBAAyB,EAAE,QAmEvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../src/routes/webhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,eAAO,MAAM,sBAAsB,EAAE,KAAK,EAgDzC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Service, UUID, type IAgentRuntime } from '@elizaos/core';
|
|
2
|
+
import { FarcasterAgentManager } from './managers/agent';
|
|
3
|
+
import { FarcasterMessageService } from './services/MessageService';
|
|
4
|
+
import { FarcasterCastService } from './services/CastService';
|
|
5
|
+
export declare class FarcasterService extends Service {
|
|
6
|
+
private static instance?;
|
|
7
|
+
private managers;
|
|
8
|
+
private messageServices;
|
|
9
|
+
private castServices;
|
|
10
|
+
static serviceType: string;
|
|
11
|
+
readonly description = "Farcaster integration service for sending and receiving casts";
|
|
12
|
+
readonly capabilityDescription = "The agent is able to send and receive messages on farcaster";
|
|
13
|
+
private static getInstance;
|
|
14
|
+
initialize(runtime: IAgentRuntime): Promise<void>;
|
|
15
|
+
static start(runtime: IAgentRuntime): Promise<Service>;
|
|
16
|
+
static stop(runtime: IAgentRuntime): Promise<void>;
|
|
17
|
+
stop(): Promise<void>;
|
|
18
|
+
getMessageService(agentId: UUID): FarcasterMessageService | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Get the PostService for a specific agent (for compatibility)
|
|
21
|
+
* @deprecated Use getCastService() instead. Will be removed in a future major release.
|
|
22
|
+
*/
|
|
23
|
+
getPostService(agentId: UUID): FarcasterCastService | undefined;
|
|
24
|
+
getCastService(agentId: UUID): FarcasterCastService | undefined;
|
|
25
|
+
healthCheck(): Promise<{
|
|
26
|
+
healthy: boolean;
|
|
27
|
+
details: Record<string, any>;
|
|
28
|
+
}>;
|
|
29
|
+
getActiveManagers(): Map<UUID, FarcasterAgentManager>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,OAAO,EAAE,IAAI,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,eAAe,CAA4C;IACnE,OAAO,CAAC,YAAY,CAAyC;IAG7D,MAAM,CAAC,WAAW,SAA0B;IAG5C,QAAQ,CAAC,WAAW,mEAAmE;IACvF,QAAQ,CAAC,qBAAqB,iEAAiE;IAE/F,OAAO,CAAC,MAAM,CAAC,WAAW;IAQpB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;WAK1C,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;WAgC/C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAelD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,uBAAuB,GAAG,SAAS;IAIrE;;;OAGG;IACH,cAAc,CAAC,OAAO,EAAE,IAAI,GAAG,oBAAoB,GAAG,SAAS;IAK/D,cAAc,CAAC,OAAO,EAAE,IAAI,GAAG,oBAAoB,GAAG,SAAS;IAKzD,WAAW,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,CAAC;IAkChF,iBAAiB,IAAI,GAAG,CAAC,IAAI,EAAE,qBAAqB,CAAC;CAGtD"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { type IAgentRuntime, type UUID } from '@elizaos/core';
|
|
2
|
+
import type { FarcasterClient } from '../client';
|
|
3
|
+
interface FarcasterCast {
|
|
4
|
+
id: string;
|
|
5
|
+
agentId: UUID;
|
|
6
|
+
roomId: UUID;
|
|
7
|
+
userId: string;
|
|
8
|
+
username: string;
|
|
9
|
+
text: string;
|
|
10
|
+
timestamp: number;
|
|
11
|
+
inReplyTo?: string;
|
|
12
|
+
media?: any[];
|
|
13
|
+
metadata?: any;
|
|
14
|
+
}
|
|
15
|
+
export interface CastServiceInterface {
|
|
16
|
+
getCasts(params: {
|
|
17
|
+
agentId: UUID;
|
|
18
|
+
limit?: number;
|
|
19
|
+
cursor?: string;
|
|
20
|
+
}): Promise<FarcasterCast[]>;
|
|
21
|
+
createCast(params: {
|
|
22
|
+
agentId: UUID;
|
|
23
|
+
roomId: UUID;
|
|
24
|
+
text: string;
|
|
25
|
+
media?: string[];
|
|
26
|
+
replyTo?: {
|
|
27
|
+
hash: string;
|
|
28
|
+
fid: number;
|
|
29
|
+
};
|
|
30
|
+
}): Promise<FarcasterCast>;
|
|
31
|
+
deleteCast(params: {
|
|
32
|
+
agentId: UUID;
|
|
33
|
+
castHash: string;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
likeCast(params: {
|
|
36
|
+
agentId: UUID;
|
|
37
|
+
castHash: string;
|
|
38
|
+
}): Promise<void>;
|
|
39
|
+
unlikeCast(params: {
|
|
40
|
+
agentId: UUID;
|
|
41
|
+
castHash: string;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
recast(params: {
|
|
44
|
+
agentId: UUID;
|
|
45
|
+
castHash: string;
|
|
46
|
+
}): Promise<void>;
|
|
47
|
+
unrecast(params: {
|
|
48
|
+
agentId: UUID;
|
|
49
|
+
castHash: string;
|
|
50
|
+
}): Promise<void>;
|
|
51
|
+
getMentions(params: {
|
|
52
|
+
agentId: UUID;
|
|
53
|
+
limit?: number;
|
|
54
|
+
}): Promise<FarcasterCast[]>;
|
|
55
|
+
}
|
|
56
|
+
export declare class FarcasterCastService implements CastServiceInterface {
|
|
57
|
+
private client;
|
|
58
|
+
private runtime;
|
|
59
|
+
static serviceType: string;
|
|
60
|
+
constructor(client: FarcasterClient, runtime: IAgentRuntime);
|
|
61
|
+
/**
|
|
62
|
+
* Get recent casts from the timeline
|
|
63
|
+
*/
|
|
64
|
+
getCasts(params: {
|
|
65
|
+
agentId: UUID;
|
|
66
|
+
limit?: number;
|
|
67
|
+
cursor?: string;
|
|
68
|
+
}): Promise<FarcasterCast[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Create a new cast
|
|
71
|
+
*/
|
|
72
|
+
createCast(params: {
|
|
73
|
+
agentId: UUID;
|
|
74
|
+
roomId: UUID;
|
|
75
|
+
text: string;
|
|
76
|
+
media?: string[];
|
|
77
|
+
replyTo?: {
|
|
78
|
+
hash: string;
|
|
79
|
+
fid: number;
|
|
80
|
+
};
|
|
81
|
+
}): Promise<FarcasterCast>;
|
|
82
|
+
/**
|
|
83
|
+
* Delete a cast
|
|
84
|
+
*/
|
|
85
|
+
deleteCast(params: {
|
|
86
|
+
agentId: UUID;
|
|
87
|
+
castHash: string;
|
|
88
|
+
}): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Like a cast
|
|
91
|
+
*/
|
|
92
|
+
likeCast(params: {
|
|
93
|
+
agentId: UUID;
|
|
94
|
+
castHash: string;
|
|
95
|
+
}): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Unlike a cast
|
|
98
|
+
*/
|
|
99
|
+
unlikeCast(params: {
|
|
100
|
+
agentId: UUID;
|
|
101
|
+
castHash: string;
|
|
102
|
+
}): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Recast a cast
|
|
105
|
+
*/
|
|
106
|
+
recast(params: {
|
|
107
|
+
agentId: UUID;
|
|
108
|
+
castHash: string;
|
|
109
|
+
}): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* Remove a recast
|
|
112
|
+
*/
|
|
113
|
+
unrecast(params: {
|
|
114
|
+
agentId: UUID;
|
|
115
|
+
castHash: string;
|
|
116
|
+
}): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Get mentions
|
|
119
|
+
*/
|
|
120
|
+
getMentions(params: {
|
|
121
|
+
agentId: UUID;
|
|
122
|
+
limit?: number;
|
|
123
|
+
}): Promise<FarcasterCast[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Generate cast content using AI
|
|
126
|
+
*/
|
|
127
|
+
private generateCastContent;
|
|
128
|
+
/**
|
|
129
|
+
* Truncate cast to fit character limit
|
|
130
|
+
*/
|
|
131
|
+
private truncateCast;
|
|
132
|
+
/**
|
|
133
|
+
* Store cast in agent memory
|
|
134
|
+
*/
|
|
135
|
+
private storeCastInMemory;
|
|
136
|
+
/**
|
|
137
|
+
* Convert internal Cast type to FarcasterCast
|
|
138
|
+
*/
|
|
139
|
+
private castToFarcasterCast;
|
|
140
|
+
}
|
|
141
|
+
export {};
|
|
142
|
+
//# sourceMappingURL=CastService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CastService.d.ts","sourceRoot":"","sources":["../../src/services/CastService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type UUID } from '@elizaos/core';
|
|
2
|
+
import type { FarcasterClient } from '../client';
|
|
3
|
+
import { FarcasterMessageType } from '../common/types';
|
|
4
|
+
interface Message {
|
|
5
|
+
id: string;
|
|
6
|
+
agentId: UUID;
|
|
7
|
+
roomId: string;
|
|
8
|
+
userId: string;
|
|
9
|
+
username: string;
|
|
10
|
+
text: string;
|
|
11
|
+
type: FarcasterMessageType;
|
|
12
|
+
timestamp: number;
|
|
13
|
+
inReplyTo?: string;
|
|
14
|
+
metadata?: any;
|
|
15
|
+
}
|
|
16
|
+
interface GetMessagesOptions {
|
|
17
|
+
agentId: UUID;
|
|
18
|
+
roomId?: string;
|
|
19
|
+
limit?: number;
|
|
20
|
+
}
|
|
21
|
+
interface SendMessageOptions {
|
|
22
|
+
agentId: UUID;
|
|
23
|
+
roomId: string;
|
|
24
|
+
text: string;
|
|
25
|
+
type: string;
|
|
26
|
+
replyToId?: string;
|
|
27
|
+
metadata?: any;
|
|
28
|
+
}
|
|
29
|
+
interface IMessageService {
|
|
30
|
+
getMessages(options: GetMessagesOptions): Promise<Message[]>;
|
|
31
|
+
sendMessage(options: SendMessageOptions): Promise<Message>;
|
|
32
|
+
getMessage(messageId: string, agentId: UUID): Promise<Message | null>;
|
|
33
|
+
}
|
|
34
|
+
export declare class FarcasterMessageService implements IMessageService {
|
|
35
|
+
private client;
|
|
36
|
+
private runtime;
|
|
37
|
+
constructor(client: FarcasterClient, runtime: any);
|
|
38
|
+
private castToMessage;
|
|
39
|
+
getMessages(options: GetMessagesOptions): Promise<Message[]>;
|
|
40
|
+
sendMessage(options: SendMessageOptions): Promise<Message>;
|
|
41
|
+
deleteMessage(messageId: string, agentId: UUID): Promise<void>;
|
|
42
|
+
getMessage(messageId: string, agentId: UUID): Promise<Message | null>;
|
|
43
|
+
getThread(params: {
|
|
44
|
+
agentId: UUID;
|
|
45
|
+
castHash: string;
|
|
46
|
+
}): Promise<Message[]>;
|
|
47
|
+
markAsRead(messageIds: string[], agentId: UUID): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=MessageService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAoB,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,iBAAiB,CAAC;AAI5E,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CACvE;AAED,qBAAa,uBAAwB,YAAW,eAAe;IAE3D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;gBADP,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,GAAG;IAGtB,OAAO,CAAC,aAAa;IAyBf,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiC5D,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiD1D,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAgBrE,SAAS,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAyB1E,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAIrE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-farcaster",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -19,19 +19,18 @@
|
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@elizaos/core": "^1.0
|
|
23
|
-
"@neynar/nodejs-sdk": "^
|
|
22
|
+
"@elizaos/core": "^1.7.0",
|
|
23
|
+
"@neynar/nodejs-sdk": "^3.34.0",
|
|
24
24
|
"lru-cache": "^11.1.0",
|
|
25
25
|
"typescript": "5.8.3",
|
|
26
26
|
"zod": "^3.25.9"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"tsup": "^8.3.5",
|
|
30
29
|
"vitest": "^3.0.0"
|
|
31
30
|
},
|
|
32
31
|
"scripts": {
|
|
33
|
-
"build": "
|
|
34
|
-
"dev": "
|
|
32
|
+
"build": "bun run build.ts",
|
|
33
|
+
"dev": "bun run build.ts --watch",
|
|
35
34
|
"test": "elizaos test",
|
|
36
35
|
"test:watch": "vitest watch",
|
|
37
36
|
"test:unit": "vitest run __tests__/unit",
|
package/dist/chunk-FNDASAYG.js
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FARCASTER_SERVICE_NAME
|
|
3
|
-
} from "./chunk-Y2URJ4EZ.js";
|
|
4
|
-
|
|
5
|
-
// src/providers/timelineProvider.ts
|
|
6
|
-
import {
|
|
7
|
-
logger
|
|
8
|
-
} from "@elizaos/core";
|
|
9
|
-
var farcasterTimelineProvider = {
|
|
10
|
-
name: "farcasterTimeline",
|
|
11
|
-
description: "Provides recent casts from the agent's Farcaster timeline",
|
|
12
|
-
get: async (runtime, message, state) => {
|
|
13
|
-
var _a, _b, _c;
|
|
14
|
-
try {
|
|
15
|
-
const service = runtime.getService(FARCASTER_SERVICE_NAME);
|
|
16
|
-
const castService = service == null ? void 0 : service.getCastService(runtime.agentId);
|
|
17
|
-
if (!castService) {
|
|
18
|
-
return {
|
|
19
|
-
text: "Farcaster timeline not available.",
|
|
20
|
-
data: { available: false }
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
const casts = await castService.getCasts({
|
|
24
|
-
agentId: runtime.agentId,
|
|
25
|
-
limit: 5
|
|
26
|
-
});
|
|
27
|
-
if (!casts || casts.length === 0) {
|
|
28
|
-
return {
|
|
29
|
-
text: "No recent casts in your timeline.",
|
|
30
|
-
data: {
|
|
31
|
-
available: true,
|
|
32
|
-
casts: [],
|
|
33
|
-
count: 0
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
const formattedCasts = casts.map((cast, index) => {
|
|
38
|
-
const timeAgo = getTimeAgo(new Date(cast.timestamp));
|
|
39
|
-
return `${index + 1}. @${cast.username} (${timeAgo}): ${cast.text}`;
|
|
40
|
-
}).join("\n");
|
|
41
|
-
return {
|
|
42
|
-
text: `Recent casts from your timeline:
|
|
43
|
-
${formattedCasts}`,
|
|
44
|
-
data: {
|
|
45
|
-
available: true,
|
|
46
|
-
casts: casts.map((c) => {
|
|
47
|
-
var _a2;
|
|
48
|
-
return {
|
|
49
|
-
id: c.id,
|
|
50
|
-
username: c.username,
|
|
51
|
-
text: c.text,
|
|
52
|
-
timestamp: c.timestamp,
|
|
53
|
-
castHash: (_a2 = c.metadata) == null ? void 0 : _a2.castHash
|
|
54
|
-
};
|
|
55
|
-
}),
|
|
56
|
-
count: casts.length
|
|
57
|
-
},
|
|
58
|
-
values: {
|
|
59
|
-
latestCastHash: (_b = (_a = casts[0]) == null ? void 0 : _a.metadata) == null ? void 0 : _b.castHash,
|
|
60
|
-
latestCastText: (_c = casts[0]) == null ? void 0 : _c.text
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
} catch (error) {
|
|
64
|
-
logger.error("[FarcasterTimelineProvider] Error:", error);
|
|
65
|
-
return {
|
|
66
|
-
text: "Unable to fetch Farcaster timeline.",
|
|
67
|
-
data: { available: false, error: error instanceof Error ? error.message : "Unknown error" }
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
function getTimeAgo(date) {
|
|
73
|
-
const seconds = Math.floor(((/* @__PURE__ */ new Date()).getTime() - date.getTime()) / 1e3);
|
|
74
|
-
if (seconds < 60) return "just now";
|
|
75
|
-
if (seconds < 3600) return `${Math.floor(seconds / 60)}m ago`;
|
|
76
|
-
if (seconds < 86400) return `${Math.floor(seconds / 3600)}h ago`;
|
|
77
|
-
return `${Math.floor(seconds / 86400)}d ago`;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export {
|
|
81
|
-
farcasterTimelineProvider
|
|
82
|
-
};
|
|
83
|
-
//# sourceMappingURL=chunk-FNDASAYG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/providers/timelineProvider.ts"],"sourcesContent":["import {\n type Provider,\n type IAgentRuntime,\n type Memory,\n type State,\n type ProviderResult,\n logger,\n} from '@elizaos/core';\nimport { FARCASTER_SERVICE_NAME } from '../common/constants';\nimport type { FarcasterService } from '../service';\n\nexport const farcasterTimelineProvider: Provider = {\n name: 'farcasterTimeline',\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 // Get recent casts from timeline\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 // Format casts for context\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 casts: casts.map((c) => ({\n id: c.id,\n username: c.username,\n text: c.text,\n timestamp: c.timestamp,\n castHash: c.metadata?.castHash,\n })),\n count: casts.length,\n },\n values: {\n latestCastHash: casts[0]?.metadata?.castHash,\n latestCastText: casts[0]?.text,\n },\n };\n } catch (error) {\n logger.error('[FarcasterTimelineProvider] Error:', error);\n return {\n text: 'Unable to fetch Farcaster timeline.',\n data: { available: false, error: error instanceof Error ? error.message : 'Unknown error' },\n };\n }\n },\n};\n\n// Helper function to format time ago\nfunction getTimeAgo(date: Date): string {\n const seconds = Math.floor((new Date().getTime() - 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"],"mappings":";;;;;AAAA;AAAA,EAME;AAAA,OACK;AAIA,IAAM,4BAAsC;AAAA,EACjD,MAAM;AAAA,EACN,aAAa;AAAA,EAEb,KAAK,OAAO,SAAwB,SAAiB,UAA0C;AAfjG;AAgBI,QAAI;AACF,YAAM,UAAU,QAAQ,WAAW,sBAAsB;AACzD,YAAM,cAAc,mCAAS,eAAe,QAAQ;AAEpD,UAAI,CAAC,aAAa;AAChB,eAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM,EAAE,WAAW,MAAM;AAAA,QAC3B;AAAA,MACF;AAGA,YAAM,QAAQ,MAAM,YAAY,SAAS;AAAA,QACvC,SAAS,QAAQ;AAAA,QACjB,OAAO;AAAA,MACT,CAAC;AAED,UAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,eAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,WAAW;AAAA,YACX,OAAO,CAAC;AAAA,YACR,OAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF;AAGA,YAAM,iBAAiB,MACpB,IAAI,CAAC,MAAM,UAAU;AACpB,cAAM,UAAU,WAAW,IAAI,KAAK,KAAK,SAAS,CAAC;AACnD,eAAO,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,KAAK,OAAO,MAAM,KAAK,IAAI;AAAA,MACnE,CAAC,EACA,KAAK,IAAI;AAEZ,aAAO;AAAA,QACL,MAAM;AAAA,EAAqC,cAAc;AAAA,QACzD,MAAM;AAAA,UACJ,WAAW;AAAA,UACX,OAAO,MAAM,IAAI,CAAC,MAAG;AAxD/B,gBAAAA;AAwDmC;AAAA,cACvB,IAAI,EAAE;AAAA,cACN,UAAU,EAAE;AAAA,cACZ,MAAM,EAAE;AAAA,cACR,WAAW,EAAE;AAAA,cACb,WAAUA,MAAA,EAAE,aAAF,gBAAAA,IAAY;AAAA,YACxB;AAAA,WAAE;AAAA,UACF,OAAO,MAAM;AAAA,QACf;AAAA,QACA,QAAQ;AAAA,UACN,iBAAgB,iBAAM,CAAC,MAAP,mBAAU,aAAV,mBAAoB;AAAA,UACpC,iBAAgB,WAAM,CAAC,MAAP,mBAAU;AAAA,QAC5B;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,aAAO,MAAM,sCAAsC,KAAK;AACxD,aAAO;AAAA,QACL,MAAM;AAAA,QACN,MAAM,EAAE,WAAW,OAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,gBAAgB;AAAA,MAC5F;AAAA,IACF;AAAA,EACF;AACF;AAGA,SAAS,WAAW,MAAoB;AACtC,QAAM,UAAU,KAAK,QAAO,oBAAI,KAAK,GAAE,QAAQ,IAAI,KAAK,QAAQ,KAAK,GAAI;AAEzE,MAAI,UAAU,GAAI,QAAO;AACzB,MAAI,UAAU,KAAM,QAAO,GAAG,KAAK,MAAM,UAAU,EAAE,CAAC;AACtD,MAAI,UAAU,MAAO,QAAO,GAAG,KAAK,MAAM,UAAU,IAAI,CAAC;AACzD,SAAO,GAAG,KAAK,MAAM,UAAU,KAAK,CAAC;AACvC;","names":["_a"]}
|