@herdctl/slack 0.2.1 → 1.0.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/dist/__tests__/command-handler.test.js +1 -0
- package/dist/__tests__/command-handler.test.js.map +1 -1
- package/dist/__tests__/error-handler.test.js +25 -25
- package/dist/__tests__/error-handler.test.js.map +1 -1
- package/dist/__tests__/formatting.test.js +9 -9
- package/dist/__tests__/formatting.test.js.map +1 -1
- package/dist/__tests__/manager.test.d.ts +8 -0
- package/dist/__tests__/manager.test.d.ts.map +1 -0
- package/dist/__tests__/manager.test.js +278 -0
- package/dist/__tests__/manager.test.js.map +1 -0
- package/dist/__tests__/slack-connector.test.js +11 -12
- package/dist/__tests__/slack-connector.test.js.map +1 -1
- package/dist/commands/command-handler.d.ts +3 -3
- package/dist/commands/command-handler.d.ts.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -54
- package/dist/commands/status.js.map +1 -1
- package/dist/error-handler.d.ts +12 -33
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js +32 -57
- package/dist/error-handler.js.map +1 -1
- package/dist/formatting.d.ts +4 -45
- package/dist/formatting.d.ts.map +1 -1
- package/dist/formatting.js +10 -96
- package/dist/formatting.js.map +1 -1
- package/dist/index.d.ts +7 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -11
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +156 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +531 -0
- package/dist/manager.js.map +1 -0
- package/dist/slack-connector.d.ts +7 -7
- package/dist/slack-connector.d.ts.map +1 -1
- package/dist/slack-connector.js +56 -55
- package/dist/slack-connector.js.map +1 -1
- package/dist/types.d.ts +17 -32
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/__tests__/session-manager.test.d.ts +0 -2
- package/dist/__tests__/session-manager.test.d.ts.map +0 -1
- package/dist/__tests__/session-manager.test.js +0 -214
- package/dist/__tests__/session-manager.test.js.map +0 -1
- package/dist/session-manager/errors.d.ts +0 -58
- package/dist/session-manager/errors.d.ts.map +0 -1
- package/dist/session-manager/errors.js +0 -70
- package/dist/session-manager/errors.js.map +0 -1
- package/dist/session-manager/index.d.ts +0 -9
- package/dist/session-manager/index.d.ts.map +0 -1
- package/dist/session-manager/index.js +0 -13
- package/dist/session-manager/index.js.map +0 -1
- package/dist/session-manager/session-manager.d.ts +0 -62
- package/dist/session-manager/session-manager.d.ts.map +0 -1
- package/dist/session-manager/session-manager.js +0 -320
- package/dist/session-manager/session-manager.js.map +0 -1
- package/dist/session-manager/types.d.ts +0 -154
- package/dist/session-manager/types.d.ts.map +0 -1
- package/dist/session-manager/types.js +0 -57
- package/dist/session-manager/types.js.map +0 -1
package/dist/slack-connector.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Slack Connector
|
|
3
3
|
*
|
|
4
|
-
* Single Bolt App instance
|
|
4
|
+
* Single-agent Bolt App instance for Slack integration.
|
|
5
5
|
* Uses Socket Mode for connection (no public URL needed).
|
|
6
6
|
*
|
|
7
7
|
* Key design:
|
|
8
|
-
* - ONE connector
|
|
9
|
-
* - Channel
|
|
10
|
-
* - Channel-based conversations (channelId as session key, matching Discord)
|
|
8
|
+
* - ONE connector per agent (matching Discord's pattern)
|
|
9
|
+
* - Channel-based conversations (channelId as session key)
|
|
11
10
|
* - Hourglass emoji reaction as typing indicator
|
|
12
11
|
*/
|
|
13
12
|
import { EventEmitter } from "node:events";
|
|
@@ -20,11 +19,11 @@ import { createDefaultSlackLogger } from "./logger.js";
|
|
|
20
19
|
// Slack Connector Implementation
|
|
21
20
|
// =============================================================================
|
|
22
21
|
export class SlackConnector extends EventEmitter {
|
|
22
|
+
agentName;
|
|
23
|
+
sessionManager;
|
|
23
24
|
botToken;
|
|
24
25
|
appToken;
|
|
25
|
-
|
|
26
|
-
channelConfigs;
|
|
27
|
-
sessionManagers;
|
|
26
|
+
channels;
|
|
28
27
|
logger;
|
|
29
28
|
// Bolt App instance (dynamically imported)
|
|
30
29
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -45,11 +44,15 @@ export class SlackConnector extends EventEmitter {
|
|
|
45
44
|
messagesIgnored = 0;
|
|
46
45
|
constructor(options) {
|
|
47
46
|
super();
|
|
47
|
+
this.agentName = options.agentName;
|
|
48
|
+
this.sessionManager = options.sessionManager;
|
|
48
49
|
this.botToken = options.botToken;
|
|
49
50
|
this.appToken = options.appToken;
|
|
50
|
-
|
|
51
|
-
this.
|
|
52
|
-
|
|
51
|
+
// Build channels map from array (keyed by channel ID for fast lookup)
|
|
52
|
+
this.channels = new Map();
|
|
53
|
+
for (const channel of options.channels) {
|
|
54
|
+
this.channels.set(channel.id, channel);
|
|
55
|
+
}
|
|
53
56
|
this.logger = options.logger ?? createDefaultSlackLogger();
|
|
54
57
|
}
|
|
55
58
|
// ===========================================================================
|
|
@@ -77,6 +80,10 @@ export class SlackConnector extends EventEmitter {
|
|
|
77
80
|
const authResult = await this.app.client.auth.test();
|
|
78
81
|
this.botUserId = authResult.user_id;
|
|
79
82
|
this.botUsername = authResult.user;
|
|
83
|
+
// Set bot presence to active so it appears online (requires users:write scope)
|
|
84
|
+
await this.app.client.users.setPresence({ presence: "auto" }).catch(() => {
|
|
85
|
+
this.logger.debug("Could not set presence (missing users:write scope)");
|
|
86
|
+
});
|
|
80
87
|
// Initialize command handler with built-in commands
|
|
81
88
|
this.commandHandler = new CommandHandler({ logger: this.logger });
|
|
82
89
|
this.commandHandler.registerCommand(helpCommand);
|
|
@@ -90,28 +97,28 @@ export class SlackConnector extends EventEmitter {
|
|
|
90
97
|
this.logger.info("Connected to Slack", {
|
|
91
98
|
botUserId: this.botUserId,
|
|
92
99
|
botUsername: this.botUsername,
|
|
93
|
-
|
|
100
|
+
agentName: this.agentName,
|
|
101
|
+
channelCount: this.channels.size,
|
|
94
102
|
});
|
|
95
103
|
this.emit("ready", {
|
|
104
|
+
agentName: this.agentName,
|
|
96
105
|
botUser: {
|
|
97
106
|
id: this.botUserId,
|
|
98
107
|
username: this.botUsername ?? "unknown",
|
|
99
108
|
},
|
|
100
109
|
});
|
|
101
110
|
// Clean up expired sessions on startup (matching Discord behavior)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
this.logger.info(`Cleaned ${cleaned} expired session(s) for agent '${agentName}'`);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
catch (cleanupError) {
|
|
110
|
-
this.logger.warn(`Failed to cleanup sessions for agent '${agentName}'`, {
|
|
111
|
-
error: cleanupError instanceof Error ? cleanupError.message : String(cleanupError),
|
|
112
|
-
});
|
|
111
|
+
try {
|
|
112
|
+
const cleaned = await this.sessionManager.cleanupExpiredSessions();
|
|
113
|
+
if (cleaned > 0) {
|
|
114
|
+
this.logger.info(`Cleaned ${cleaned} expired session(s) for agent '${this.agentName}'`);
|
|
113
115
|
}
|
|
114
116
|
}
|
|
117
|
+
catch (cleanupError) {
|
|
118
|
+
this.logger.warn(`Failed to cleanup sessions for agent '${this.agentName}'`, {
|
|
119
|
+
error: cleanupError instanceof Error ? cleanupError.message : String(cleanupError),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
115
122
|
}
|
|
116
123
|
catch (error) {
|
|
117
124
|
this.status = "error";
|
|
@@ -143,7 +150,7 @@ export class SlackConnector extends EventEmitter {
|
|
|
143
150
|
messagesSent: this.messagesSent,
|
|
144
151
|
messagesIgnored: this.messagesIgnored,
|
|
145
152
|
});
|
|
146
|
-
this.emit("disconnect", { reason: "Intentional disconnect" });
|
|
153
|
+
this.emit("disconnect", { agentName: this.agentName, reason: "Intentional disconnect" });
|
|
147
154
|
}
|
|
148
155
|
catch (error) {
|
|
149
156
|
this.status = "error";
|
|
@@ -211,12 +218,11 @@ export class SlackConnector extends EventEmitter {
|
|
|
211
218
|
this.messagesReceived++;
|
|
212
219
|
if (!this.botUserId)
|
|
213
220
|
return;
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
if (!agentName) {
|
|
221
|
+
// Check if this channel is configured for this connector
|
|
222
|
+
if (!this.channels.has(event.channel)) {
|
|
217
223
|
this.messagesIgnored++;
|
|
218
224
|
this.emit("messageIgnored", {
|
|
219
|
-
agentName:
|
|
225
|
+
agentName: this.agentName,
|
|
220
226
|
reason: "not_configured",
|
|
221
227
|
channelId: event.channel,
|
|
222
228
|
messageTs: event.ts,
|
|
@@ -230,7 +236,7 @@ export class SlackConnector extends EventEmitter {
|
|
|
230
236
|
if (!prompt) {
|
|
231
237
|
this.messagesIgnored++;
|
|
232
238
|
this.emit("messageIgnored", {
|
|
233
|
-
agentName,
|
|
239
|
+
agentName: this.agentName,
|
|
234
240
|
reason: "empty_prompt",
|
|
235
241
|
channelId: event.channel,
|
|
236
242
|
messageTs: event.ts,
|
|
@@ -238,10 +244,10 @@ export class SlackConnector extends EventEmitter {
|
|
|
238
244
|
return;
|
|
239
245
|
}
|
|
240
246
|
// Check for prefix commands before processing as a message
|
|
241
|
-
const wasCommand = await this.tryExecuteCommand(prompt,
|
|
247
|
+
const wasCommand = await this.tryExecuteCommand(prompt, event.channel, event.user, say);
|
|
242
248
|
if (wasCommand)
|
|
243
249
|
return;
|
|
244
|
-
const messageEvent = this.buildMessageEvent(
|
|
250
|
+
const messageEvent = this.buildMessageEvent(prompt, event.channel, event.ts, event.user, true, say);
|
|
245
251
|
this.emit("message", messageEvent);
|
|
246
252
|
});
|
|
247
253
|
// Handle all messages — thread replies AND top-level channel messages
|
|
@@ -253,7 +259,7 @@ export class SlackConnector extends EventEmitter {
|
|
|
253
259
|
if (!shouldProcessMessage(event, this.botUserId)) {
|
|
254
260
|
this.messagesIgnored++;
|
|
255
261
|
this.emit("messageIgnored", {
|
|
256
|
-
agentName:
|
|
262
|
+
agentName: this.agentName,
|
|
257
263
|
reason: "bot_message",
|
|
258
264
|
channelId: event.channel,
|
|
259
265
|
messageTs: event.ts,
|
|
@@ -274,43 +280,42 @@ export class SlackConnector extends EventEmitter {
|
|
|
274
280
|
});
|
|
275
281
|
return;
|
|
276
282
|
}
|
|
277
|
-
//
|
|
278
|
-
|
|
279
|
-
if (!resolvedAgent) {
|
|
283
|
+
// Check if this channel is configured for this connector
|
|
284
|
+
if (!this.channels.has(event.channel)) {
|
|
280
285
|
this.messagesIgnored++;
|
|
281
286
|
this.emit("messageIgnored", {
|
|
282
|
-
agentName:
|
|
283
|
-
reason: "
|
|
287
|
+
agentName: this.agentName,
|
|
288
|
+
reason: "not_configured",
|
|
284
289
|
channelId: event.channel,
|
|
285
290
|
messageTs: event.ts,
|
|
286
291
|
});
|
|
287
|
-
this.logger.debug("No
|
|
292
|
+
this.logger.debug("No channel config for message", {
|
|
288
293
|
channel: event.channel,
|
|
289
294
|
});
|
|
290
295
|
return;
|
|
291
296
|
}
|
|
292
297
|
// For top-level messages (no thread_ts), check channel mode
|
|
293
298
|
if (!event.thread_ts) {
|
|
294
|
-
const channelConfig = this.
|
|
299
|
+
const channelConfig = this.channels.get(event.channel);
|
|
295
300
|
const mode = channelConfig?.mode ?? "mention";
|
|
296
301
|
if (mode === "mention") {
|
|
297
302
|
this.messagesIgnored++;
|
|
298
303
|
this.emit("messageIgnored", {
|
|
299
|
-
agentName:
|
|
304
|
+
agentName: this.agentName,
|
|
300
305
|
reason: "not_configured",
|
|
301
306
|
channelId: event.channel,
|
|
302
307
|
messageTs: event.ts,
|
|
303
308
|
});
|
|
304
309
|
this.logger.debug("Ignoring top-level message in mention-mode channel", {
|
|
305
310
|
channel: event.channel,
|
|
306
|
-
agent:
|
|
311
|
+
agent: this.agentName,
|
|
307
312
|
mode,
|
|
308
313
|
});
|
|
309
314
|
return;
|
|
310
315
|
}
|
|
311
316
|
this.logger.debug("Top-level channel message (auto mode)", {
|
|
312
317
|
channel: event.channel,
|
|
313
|
-
agent:
|
|
318
|
+
agent: this.agentName,
|
|
314
319
|
ts: event.ts,
|
|
315
320
|
});
|
|
316
321
|
}
|
|
@@ -318,7 +323,7 @@ export class SlackConnector extends EventEmitter {
|
|
|
318
323
|
if (!prompt) {
|
|
319
324
|
this.messagesIgnored++;
|
|
320
325
|
this.emit("messageIgnored", {
|
|
321
|
-
agentName:
|
|
326
|
+
agentName: this.agentName,
|
|
322
327
|
reason: "empty_prompt",
|
|
323
328
|
channelId: event.channel,
|
|
324
329
|
messageTs: event.ts,
|
|
@@ -326,10 +331,10 @@ export class SlackConnector extends EventEmitter {
|
|
|
326
331
|
return;
|
|
327
332
|
}
|
|
328
333
|
// Check for prefix commands before processing as a message
|
|
329
|
-
const wasCommand = await this.tryExecuteCommand(prompt,
|
|
334
|
+
const wasCommand = await this.tryExecuteCommand(prompt, event.channel, event.user ?? "", say);
|
|
330
335
|
if (wasCommand)
|
|
331
336
|
return;
|
|
332
|
-
const messageEvent = this.buildMessageEvent(
|
|
337
|
+
const messageEvent = this.buildMessageEvent(prompt, event.channel, event.ts, event.user ?? "", false, say);
|
|
333
338
|
this.emit("message", messageEvent);
|
|
334
339
|
});
|
|
335
340
|
}
|
|
@@ -339,35 +344,31 @@ export class SlackConnector extends EventEmitter {
|
|
|
339
344
|
/**
|
|
340
345
|
* Try to execute a prefix command. Returns true if a command was handled.
|
|
341
346
|
*/
|
|
342
|
-
async tryExecuteCommand(prompt,
|
|
347
|
+
async tryExecuteCommand(prompt, channelId, userId,
|
|
343
348
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
344
349
|
say) {
|
|
345
350
|
if (!this.commandHandler || !this.commandHandler.isCommand(prompt)) {
|
|
346
351
|
return false;
|
|
347
352
|
}
|
|
348
|
-
const sessionManager = this.sessionManagers.get(agentName);
|
|
349
|
-
if (!sessionManager) {
|
|
350
|
-
return false;
|
|
351
|
-
}
|
|
352
353
|
const executed = await this.commandHandler.executeCommand(prompt, {
|
|
353
|
-
agentName,
|
|
354
|
+
agentName: this.agentName,
|
|
354
355
|
channelId,
|
|
355
356
|
userId,
|
|
356
357
|
reply: async (content) => {
|
|
357
358
|
await say({ text: content });
|
|
358
359
|
},
|
|
359
|
-
sessionManager,
|
|
360
|
+
sessionManager: this.sessionManager,
|
|
360
361
|
connectorState: this.getState(),
|
|
361
362
|
});
|
|
362
363
|
if (executed) {
|
|
363
364
|
const commandName = prompt.trim().slice(1).split(/\s+/)[0];
|
|
364
365
|
this.logger.info("Command executed", {
|
|
365
366
|
command: commandName,
|
|
366
|
-
agentName,
|
|
367
|
+
agentName: this.agentName,
|
|
367
368
|
channelId,
|
|
368
369
|
});
|
|
369
370
|
this.emit("commandExecuted", {
|
|
370
|
-
agentName,
|
|
371
|
+
agentName: this.agentName,
|
|
371
372
|
commandName,
|
|
372
373
|
userId,
|
|
373
374
|
channelId,
|
|
@@ -378,7 +379,7 @@ export class SlackConnector extends EventEmitter {
|
|
|
378
379
|
// ===========================================================================
|
|
379
380
|
// Message Building
|
|
380
381
|
// ===========================================================================
|
|
381
|
-
buildMessageEvent(
|
|
382
|
+
buildMessageEvent(prompt, channelId, messageTs, userId, wasMentioned,
|
|
382
383
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
383
384
|
say) {
|
|
384
385
|
const reply = async (content) => {
|
|
@@ -416,7 +417,7 @@ export class SlackConnector extends EventEmitter {
|
|
|
416
417
|
};
|
|
417
418
|
};
|
|
418
419
|
return {
|
|
419
|
-
agentName,
|
|
420
|
+
agentName: this.agentName,
|
|
420
421
|
prompt,
|
|
421
422
|
metadata: {
|
|
422
423
|
channelId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-connector.js","sourceRoot":"","sources":["../src/slack-connector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-connector.js","sourceRoot":"","sources":["../src/slack-connector.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* and event definitions.
|
|
6
6
|
*/
|
|
7
7
|
import type { EventEmitter } from "node:events";
|
|
8
|
+
import type { IChatSessionManager } from "@herdctl/chat";
|
|
8
9
|
/**
|
|
9
10
|
* Slack connector connection status
|
|
10
11
|
*/
|
|
@@ -42,29 +43,27 @@ export interface SlackConnectorState {
|
|
|
42
43
|
* Per-channel configuration
|
|
43
44
|
*/
|
|
44
45
|
export interface SlackChannelConfig {
|
|
46
|
+
/** The Slack channel ID */
|
|
47
|
+
id: string;
|
|
45
48
|
/** Channel message mode: "mention" = only @mentions, "auto" = all messages */
|
|
46
|
-
mode
|
|
47
|
-
/** Number of context messages (future use) */
|
|
48
|
-
contextMessages: number;
|
|
49
|
+
mode?: "mention" | "auto";
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
51
52
|
* Options for creating a SlackConnector
|
|
52
53
|
*/
|
|
53
54
|
export interface SlackConnectorOptions {
|
|
55
|
+
/** Name of the agent this connector is bound to */
|
|
56
|
+
agentName: string;
|
|
54
57
|
/** Slack Bot Token (xoxb-...) */
|
|
55
58
|
botToken: string;
|
|
56
59
|
/** Slack App Token for Socket Mode (xapp-...) */
|
|
57
60
|
appToken: string;
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
/** Session managers keyed by agent name */
|
|
63
|
-
sessionManagers: Map<string, ISlackSessionManager>;
|
|
61
|
+
/** Channels this agent listens to */
|
|
62
|
+
channels: SlackChannelConfig[];
|
|
63
|
+
/** Session manager for this agent */
|
|
64
|
+
sessionManager: IChatSessionManager;
|
|
64
65
|
/** Logger for connector operations */
|
|
65
66
|
logger?: SlackConnectorLogger;
|
|
66
|
-
/** State directory for persistence */
|
|
67
|
-
stateDir?: string;
|
|
68
67
|
}
|
|
69
68
|
/**
|
|
70
69
|
* Logger interface for Slack connector operations
|
|
@@ -123,6 +122,10 @@ export interface SlackFileUploadParams {
|
|
|
123
122
|
message?: string;
|
|
124
123
|
}
|
|
125
124
|
export interface ISlackConnector extends EventEmitter {
|
|
125
|
+
/** Name of the agent this connector is bound to */
|
|
126
|
+
readonly agentName: string;
|
|
127
|
+
/** Session manager for this agent */
|
|
128
|
+
readonly sessionManager: IChatSessionManager;
|
|
126
129
|
/** Connect to Slack via Socket Mode */
|
|
127
130
|
connect(): Promise<void>;
|
|
128
131
|
/** Disconnect from Slack */
|
|
@@ -140,27 +143,6 @@ export interface ISlackConnector extends EventEmitter {
|
|
|
140
143
|
once<K extends SlackConnectorEventName>(event: K, listener: (payload: SlackConnectorEventMap[K]) => void): this;
|
|
141
144
|
off<K extends SlackConnectorEventName>(event: K, listener: (payload: SlackConnectorEventMap[K]) => void): this;
|
|
142
145
|
}
|
|
143
|
-
/**
|
|
144
|
-
* Session manager interface for Slack
|
|
145
|
-
*
|
|
146
|
-
* Keyed by channelId (matching Discord's approach).
|
|
147
|
-
*/
|
|
148
|
-
export interface ISlackSessionManager {
|
|
149
|
-
readonly agentName: string;
|
|
150
|
-
getOrCreateSession(channelId: string): Promise<{
|
|
151
|
-
sessionId: string;
|
|
152
|
-
isNew: boolean;
|
|
153
|
-
}>;
|
|
154
|
-
getSession(channelId: string): Promise<{
|
|
155
|
-
sessionId: string;
|
|
156
|
-
lastMessageAt: string;
|
|
157
|
-
} | null>;
|
|
158
|
-
setSession(channelId: string, sessionId: string): Promise<void>;
|
|
159
|
-
touchSession(channelId: string): Promise<void>;
|
|
160
|
-
clearSession(channelId: string): Promise<boolean>;
|
|
161
|
-
cleanupExpiredSessions(): Promise<number>;
|
|
162
|
-
getActiveSessionCount(): Promise<number>;
|
|
163
|
-
}
|
|
164
146
|
/**
|
|
165
147
|
* Strongly-typed event map for SlackConnector
|
|
166
148
|
*
|
|
@@ -169,6 +151,7 @@ export interface ISlackSessionManager {
|
|
|
169
151
|
export interface SlackConnectorEventMap {
|
|
170
152
|
/** Emitted when connection is established and ready */
|
|
171
153
|
ready: {
|
|
154
|
+
agentName: string;
|
|
172
155
|
botUser: {
|
|
173
156
|
id: string;
|
|
174
157
|
username: string;
|
|
@@ -176,10 +159,12 @@ export interface SlackConnectorEventMap {
|
|
|
176
159
|
};
|
|
177
160
|
/** Emitted when connection is lost */
|
|
178
161
|
disconnect: {
|
|
162
|
+
agentName: string;
|
|
179
163
|
reason: string;
|
|
180
164
|
};
|
|
181
165
|
/** Emitted on connection error */
|
|
182
166
|
error: {
|
|
167
|
+
agentName: string;
|
|
183
168
|
error: Error;
|
|
184
169
|
};
|
|
185
170
|
/** Emitted when a processable message is received */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herdctl/slack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "Slack connector for herdctl fleet management",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"slackify-markdown": "^5.0.0",
|
|
16
16
|
"yaml": "^2.3.0",
|
|
17
17
|
"zod": "^3.22.0",
|
|
18
|
-
"@herdctl/
|
|
18
|
+
"@herdctl/chat": "0.2.0",
|
|
19
|
+
"@herdctl/core": "5.0.0"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|
|
21
22
|
"@vitest/coverage-v8": "^4.0.17",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/session-manager.test.ts"],"names":[],"mappings":""}
|