@elizaos/plugin-slack 2.0.3-beta.5 → 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.
- package/dist/accounts.d.ts +199 -0
- package/dist/accounts.d.ts.map +1 -0
- package/dist/config.d.ts +139 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/connector-account-provider.d.ts +15 -0
- package/dist/connector-account-provider.d.ts.map +1 -0
- package/dist/connector-credential-refs.d.ts +33 -0
- package/dist/connector-credential-refs.d.ts.map +1 -0
- package/dist/formatting.d.ts +109 -0
- package/dist/formatting.d.ts.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3178 -0
- package/dist/index.js.map +17 -0
- package/dist/service.d.ts +220 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/types.d.ts +331 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/workflow-credential-provider.d.ts +21 -0
- package/dist/workflow-credential-provider.d.ts.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import type { ConnectorAccountRole, 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
|
+
* Source of the Slack token
|
|
8
|
+
*/
|
|
9
|
+
export type SlackTokenSource = "env" | "config" | "character" | "none";
|
|
10
|
+
/**
|
|
11
|
+
* DM-specific configuration
|
|
12
|
+
*/
|
|
13
|
+
export interface SlackDmConfig {
|
|
14
|
+
/** If false, ignore all incoming Slack DMs */
|
|
15
|
+
enabled?: boolean;
|
|
16
|
+
/** Direct message access policy */
|
|
17
|
+
policy?: "open" | "disabled" | "allowlist";
|
|
18
|
+
/** Allowlist for DM senders (ids or names) */
|
|
19
|
+
allowFrom?: Array<string | number>;
|
|
20
|
+
/** Reply-to mode for DMs */
|
|
21
|
+
replyToMode?: "off" | "first" | "all";
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Channel-specific configuration
|
|
25
|
+
*/
|
|
26
|
+
export interface SlackChannelConfig {
|
|
27
|
+
/** If false, ignore this channel */
|
|
28
|
+
enabled?: boolean;
|
|
29
|
+
/** Require bot mention to respond */
|
|
30
|
+
requireMention?: boolean;
|
|
31
|
+
/** User allowlist for this channel */
|
|
32
|
+
users?: Array<string | number>;
|
|
33
|
+
/** Reply-to mode for this channel */
|
|
34
|
+
replyToMode?: "off" | "first" | "all";
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reaction notification mode
|
|
38
|
+
*/
|
|
39
|
+
export type SlackReactionNotificationMode = "off" | "own" | "all" | "allowlist";
|
|
40
|
+
/**
|
|
41
|
+
* Slash command configuration
|
|
42
|
+
*/
|
|
43
|
+
export interface SlackSlashCommandConfig {
|
|
44
|
+
/** Enable slash commands */
|
|
45
|
+
enabled?: boolean;
|
|
46
|
+
/** Slash command name (without leading /) */
|
|
47
|
+
command?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Action toggles for Slack features
|
|
51
|
+
*/
|
|
52
|
+
export interface SlackActionConfig {
|
|
53
|
+
/** Enable reactions */
|
|
54
|
+
reactions?: boolean;
|
|
55
|
+
/** Enable pins */
|
|
56
|
+
pins?: boolean;
|
|
57
|
+
/** Enable file uploads */
|
|
58
|
+
files?: boolean;
|
|
59
|
+
/** Enable message editing */
|
|
60
|
+
edit?: boolean;
|
|
61
|
+
/** Enable message deletion */
|
|
62
|
+
delete?: boolean;
|
|
63
|
+
/** Enable emoji list */
|
|
64
|
+
emojiList?: boolean;
|
|
65
|
+
/** Enable member info */
|
|
66
|
+
memberInfo?: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Configuration for a single Slack account
|
|
70
|
+
*/
|
|
71
|
+
export interface SlackAccountConfig {
|
|
72
|
+
/** Optional display name for this account */
|
|
73
|
+
name?: string;
|
|
74
|
+
/** If false, do not start this Slack account */
|
|
75
|
+
enabled?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Account role. AGENT (the default) means outbound API calls are made
|
|
78
|
+
* with the bot token (xoxb-) and represent the agent identity. OWNER
|
|
79
|
+
* means outbound calls that have user-token coverage (chat:write user
|
|
80
|
+
* scope) are made with the xoxp- user token so the agent acts as the
|
|
81
|
+
* user who installed the integration.
|
|
82
|
+
*/
|
|
83
|
+
role?: ConnectorAccountRole;
|
|
84
|
+
/** Slack bot token (xoxb-...) */
|
|
85
|
+
botToken?: string;
|
|
86
|
+
/** Slack app-level token (xapp-...) */
|
|
87
|
+
appToken?: string;
|
|
88
|
+
/** Slack signing secret */
|
|
89
|
+
signingSecret?: string;
|
|
90
|
+
/** Slack user token (xoxp-...) for user actions */
|
|
91
|
+
userToken?: string;
|
|
92
|
+
/** Controls how channel messages are handled */
|
|
93
|
+
groupPolicy?: "open" | "disabled" | "allowlist";
|
|
94
|
+
/** Outbound text chunk size (chars) */
|
|
95
|
+
textChunkLimit?: number;
|
|
96
|
+
/** Max media size in MB */
|
|
97
|
+
mediaMaxMb?: number;
|
|
98
|
+
/** Reaction notification mode */
|
|
99
|
+
reactionNotifications?: SlackReactionNotificationMode;
|
|
100
|
+
/** Reaction allowlist when mode is 'allowlist' */
|
|
101
|
+
reactionAllowlist?: Array<string | number>;
|
|
102
|
+
/** Reply-to mode */
|
|
103
|
+
replyToMode?: "off" | "first" | "all";
|
|
104
|
+
/** Reply-to mode by chat type */
|
|
105
|
+
replyToModeByChatType?: Record<string, "off" | "first" | "all">;
|
|
106
|
+
/** Per-action toggles */
|
|
107
|
+
actions?: SlackActionConfig;
|
|
108
|
+
/** Slash command configuration */
|
|
109
|
+
slashCommand?: SlackSlashCommandConfig;
|
|
110
|
+
/** DM configuration */
|
|
111
|
+
dm?: SlackDmConfig;
|
|
112
|
+
/** Per-channel configuration keyed by channel ID */
|
|
113
|
+
channels?: Record<string, SlackChannelConfig>;
|
|
114
|
+
/** Allowed channel IDs */
|
|
115
|
+
allowedChannelIds?: string[];
|
|
116
|
+
/** Whether to ignore bot messages */
|
|
117
|
+
shouldIgnoreBotMessages?: boolean;
|
|
118
|
+
/** Whether to respond only to mentions */
|
|
119
|
+
shouldRespondOnlyToMentions?: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Multi-account Slack configuration structure
|
|
123
|
+
*/
|
|
124
|
+
export interface SlackMultiAccountConfig {
|
|
125
|
+
/** Default/base configuration applied to all accounts */
|
|
126
|
+
enabled?: boolean;
|
|
127
|
+
botToken?: string;
|
|
128
|
+
appToken?: string;
|
|
129
|
+
/** Per-account configuration overrides */
|
|
130
|
+
accounts?: Record<string, SlackAccountConfig>;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Resolved Slack account with all configuration merged
|
|
134
|
+
*/
|
|
135
|
+
export interface ResolvedSlackAccount {
|
|
136
|
+
accountId: string;
|
|
137
|
+
enabled: boolean;
|
|
138
|
+
name?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Role this account represents in OWNER+AGENT terms. Drives outbound
|
|
141
|
+
* API client selection in the runtime: AGENT → bot token, OWNER →
|
|
142
|
+
* user token for calls covered by the granted user scopes.
|
|
143
|
+
*/
|
|
144
|
+
role: ConnectorAccountRole;
|
|
145
|
+
botToken?: string;
|
|
146
|
+
appToken?: string;
|
|
147
|
+
signingSecret?: string;
|
|
148
|
+
userToken?: string;
|
|
149
|
+
botTokenSource: SlackTokenSource;
|
|
150
|
+
appTokenSource: SlackTokenSource;
|
|
151
|
+
config: SlackAccountConfig;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Normalizes an account ID, returning the default if not provided
|
|
155
|
+
*/
|
|
156
|
+
export declare function normalizeAccountId(accountId?: string | null): string;
|
|
157
|
+
/**
|
|
158
|
+
* Validates and normalizes a Slack bot token (xoxb-)
|
|
159
|
+
*/
|
|
160
|
+
export declare function resolveSlackBotToken(raw?: string | null): string | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* Validates and normalizes a Slack app token (xapp-)
|
|
163
|
+
*/
|
|
164
|
+
export declare function resolveSlackAppToken(raw?: string | null): string | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* Validates and normalizes a Slack user token (xoxp-)
|
|
167
|
+
*/
|
|
168
|
+
export declare function resolveSlackUserToken(raw?: string | null): string | undefined;
|
|
169
|
+
/**
|
|
170
|
+
* Normalises an inbound role string into a `ConnectorAccountRole`.
|
|
171
|
+
* Unknown values fall back to AGENT — the default for legacy single
|
|
172
|
+
* bot-token deployments where the agent IS the bot.
|
|
173
|
+
*/
|
|
174
|
+
export declare function normalizeSlackAccountRole(raw: unknown): ConnectorAccountRole;
|
|
175
|
+
/**
|
|
176
|
+
* Lists all configured account IDs
|
|
177
|
+
*/
|
|
178
|
+
export declare function listSlackAccountIds(runtime: IAgentRuntime): string[];
|
|
179
|
+
/**
|
|
180
|
+
* Resolves the default account ID to use
|
|
181
|
+
*/
|
|
182
|
+
export declare function resolveDefaultSlackAccountId(runtime: IAgentRuntime): string;
|
|
183
|
+
/**
|
|
184
|
+
* Resolves a complete Slack account configuration
|
|
185
|
+
*/
|
|
186
|
+
export declare function resolveSlackAccount(runtime: IAgentRuntime, accountId?: string | null): ResolvedSlackAccount;
|
|
187
|
+
/**
|
|
188
|
+
* Lists all enabled Slack accounts
|
|
189
|
+
*/
|
|
190
|
+
export declare function listEnabledSlackAccounts(runtime: IAgentRuntime): ResolvedSlackAccount[];
|
|
191
|
+
/**
|
|
192
|
+
* Checks if multi-account mode is enabled
|
|
193
|
+
*/
|
|
194
|
+
export declare function isMultiAccountEnabled(runtime: IAgentRuntime): boolean;
|
|
195
|
+
/**
|
|
196
|
+
* Resolves the reply-to mode for a specific chat type
|
|
197
|
+
*/
|
|
198
|
+
export declare function resolveSlackReplyToMode(account: ResolvedSlackAccount, chatType?: string | null): "off" | "first" | "all";
|
|
199
|
+
//# 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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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack plugin configuration types.
|
|
3
|
+
*
|
|
4
|
+
* These types define the configuration schema for the Slack plugin.
|
|
5
|
+
* Shared base types are imported from @elizaos/core.
|
|
6
|
+
*/
|
|
7
|
+
import type { BlockStreamingCoalesceConfig, ChannelHeartbeatVisibilityConfig, DmConfig, DmPolicy, GroupPolicy, GroupToolPolicyBySenderConfig, GroupToolPolicyConfig, MarkdownConfig, ProviderCommandsConfig, ReplyToMode } from "@elizaos/core";
|
|
8
|
+
type SlackDmConfig = {
|
|
9
|
+
/** If false, ignore all incoming Slack DMs. Default: true. */
|
|
10
|
+
enabled?: boolean;
|
|
11
|
+
/** Direct message access policy (default: pairing). */
|
|
12
|
+
policy?: DmPolicy;
|
|
13
|
+
/** Allowlist for DM senders (ids). */
|
|
14
|
+
allowFrom?: Array<string | number>;
|
|
15
|
+
/** If true, allow group DMs (default: false). */
|
|
16
|
+
groupEnabled?: boolean;
|
|
17
|
+
/** Optional allowlist for group DM channels (ids or slugs). */
|
|
18
|
+
groupChannels?: Array<string | number>;
|
|
19
|
+
};
|
|
20
|
+
type SlackChannelConfig = {
|
|
21
|
+
/** If false, disable the bot in this channel. (Alias for allow: false.) */
|
|
22
|
+
enabled?: boolean;
|
|
23
|
+
/** Legacy channel allow toggle; prefer enabled. */
|
|
24
|
+
allow?: boolean;
|
|
25
|
+
/** Require mentioning the bot to trigger replies. */
|
|
26
|
+
requireMention?: boolean;
|
|
27
|
+
/** Optional tool policy overrides for this channel. */
|
|
28
|
+
tools?: GroupToolPolicyConfig;
|
|
29
|
+
toolsBySender?: GroupToolPolicyBySenderConfig;
|
|
30
|
+
/** Allow bot-authored messages to trigger replies (default: false). */
|
|
31
|
+
allowBots?: boolean;
|
|
32
|
+
/** Allowlist of users that can invoke the bot in this channel. */
|
|
33
|
+
users?: Array<string | number>;
|
|
34
|
+
/** Optional skill filter for this channel. */
|
|
35
|
+
skills?: string[];
|
|
36
|
+
/** Optional system prompt for this channel. */
|
|
37
|
+
systemPrompt?: string;
|
|
38
|
+
};
|
|
39
|
+
type SlackReactionNotificationMode = "off" | "own" | "all" | "allowlist";
|
|
40
|
+
type SlackActionConfig = {
|
|
41
|
+
reactions?: boolean;
|
|
42
|
+
messages?: boolean;
|
|
43
|
+
pins?: boolean;
|
|
44
|
+
search?: boolean;
|
|
45
|
+
permissions?: boolean;
|
|
46
|
+
memberInfo?: boolean;
|
|
47
|
+
channelInfo?: boolean;
|
|
48
|
+
emojiList?: boolean;
|
|
49
|
+
};
|
|
50
|
+
type SlackSlashCommandConfig = {
|
|
51
|
+
/** Enable handling for the configured slash command (default: false). */
|
|
52
|
+
enabled?: boolean;
|
|
53
|
+
/** Slash command name (default: "otto"). */
|
|
54
|
+
name?: string;
|
|
55
|
+
/** Session key prefix for slash commands (default: "slack:slash"). */
|
|
56
|
+
sessionPrefix?: string;
|
|
57
|
+
/** Reply ephemerally (default: true). */
|
|
58
|
+
ephemeral?: boolean;
|
|
59
|
+
};
|
|
60
|
+
export type SlackThreadConfig = {
|
|
61
|
+
/** Scope for thread history context (thread|channel). Default: thread. */
|
|
62
|
+
historyScope?: "thread" | "channel";
|
|
63
|
+
/** If true, thread sessions inherit the parent channel transcript. Default: false. */
|
|
64
|
+
inheritParent?: boolean;
|
|
65
|
+
};
|
|
66
|
+
type SlackAccountConfig = {
|
|
67
|
+
/** Optional display name for this account (used in CLI/UI lists). */
|
|
68
|
+
name?: string;
|
|
69
|
+
/** Slack connection mode (socket|http). Default: socket. */
|
|
70
|
+
mode?: "socket" | "http";
|
|
71
|
+
/** Slack signing secret (required for HTTP mode). */
|
|
72
|
+
signingSecret?: string;
|
|
73
|
+
/** Slack Events API webhook path (default: /slack/events). */
|
|
74
|
+
webhookPath?: string;
|
|
75
|
+
/** Optional provider capability tags used for agent/runtime guidance. */
|
|
76
|
+
capabilities?: string[];
|
|
77
|
+
/** Markdown formatting overrides (tables). */
|
|
78
|
+
markdown?: MarkdownConfig;
|
|
79
|
+
/** Override native command registration for Slack (bool or "auto"). */
|
|
80
|
+
commands?: ProviderCommandsConfig;
|
|
81
|
+
/** Allow channel-initiated config writes (default: true). */
|
|
82
|
+
configWrites?: boolean;
|
|
83
|
+
/** If false, do not start this Slack account. Default: true. */
|
|
84
|
+
enabled?: boolean;
|
|
85
|
+
botToken?: string;
|
|
86
|
+
appToken?: string;
|
|
87
|
+
userToken?: string;
|
|
88
|
+
/** If true, restrict user token to read operations only. Default: true. */
|
|
89
|
+
userTokenReadOnly?: boolean;
|
|
90
|
+
/** Allow bot-authored messages to trigger replies (default: false). */
|
|
91
|
+
allowBots?: boolean;
|
|
92
|
+
/** Default mention requirement for channel messages (default: true). */
|
|
93
|
+
requireMention?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Controls how channel messages are handled:
|
|
96
|
+
* - "open": channels bypass allowlists; mention-gating applies
|
|
97
|
+
* - "disabled": block all channel messages
|
|
98
|
+
* - "allowlist": only allow channels present in channels.slack.channels
|
|
99
|
+
*/
|
|
100
|
+
groupPolicy?: GroupPolicy;
|
|
101
|
+
/** Max channel messages to keep as history context (0 disables). */
|
|
102
|
+
historyLimit?: number;
|
|
103
|
+
/** Max DM turns to keep as history context. */
|
|
104
|
+
dmHistoryLimit?: number;
|
|
105
|
+
/** Per-DM config overrides keyed by user ID. */
|
|
106
|
+
dms?: Record<string, DmConfig>;
|
|
107
|
+
textChunkLimit?: number;
|
|
108
|
+
/** Chunking mode: "length" (default) splits by size; "newline" splits on every newline. */
|
|
109
|
+
chunkMode?: "length" | "newline";
|
|
110
|
+
blockStreaming?: boolean;
|
|
111
|
+
/** Merge streamed block replies before sending. */
|
|
112
|
+
blockStreamingCoalesce?: BlockStreamingCoalesceConfig;
|
|
113
|
+
mediaMaxMb?: number;
|
|
114
|
+
/** Reaction notification mode (off|own|all|allowlist). Default: own. */
|
|
115
|
+
reactionNotifications?: SlackReactionNotificationMode;
|
|
116
|
+
/** Allowlist for reaction notifications when mode is allowlist. */
|
|
117
|
+
reactionAllowlist?: Array<string | number>;
|
|
118
|
+
/** Control reply threading when reply tags are present (off|first|all). */
|
|
119
|
+
replyToMode?: ReplyToMode;
|
|
120
|
+
/**
|
|
121
|
+
* Optional per-chat-type reply threading overrides.
|
|
122
|
+
* Example: { direct: "all", group: "first", channel: "off" }.
|
|
123
|
+
*/
|
|
124
|
+
replyToModeByChatType?: Partial<Record<"direct" | "group" | "channel", ReplyToMode>>;
|
|
125
|
+
/** Thread session behavior. */
|
|
126
|
+
thread?: SlackThreadConfig;
|
|
127
|
+
actions?: SlackActionConfig;
|
|
128
|
+
slashCommand?: SlackSlashCommandConfig;
|
|
129
|
+
dm?: SlackDmConfig;
|
|
130
|
+
channels?: Record<string, SlackChannelConfig>;
|
|
131
|
+
/** Heartbeat visibility settings for this channel. */
|
|
132
|
+
heartbeat?: ChannelHeartbeatVisibilityConfig;
|
|
133
|
+
};
|
|
134
|
+
export type SlackConfig = {
|
|
135
|
+
/** Optional per-account Slack configuration (multi-account). */
|
|
136
|
+
accounts?: Record<string, SlackAccountConfig>;
|
|
137
|
+
} & SlackAccountConfig;
|
|
138
|
+
export {};
|
|
139
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slack ConnectorAccountManager provider.
|
|
3
|
+
*
|
|
4
|
+
* Bridges plugin-slack to the @elizaos/core ConnectorAccountManager so the
|
|
5
|
+
* generic HTTP CRUD + OAuth surface can list, create, patch, delete, and run
|
|
6
|
+
* the OAuth v2 install flow for Slack workspaces.
|
|
7
|
+
*
|
|
8
|
+
* Single-account env-only configurations (SLACK_BOT_TOKEN, SLACK_APP_TOKEN)
|
|
9
|
+
* are surfaced as a synthesized 'default' account with role 'OWNER' so
|
|
10
|
+
* downstream consumers see a uniform list. Multi-account configs declared on
|
|
11
|
+
* character.settings.slack are surfaced verbatim.
|
|
12
|
+
*/
|
|
13
|
+
import { type ConnectorAccountProvider, type IAgentRuntime } from "@elizaos/core";
|
|
14
|
+
export declare function createSlackConnectorAccountProvider(runtime: IAgentRuntime): ConnectorAccountProvider;
|
|
15
|
+
//# 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;AACH,OAAO,EAIL,KAAK,wBAAwB,EAO7B,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAC;AAwLvB,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,aAAa,GACrB,wBAAwB,CAkR1B"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type ConnectorAccountManager, type IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
type JsonValue = string | number | boolean | null | undefined | JsonValue[] | {
|
|
3
|
+
readonly [key: string]: JsonValue;
|
|
4
|
+
};
|
|
5
|
+
type JsonRecord = Record<string, JsonValue>;
|
|
6
|
+
export interface ConnectorCredentialRefMetadata extends JsonRecord {
|
|
7
|
+
credentialType: string;
|
|
8
|
+
vaultRef: string;
|
|
9
|
+
expiresAt?: number;
|
|
10
|
+
metadata?: JsonRecord;
|
|
11
|
+
}
|
|
12
|
+
interface ConnectorCredentialInput {
|
|
13
|
+
credentialType: string;
|
|
14
|
+
value: string;
|
|
15
|
+
expiresAt?: number;
|
|
16
|
+
metadata?: JsonRecord;
|
|
17
|
+
}
|
|
18
|
+
interface PersistConnectorCredentialRefsParams {
|
|
19
|
+
runtime: IAgentRuntime;
|
|
20
|
+
manager?: ConnectorAccountManager;
|
|
21
|
+
provider: string;
|
|
22
|
+
accountIdForRef: string;
|
|
23
|
+
storageAccountId?: string;
|
|
24
|
+
credentials: ConnectorCredentialInput[];
|
|
25
|
+
caller: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function persistConnectorCredentialRefs(params: PersistConnectorCredentialRefsParams): Promise<{
|
|
28
|
+
refs: ConnectorCredentialRefMetadata[];
|
|
29
|
+
vaultAvailable: boolean;
|
|
30
|
+
storageAvailable: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=connector-credential-refs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-credential-refs.d.ts","sourceRoot":"","sources":["../src/connector-credential-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AAEvB,KAAK,SAAS,GACV,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,EAAE,GACX;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAC1C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE5C,MAAM,WAAW,8BAA+B,SAAQ,UAAU;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,UAAU,wBAAwB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,UAAU,oCAAoC;IAC5C,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,wBAAwB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;CAChB;AAeD,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,oCAAoC,GAC3C,OAAO,CAAC;IACT,IAAI,EAAE,8BAA8B,EAAE,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC,CA2DD"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { SlackChannel, SlackUser } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Escapes Slack mrkdwn text, handling blockquotes specially
|
|
4
|
+
*/
|
|
5
|
+
export declare function escapeSlackMrkdwn(text: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Converts markdown to Slack mrkdwn format
|
|
8
|
+
*/
|
|
9
|
+
export declare function markdownToSlackMrkdwn(markdown: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Options for chunking Slack text
|
|
12
|
+
*/
|
|
13
|
+
export interface ChunkSlackTextOpts {
|
|
14
|
+
/** Max characters per message. Default: 4000 */
|
|
15
|
+
maxChars?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Chunks Slack text while preserving code blocks
|
|
19
|
+
*/
|
|
20
|
+
export declare function chunkSlackText(text: string, maxChars?: number): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Converts markdown to Slack mrkdwn and splits into chunks
|
|
23
|
+
*/
|
|
24
|
+
export declare function markdownToSlackMrkdwnChunks(markdown: string, limit: number): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Formats a Slack user mention
|
|
27
|
+
*/
|
|
28
|
+
export declare function formatSlackUserMention(userId: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Formats a Slack channel mention
|
|
31
|
+
*/
|
|
32
|
+
export declare function formatSlackChannelMention(channelId: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Formats a Slack user group mention
|
|
35
|
+
*/
|
|
36
|
+
export declare function formatSlackUserGroupMention(groupId: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Formats a Slack special mention (@here, @channel, @everyone)
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatSlackSpecialMention(type: "here" | "channel" | "everyone"): string;
|
|
41
|
+
/**
|
|
42
|
+
* Formats a Slack link
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatSlackLink(url: string, text?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Formats a Slack date
|
|
47
|
+
*/
|
|
48
|
+
export declare function formatSlackDate(timestamp: number | Date, format?: string, fallbackText?: string): string;
|
|
49
|
+
/**
|
|
50
|
+
* Extracts user ID from a Slack mention
|
|
51
|
+
*/
|
|
52
|
+
export declare function extractUserIdFromMention(mention: string): string | null;
|
|
53
|
+
/**
|
|
54
|
+
* Extracts channel ID from a Slack mention
|
|
55
|
+
*/
|
|
56
|
+
export declare function extractChannelIdFromMention(mention: string): string | null;
|
|
57
|
+
/**
|
|
58
|
+
* Extracts URL from a Slack link
|
|
59
|
+
*/
|
|
60
|
+
export declare function extractUrlFromSlackLink(link: string): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Formats a user's display name
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatSlackUserDisplayName(user: SlackUser): string;
|
|
65
|
+
/**
|
|
66
|
+
* Formats a channel for display
|
|
67
|
+
*/
|
|
68
|
+
export declare function formatSlackChannel(channel: SlackChannel): string;
|
|
69
|
+
/**
|
|
70
|
+
* Gets the channel type as a human-readable string
|
|
71
|
+
*/
|
|
72
|
+
export declare function getChannelTypeString(channel: SlackChannel): string;
|
|
73
|
+
/**
|
|
74
|
+
* Resolves the system location string for logging/display
|
|
75
|
+
*/
|
|
76
|
+
export declare function resolveSlackSystemLocation(channel: SlackChannel, teamName?: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Checks if a channel is a direct message
|
|
79
|
+
*/
|
|
80
|
+
export declare function isDirectMessage(channel: SlackChannel): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Checks if a channel is a group DM (multi-party IM)
|
|
83
|
+
*/
|
|
84
|
+
export declare function isGroupDm(channel: SlackChannel): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Checks if a channel is a private channel
|
|
87
|
+
*/
|
|
88
|
+
export declare function isPrivateChannel(channel: SlackChannel): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Truncates text to a maximum length with an ellipsis
|
|
91
|
+
*/
|
|
92
|
+
export declare function truncateText(text: string, maxLength: number, ellipsis?: string): string;
|
|
93
|
+
/**
|
|
94
|
+
* Strips Slack mrkdwn formatting from text
|
|
95
|
+
*/
|
|
96
|
+
export declare function stripSlackFormatting(text: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* Builds a Slack message permalink
|
|
99
|
+
*/
|
|
100
|
+
export declare function buildSlackMessagePermalink(workspaceDomain: string, channelId: string, messageTs: string): string;
|
|
101
|
+
/**
|
|
102
|
+
* Parses a Slack message permalink
|
|
103
|
+
*/
|
|
104
|
+
export declare function parseSlackMessagePermalink(link: string): {
|
|
105
|
+
workspaceDomain: string;
|
|
106
|
+
channelId: string;
|
|
107
|
+
messageTs: string;
|
|
108
|
+
} | null;
|
|
109
|
+
//# sourceMappingURL=formatting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../src/formatting.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type Plugin } from "@elizaos/core";
|
|
2
|
+
declare const slackPlugin: Plugin;
|
|
3
|
+
export default slackPlugin;
|
|
4
|
+
export { DEFAULT_ACCOUNT_ID, isMultiAccountEnabled, listEnabledSlackAccounts, listSlackAccountIds, normalizeAccountId, type ResolvedSlackAccount, resolveDefaultSlackAccountId, resolveSlackAccount, resolveSlackAppToken, resolveSlackBotToken, resolveSlackReplyToMode, resolveSlackUserToken, type SlackAccountConfig, type SlackActionConfig, type SlackChannelConfig, type SlackDmConfig, type SlackMultiAccountConfig, type SlackReactionNotificationMode, type SlackSlashCommandConfig, type SlackTokenSource, } from "./accounts";
|
|
5
|
+
export type { SlackConfig, SlackThreadConfig, } from "./config";
|
|
6
|
+
export { createSlackConnectorAccountProvider } from "./connector-account-provider";
|
|
7
|
+
export { buildSlackMessagePermalink, type ChunkSlackTextOpts, chunkSlackText, escapeSlackMrkdwn, extractChannelIdFromMention, extractUrlFromSlackLink, extractUserIdFromMention, formatSlackChannel, formatSlackChannelMention, formatSlackDate, formatSlackLink, formatSlackSpecialMention, formatSlackUserDisplayName, formatSlackUserGroupMention, formatSlackUserMention, getChannelTypeString, isDirectMessage, isGroupDm, isPrivateChannel, markdownToSlackMrkdwn, markdownToSlackMrkdwnChunks, parseSlackMessagePermalink, resolveSlackSystemLocation, stripSlackFormatting, truncateText, } from "./formatting";
|
|
8
|
+
export { SlackService } from "./service";
|
|
9
|
+
export type { ISlackService, SlackChannel, SlackChannelType, SlackEventPayloadMap, SlackFile, SlackMessage, SlackMessageReceivedPayload, SlackMessageSendOptions, SlackMessageSentPayload, SlackReaction, SlackReactionPayload, SlackSettings, SlackTeam, SlackUser, SlackUserProfile, } from "./types";
|
|
10
|
+
export { formatMessageTsForLink, getSlackChannelType, getSlackUserDisplayName, isValidChannelId, isValidMessageTs, isValidTeamId, isValidUserId, MAX_SLACK_BLOCKS, MAX_SLACK_FILE_SIZE, MAX_SLACK_MESSAGE_LENGTH, parseSlackMessageLink, SLACK_SERVICE_NAME, SlackApiError, SlackClientNotAvailableError, SlackConfigurationError, SlackEventTypes, SlackPluginError, SlackServiceNotInitializedError, } from "./types";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,eAAe,CAAC;AAMvB,QAAA,MAAM,WAAW,EAAE,MAuHlB,CAAC;AAEF,eAAe,WAAW,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EACL,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,cAAc,EACd,iBAAiB,EACjB,2BAA2B,EAC3B,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,EACpB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,2BAA2B,EAC3B,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,SAAS,EACT,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,4BAA4B,EAC5B,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,+BAA+B,GAChC,MAAM,SAAS,CAAC"}
|