@elizaos/plugin-feishu 2.0.3-beta.6 → 2.0.3-beta.7

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.
@@ -0,0 +1,148 @@
1
+ import type { IAgentRuntime } from "@elizaos/core";
2
+ /**
3
+ * Default account identifier used when no specific account is configured
4
+ */
5
+ export declare const DEFAULT_ACCOUNT_ID = "default";
6
+ /**
7
+ * Token source indicator
8
+ */
9
+ export type FeishuTokenSource = "config" | "env" | "character" | "none";
10
+ /**
11
+ * Group-specific configuration
12
+ */
13
+ export interface FeishuGroupConfig {
14
+ /** If false, ignore messages from this group */
15
+ enabled?: boolean;
16
+ /** Allowlist for users in this group */
17
+ allowFrom?: Array<string | number>;
18
+ /** Require bot mention to respond */
19
+ requireMention?: boolean;
20
+ /** Custom system prompt for this group */
21
+ systemPrompt?: string;
22
+ /** Skills enabled for this group */
23
+ skills?: string[];
24
+ }
25
+ /**
26
+ * Configuration for a single Feishu account
27
+ */
28
+ export interface FeishuAccountConfig {
29
+ /** Optional display name for this account */
30
+ name?: string;
31
+ /** Bot display name */
32
+ botName?: string;
33
+ /** If false, do not start this Feishu account */
34
+ enabled?: boolean;
35
+ /** Feishu App ID */
36
+ appId?: string;
37
+ /** Feishu App Secret */
38
+ appSecret?: string;
39
+ /** Path to file containing app secret */
40
+ appSecretFile?: string;
41
+ /** Encrypt key for event callback */
42
+ encryptKey?: string;
43
+ /** Verification token for event callback */
44
+ verificationToken?: string;
45
+ /** Base API URL (for self-hosted Feishu) */
46
+ apiUrl?: string;
47
+ /** Allowlist for DM senders */
48
+ allowFrom?: Array<string | number>;
49
+ /** Allowlist for groups */
50
+ groupAllowFrom?: Array<string | number>;
51
+ /** DM access policy */
52
+ dmPolicy?: "open" | "allowlist" | "pairing" | "disabled";
53
+ /** Group message access policy */
54
+ groupPolicy?: "open" | "allowlist" | "disabled";
55
+ /** Max media size in MB */
56
+ mediaMaxMb?: number;
57
+ /** Text chunk limit for messages */
58
+ textChunkLimit?: number;
59
+ /** Webhook path for event callbacks */
60
+ webhookPath?: string;
61
+ /** Group-specific configurations */
62
+ groups?: Record<string, FeishuGroupConfig>;
63
+ }
64
+ /**
65
+ * Multi-account Feishu configuration structure
66
+ */
67
+ export interface FeishuMultiAccountConfig {
68
+ /** Default/base configuration applied to all accounts */
69
+ enabled?: boolean;
70
+ appId?: string;
71
+ appSecret?: string;
72
+ appSecretFile?: string;
73
+ encryptKey?: string;
74
+ verificationToken?: string;
75
+ apiUrl?: string;
76
+ dmPolicy?: "open" | "allowlist" | "pairing" | "disabled";
77
+ groupPolicy?: "open" | "allowlist" | "disabled";
78
+ mediaMaxMb?: number;
79
+ textChunkLimit?: number;
80
+ webhookPath?: string;
81
+ /** Per-account configuration overrides */
82
+ accounts?: Record<string, FeishuAccountConfig>;
83
+ /** Group configurations at base level */
84
+ groups?: Record<string, FeishuGroupConfig>;
85
+ }
86
+ /**
87
+ * Resolved Feishu account with all configuration merged
88
+ */
89
+ export interface ResolvedFeishuAccount {
90
+ accountId: string;
91
+ enabled: boolean;
92
+ name?: string;
93
+ appId: string;
94
+ appSecret: string;
95
+ tokenSource: FeishuTokenSource;
96
+ configured: boolean;
97
+ config: FeishuAccountConfig;
98
+ }
99
+ /**
100
+ * Normalizes an account ID, returning the default if not provided
101
+ */
102
+ export declare function normalizeAccountId(accountId?: string | null): string;
103
+ /**
104
+ * Gets the account configuration records from runtime settings
105
+ */
106
+ export declare function getMultiAccountConfig(runtime: IAgentRuntime): FeishuMultiAccountConfig;
107
+ /**
108
+ * Lists all configured account IDs
109
+ */
110
+ export declare function listFeishuAccountIds(runtime: IAgentRuntime): string[];
111
+ /**
112
+ * Resolves the default account ID to use
113
+ */
114
+ export declare function resolveDefaultFeishuAccountId(runtime: IAgentRuntime): string;
115
+ /**
116
+ * Resolves a complete Feishu account configuration
117
+ */
118
+ export declare function resolveFeishuAccount(runtime: IAgentRuntime, accountId?: string | null): ResolvedFeishuAccount;
119
+ /**
120
+ * Lists all enabled Feishu accounts
121
+ */
122
+ export declare function listEnabledFeishuAccounts(runtime: IAgentRuntime): ResolvedFeishuAccount[];
123
+ /**
124
+ * Checks whether more than one enabled account is configured
125
+ */
126
+ export declare function isMultiAccountEnabled(runtime: IAgentRuntime): boolean;
127
+ /**
128
+ * Resolves group configuration for a specific group
129
+ */
130
+ export declare function resolveFeishuGroupConfig(runtime: IAgentRuntime, accountId: string, groupId: string): FeishuGroupConfig | undefined;
131
+ /**
132
+ * Checks if a user is allowed based on policy and allowlist
133
+ */
134
+ export declare function isFeishuUserAllowed(params: {
135
+ userId: string;
136
+ accountConfig: FeishuAccountConfig;
137
+ isGroup: boolean;
138
+ groupId?: string;
139
+ groupConfig?: FeishuGroupConfig;
140
+ }): boolean;
141
+ /**
142
+ * Checks if mention is required in a group
143
+ */
144
+ export declare function isFeishuMentionRequired(params: {
145
+ accountConfig: FeishuAccountConfig;
146
+ groupConfig?: FeishuGroupConfig;
147
+ }): boolean;
148
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../src/accounts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Feishu plugin configuration types.
3
+ *
4
+ * These types define the configuration schema for the Feishu plugin.
5
+ * Shared base types are imported from @elizaos/core.
6
+ */
7
+ import type { BlockStreamingCoalesceConfig, ChannelHeartbeatVisibilityConfig, DmConfig, DmPolicy, GroupPolicy, GroupToolPolicyBySenderConfig, GroupToolPolicyConfig, MarkdownConfig, ProviderCommandsConfig } from "@elizaos/core";
8
+ export type FeishuReactionNotificationMode = "off" | "own" | "all" | "allowlist";
9
+ export type FeishuActionConfig = {
10
+ reactions?: boolean;
11
+ sendMessage?: boolean;
12
+ };
13
+ export type FeishuGroupConfig = {
14
+ requireMention?: boolean;
15
+ tools?: GroupToolPolicyConfig;
16
+ toolsBySender?: GroupToolPolicyBySenderConfig;
17
+ };
18
+ export type FeishuAccountConfig = {
19
+ /** Optional display name for this account (used in CLI/UI lists). */
20
+ name?: string;
21
+ /** Optional provider capability tags used for agent/runtime guidance. */
22
+ capabilities?: string[];
23
+ /** Markdown formatting overrides (tables). */
24
+ markdown?: MarkdownConfig;
25
+ /** Override native command registration for Feishu (bool or "auto"). */
26
+ commands?: ProviderCommandsConfig;
27
+ /** Allow channel-initiated config writes (default: true). */
28
+ configWrites?: boolean;
29
+ /** If false, do not start this Feishu account. Default: true. */
30
+ enabled?: boolean;
31
+ /** Feishu App ID (from developer console). */
32
+ appId?: string;
33
+ /** Feishu App Secret (from developer console). */
34
+ appSecret?: string;
35
+ /** Feishu Verification Token (for webhook validation). */
36
+ verificationToken?: string;
37
+ /** Feishu Encrypt Key (for decrypting message payloads). */
38
+ encryptKey?: string;
39
+ /** Webhook mode: event subscription callback. */
40
+ webhookPath?: string;
41
+ /** WebSocket mode: use Feishu WS push (default: false). */
42
+ useWebSocket?: boolean;
43
+ /** Direct message access policy (default: pairing). */
44
+ dmPolicy?: DmPolicy;
45
+ /** Optional allowlist for Feishu DM senders (open_id). */
46
+ allowFrom?: Array<string | number>;
47
+ /** Optional allowlist for Feishu group senders (open_id). */
48
+ groupAllowFrom?: Array<string | number>;
49
+ /**
50
+ * Controls how group messages are handled:
51
+ * - "open": groups bypass allowFrom, only @mention-gating applies
52
+ * - "disabled": block all group messages
53
+ * - "allowlist": only allow group messages from senders in groupAllowFrom/allowFrom
54
+ */
55
+ groupPolicy?: GroupPolicy;
56
+ /** Max group messages to keep as history context (0 disables). */
57
+ historyLimit?: number;
58
+ /** Max DM turns to keep as history context. */
59
+ dmHistoryLimit?: number;
60
+ /** Per-DM config overrides keyed by user ID. */
61
+ dms?: Record<string, DmConfig>;
62
+ /** Outbound text chunk size (chars). Default: 4000. */
63
+ textChunkLimit?: number;
64
+ /** Chunking mode: "length" (default) splits by size; "newline" splits on every newline. */
65
+ chunkMode?: "length" | "newline";
66
+ /** Disable block streaming for this account. */
67
+ blockStreaming?: boolean;
68
+ /** Merge streamed block replies before sending. */
69
+ blockStreamingCoalesce?: BlockStreamingCoalesceConfig;
70
+ /** Maximum media file size in MB. Default: 100. */
71
+ mediaMaxMb?: number;
72
+ /** Per-action tool gating. */
73
+ actions?: FeishuActionConfig;
74
+ /** Reaction notification mode (off|own|all|allowlist). Default: off. */
75
+ reactionNotifications?: FeishuReactionNotificationMode;
76
+ /** Allowlist for reaction notifications when mode is allowlist. */
77
+ reactionAllowlist?: Array<string | number>;
78
+ /** Per-group config overrides keyed by chat_id. */
79
+ groups?: Record<string, FeishuGroupConfig>;
80
+ /** Heartbeat visibility settings for this channel. */
81
+ heartbeat?: ChannelHeartbeatVisibilityConfig;
82
+ };
83
+ export type FeishuConfig = {
84
+ /** Optional named Feishu account configuration records. */
85
+ accounts?: Record<string, FeishuAccountConfig>;
86
+ } & FeishuAccountConfig;
87
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,4BAA4B,EAC5B,gCAAgC,EAChC,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,MAAM,eAAe,CAAC;AAMvB,MAAM,MAAM,8BAA8B,GACvC,KAAK,GACL,KAAK,GACL,KAAK,GACL,WAAW,CAAC;AAMf,MAAM,MAAM,kBAAkB,GAAG;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAMF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,aAAa,CAAC,EAAE,6BAA6B,CAAC;CAC9C,CAAC;AAMF,MAAM,MAAM,mBAAmB,GAAG;IACjC,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACnC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACxC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/B,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mDAAmD;IACnD,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;IACtD,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,8BAA8B,CAAC;IACvD,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAC3C,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3C,sDAAsD;IACtD,SAAS,CAAC,EAAE,gCAAgC,CAAC;CAC7C,CAAC;AAMF,MAAM,MAAM,YAAY,GAAG;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC/C,GAAG,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Feishu ConnectorAccountManager provider.
3
+ *
4
+ * Adapts the multi-account scaffolding in `accounts.ts` to the
5
+ * `ConnectorAccountProvider` contract from
6
+ * `@elizaos/core/connectors/account-manager`.
7
+ *
8
+ * Source of truth for accounts is character settings (`character.settings.feishu`)
9
+ * plus env-var fallbacks (FEISHU_APP_ID, FEISHU_APP_SECRET). `listAccounts`
10
+ * enumerates all configured/enabled accounts; single-account env-only
11
+ * deployments still surface as a `default` account. AccountKey is the appId.
12
+ */
13
+ import type { ConnectorAccountProvider, IAgentRuntime } from "@elizaos/core";
14
+ export declare const FEISHU_PROVIDER_ID = "feishu";
15
+ export declare function createFeishuConnectorAccountProvider(runtime: IAgentRuntime): ConnectorAccountProvider;
16
+ //# sourceMappingURL=connector-account-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-account-provider.d.ts","sourceRoot":"","sources":["../src/connector-account-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAIX,wBAAwB,EACxB,aAAa,EACb,MAAM,eAAe,CAAC;AASvB,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAmC3C,wBAAgB,oCAAoC,CACnD,OAAO,EAAE,aAAa,GACpB,wBAAwB,CA0C1B"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Service name used to register and retrieve the Feishu service.
3
+ */
4
+ export declare const FEISHU_SERVICE_NAME = "feishu";
5
+ /**
6
+ * Default API domains for Feishu and Lark.
7
+ */
8
+ export declare const FEISHU_DOMAINS: {
9
+ readonly feishu: "https://open.feishu.cn";
10
+ readonly lark: "https://open.larksuite.com";
11
+ };
12
+ /**
13
+ * Maximum message length for Feishu text messages.
14
+ */
15
+ export declare const MAX_MESSAGE_LENGTH = 4000;
16
+ /**
17
+ * Default timeout for API requests in milliseconds.
18
+ */
19
+ export declare const DEFAULT_TIMEOUT_MS = 30000;
20
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { IAgentRuntime } from "@elizaos/core";
2
+ /**
3
+ * Configuration for the Feishu service.
4
+ */
5
+ export interface FeishuConfig {
6
+ /** Application ID (cli_xxx format) */
7
+ appId: string;
8
+ /** Application secret */
9
+ appSecret: string;
10
+ /** Domain: 'feishu' for China or 'lark' for global */
11
+ domain: "feishu" | "lark";
12
+ /** API base URL */
13
+ apiRoot: string;
14
+ /** Allowed chat IDs (empty means all allowed) */
15
+ allowedChatIds: string[];
16
+ /** Test chat ID for testing */
17
+ testChatId?: string;
18
+ /** Whether to ignore bot messages */
19
+ shouldIgnoreBotMessages: boolean;
20
+ /** Whether to respond only to mentions */
21
+ shouldRespondOnlyToMentions: boolean;
22
+ }
23
+ /**
24
+ * Validates and returns the Feishu configuration from runtime settings.
25
+ */
26
+ export declare function getFeishuConfig(runtime: IAgentRuntime): FeishuConfig | null;
27
+ /**
28
+ * Validates the Feishu configuration.
29
+ */
30
+ export declare function validateConfig(config: FeishuConfig): {
31
+ valid: boolean;
32
+ error?: string;
33
+ };
34
+ /**
35
+ * Checks if a chat is allowed based on configuration.
36
+ */
37
+ export declare function isChatAllowed(config: FeishuConfig, chatId: string): boolean;
38
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,uBAAuB,EAAE,OAAO,CAAC;IACjC,0CAA0C;IAC1C,2BAA2B,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,GAAG,IAAI,CAyD3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAcA;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAK3E"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Feishu text chunk limit
3
+ */
4
+ export declare const FEISHU_TEXT_CHUNK_LIMIT = 4000;
5
+ /**
6
+ * Feishu Post (rich text) element types
7
+ */
8
+ export type FeishuPostElement = {
9
+ tag: "text";
10
+ text: string;
11
+ style?: string[];
12
+ } | {
13
+ tag: "a";
14
+ text: string;
15
+ href: string;
16
+ style?: string[];
17
+ } | {
18
+ tag: "at";
19
+ user_id: string;
20
+ } | {
21
+ tag: "img";
22
+ image_key: string;
23
+ } | {
24
+ tag: "media";
25
+ file_key: string;
26
+ } | {
27
+ tag: "emotion";
28
+ emoji_type: string;
29
+ };
30
+ /**
31
+ * A line of Feishu Post content
32
+ */
33
+ export type FeishuPostLine = FeishuPostElement[];
34
+ /**
35
+ * Feishu Post content structure
36
+ */
37
+ export interface FeishuPostContent {
38
+ zh_cn?: {
39
+ title?: string;
40
+ content: FeishuPostLine[];
41
+ };
42
+ en_us?: {
43
+ title?: string;
44
+ content: FeishuPostLine[];
45
+ };
46
+ }
47
+ /**
48
+ * Result of formatting markdown for Feishu
49
+ */
50
+ export interface FeishuFormattedChunk {
51
+ post: FeishuPostContent;
52
+ text: string;
53
+ }
54
+ /**
55
+ * Options for text chunking
56
+ */
57
+ export interface ChunkFeishuTextOpts {
58
+ limit?: number;
59
+ }
60
+ /**
61
+ * Convert markdown to Feishu Post format
62
+ */
63
+ export declare function markdownToFeishuPost(markdown: string): FeishuPostContent;
64
+ /**
65
+ * Chunk text for Feishu messages
66
+ */
67
+ export declare function chunkFeishuText(text: string, opts?: ChunkFeishuTextOpts): string[];
68
+ /**
69
+ * Convert markdown to Feishu Post chunks
70
+ */
71
+ export declare function markdownToFeishuChunks(markdown: string, limit?: number): FeishuFormattedChunk[];
72
+ /**
73
+ * Check if text contains markdown formatting
74
+ */
75
+ export declare function containsMarkdown(text: string): boolean;
76
+ /**
77
+ * Strip markdown formatting from text
78
+ */
79
+ export declare function stripMarkdown(text: string): string;
80
+ /**
81
+ * Format Feishu user mention
82
+ */
83
+ export declare function formatFeishuUserMention(userId: string): string;
84
+ /**
85
+ * Format Feishu user mention for all users
86
+ */
87
+ export declare function formatFeishuAtAll(): string;
88
+ /**
89
+ * Truncate text to a maximum length
90
+ */
91
+ export declare function truncateText(text: string, maxLength: number): string;
92
+ /**
93
+ * Resolve system location for logging
94
+ */
95
+ export declare function resolveFeishuSystemLocation(params: {
96
+ chatType: "p2p" | "group";
97
+ chatId: string;
98
+ chatName?: string;
99
+ }): string;
100
+ /**
101
+ * Check if chat is a group chat
102
+ */
103
+ export declare function isGroupChat(chatType: string): boolean;
104
+ //# sourceMappingURL=formatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../src/formatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAC1B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/C;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1D;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,KAAK,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,cAAc,EAAE,CAAC;KAC1B,CAAC;IACF,KAAK,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,cAAc,EAAE,CAAC;KAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACb;AAwCD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAiWD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAGxE;AA8DD;;GAEG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,mBAAwB,GAC5B,MAAM,EAAE,CAwBV;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAgC,GACrC,oBAAoB,EAAE,CAMxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBtD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkClD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IACnD,QAAQ,EAAE,KAAK,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAIT;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAErD"}
@@ -0,0 +1,14 @@
1
+ import type { Plugin } from "@elizaos/core";
2
+ import { FEISHU_SERVICE_NAME } from "./constants";
3
+ import { MessageManager } from "./messageManager";
4
+ import { FeishuService } from "./service";
5
+ declare const feishuPlugin: Plugin;
6
+ export { DEFAULT_ACCOUNT_ID, type FeishuAccountConfig, type FeishuGroupConfig, type FeishuMultiAccountConfig, type FeishuTokenSource, isFeishuMentionRequired, isFeishuUserAllowed, isMultiAccountEnabled, listEnabledFeishuAccounts, listFeishuAccountIds, normalizeAccountId, type ResolvedFeishuAccount, resolveDefaultFeishuAccountId, resolveFeishuAccount, resolveFeishuGroupConfig, } from "./accounts";
7
+ export * from "./constants";
8
+ export * from "./environment";
9
+ export { type ChunkFeishuTextOpts, chunkFeishuText, containsMarkdown, FEISHU_TEXT_CHUNK_LIMIT, type FeishuFormattedChunk, type FeishuPostContent, type FeishuPostElement, type FeishuPostLine, formatFeishuAtAll, formatFeishuUserMention, isGroupChat, markdownToFeishuChunks, markdownToFeishuPost, resolveFeishuSystemLocation, stripMarkdown, truncateText, } from "./formatting";
10
+ export * from "./types";
11
+ export { FEISHU_SERVICE_NAME, FeishuService, MessageManager };
12
+ export default feishuPlugin;
13
+ export type { FeishuActionConfig, FeishuConfig, FeishuReactionNotificationMode, } from "./config";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,QAAA,MAAM,YAAY,EAAE,MA8BnB,CAAC;AAGF,OAAO,EACN,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,6BAA6B,EAC7B,oBAAoB,EACpB,wBAAwB,GACxB,MAAM,YAAY,CAAC;AACpB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B,OAAO,EACN,KAAK,mBAAmB,EACxB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,YAAY,GACZ,MAAM,cAAc,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AAE9D,eAAe,YAAY,CAAC;AAG5B,YAAY,EACX,kBAAkB,EAClB,YAAY,EACZ,8BAA8B,GAC9B,MAAM,UAAU,CAAC"}