@herdctl/slack 0.3.0 → 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.
Files changed (59) hide show
  1. package/dist/__tests__/command-handler.test.js +1 -0
  2. package/dist/__tests__/command-handler.test.js.map +1 -1
  3. package/dist/__tests__/error-handler.test.js +25 -25
  4. package/dist/__tests__/error-handler.test.js.map +1 -1
  5. package/dist/__tests__/formatting.test.js +9 -9
  6. package/dist/__tests__/formatting.test.js.map +1 -1
  7. package/dist/__tests__/manager.test.d.ts +8 -0
  8. package/dist/__tests__/manager.test.d.ts.map +1 -0
  9. package/dist/__tests__/manager.test.js +278 -0
  10. package/dist/__tests__/manager.test.js.map +1 -0
  11. package/dist/__tests__/slack-connector.test.js +1 -0
  12. package/dist/__tests__/slack-connector.test.js.map +1 -1
  13. package/dist/commands/command-handler.d.ts +3 -3
  14. package/dist/commands/command-handler.d.ts.map +1 -1
  15. package/dist/commands/status.d.ts.map +1 -1
  16. package/dist/commands/status.js +1 -54
  17. package/dist/commands/status.js.map +1 -1
  18. package/dist/error-handler.d.ts +12 -33
  19. package/dist/error-handler.d.ts.map +1 -1
  20. package/dist/error-handler.js +32 -57
  21. package/dist/error-handler.js.map +1 -1
  22. package/dist/formatting.d.ts +4 -45
  23. package/dist/formatting.d.ts.map +1 -1
  24. package/dist/formatting.js +10 -96
  25. package/dist/formatting.js.map +1 -1
  26. package/dist/index.d.ts +7 -8
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +15 -11
  29. package/dist/index.js.map +1 -1
  30. package/dist/manager.d.ts +156 -0
  31. package/dist/manager.d.ts.map +1 -0
  32. package/dist/manager.js +531 -0
  33. package/dist/manager.js.map +1 -0
  34. package/dist/slack-connector.d.ts +3 -2
  35. package/dist/slack-connector.d.ts.map +1 -1
  36. package/dist/slack-connector.js.map +1 -1
  37. package/dist/types.d.ts +3 -23
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +3 -2
  40. package/dist/__tests__/session-manager.test.d.ts +0 -2
  41. package/dist/__tests__/session-manager.test.d.ts.map +0 -1
  42. package/dist/__tests__/session-manager.test.js +0 -214
  43. package/dist/__tests__/session-manager.test.js.map +0 -1
  44. package/dist/session-manager/errors.d.ts +0 -58
  45. package/dist/session-manager/errors.d.ts.map +0 -1
  46. package/dist/session-manager/errors.js +0 -70
  47. package/dist/session-manager/errors.js.map +0 -1
  48. package/dist/session-manager/index.d.ts +0 -9
  49. package/dist/session-manager/index.d.ts.map +0 -1
  50. package/dist/session-manager/index.js +0 -13
  51. package/dist/session-manager/index.js.map +0 -1
  52. package/dist/session-manager/session-manager.d.ts +0 -62
  53. package/dist/session-manager/session-manager.d.ts.map +0 -1
  54. package/dist/session-manager/session-manager.js +0 -320
  55. package/dist/session-manager/session-manager.js.map +0 -1
  56. package/dist/session-manager/types.d.ts +0 -154
  57. package/dist/session-manager/types.d.ts.map +0 -1
  58. package/dist/session-manager/types.js +0 -57
  59. package/dist/session-manager/types.js.map +0 -1
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
  */
@@ -60,7 +61,7 @@ export interface SlackConnectorOptions {
60
61
  /** Channels this agent listens to */
61
62
  channels: SlackChannelConfig[];
62
63
  /** Session manager for this agent */
63
- sessionManager: ISlackSessionManager;
64
+ sessionManager: IChatSessionManager;
64
65
  /** Logger for connector operations */
65
66
  logger?: SlackConnectorLogger;
66
67
  }
@@ -124,7 +125,7 @@ export interface ISlackConnector extends EventEmitter {
124
125
  /** Name of the agent this connector is bound to */
125
126
  readonly agentName: string;
126
127
  /** Session manager for this agent */
127
- readonly sessionManager: ISlackSessionManager;
128
+ readonly sessionManager: IChatSessionManager;
128
129
  /** Connect to Slack via Socket Mode */
129
130
  connect(): Promise<void>;
130
131
  /** Disconnect from Slack */
@@ -142,27 +143,6 @@ export interface ISlackConnector extends EventEmitter {
142
143
  once<K extends SlackConnectorEventName>(event: K, listener: (payload: SlackConnectorEventMap[K]) => void): this;
143
144
  off<K extends SlackConnectorEventName>(event: K, listener: (payload: SlackConnectorEventMap[K]) => void): this;
144
145
  }
145
- /**
146
- * Session manager interface for Slack
147
- *
148
- * Keyed by channelId (matching Discord's approach).
149
- */
150
- export interface ISlackSessionManager {
151
- readonly agentName: string;
152
- getOrCreateSession(channelId: string): Promise<{
153
- sessionId: string;
154
- isNew: boolean;
155
- }>;
156
- getSession(channelId: string): Promise<{
157
- sessionId: string;
158
- lastMessageAt: string;
159
- } | null>;
160
- setSession(channelId: string, sessionId: string): Promise<void>;
161
- touchSession(channelId: string): Promise<void>;
162
- clearSession(channelId: string): Promise<boolean>;
163
- cleanupExpiredSessions(): Promise<number>;
164
- getActiveSessionCount(): Promise<number>;
165
- }
166
146
  /**
167
147
  * Strongly-typed event map for SlackConnector
168
148
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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.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/core": "4.2.0"
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=session-manager.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/session-manager.test.ts"],"names":[],"mappings":""}
@@ -1,214 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
- import { mkdtemp, rm, readFile } from "node:fs/promises";
3
- import { join } from "node:path";
4
- import { tmpdir } from "node:os";
5
- import { SessionManager } from "../session-manager/session-manager.js";
6
- import { createInitialSessionState, createChannelSession, } from "../session-manager/types.js";
7
- import { SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, SessionErrorCode, } from "../session-manager/errors.js";
8
- const createMockLogger = () => ({
9
- debug: vi.fn(),
10
- info: vi.fn(),
11
- warn: vi.fn(),
12
- error: vi.fn(),
13
- });
14
- describe("SessionManager", () => {
15
- let tempDir;
16
- beforeEach(async () => {
17
- tempDir = await mkdtemp(join(tmpdir(), "slack-session-test-"));
18
- });
19
- afterEach(async () => {
20
- await rm(tempDir, { recursive: true, force: true });
21
- });
22
- const createManager = (agentName = "test-agent", expiryHours = 24) => {
23
- return new SessionManager({
24
- agentName,
25
- stateDir: tempDir,
26
- sessionExpiryHours: expiryHours,
27
- logger: createMockLogger(),
28
- });
29
- };
30
- describe("getOrCreateSession", () => {
31
- it("creates a new session for unknown channel", async () => {
32
- const manager = createManager();
33
- const result = await manager.getOrCreateSession("C0123456789");
34
- expect(result.isNew).toBe(true);
35
- expect(result.sessionId).toMatch(/^slack-test-agent-/);
36
- });
37
- it("returns existing session for known channel", async () => {
38
- const manager = createManager();
39
- const first = await manager.getOrCreateSession("C0123456789");
40
- const second = await manager.getOrCreateSession("C0123456789");
41
- expect(second.isNew).toBe(false);
42
- expect(second.sessionId).toBe(first.sessionId);
43
- });
44
- it("creates different sessions for different channels", async () => {
45
- const manager = createManager();
46
- const first = await manager.getOrCreateSession("C0123456789");
47
- const second = await manager.getOrCreateSession("C9876543210");
48
- expect(first.sessionId).not.toBe(second.sessionId);
49
- });
50
- });
51
- describe("getSession", () => {
52
- it("returns null for unknown channel", async () => {
53
- const manager = createManager();
54
- const session = await manager.getSession("C_UNKNOWN");
55
- expect(session).toBeNull();
56
- });
57
- it("returns session for known channel", async () => {
58
- const manager = createManager();
59
- await manager.getOrCreateSession("C0123456789");
60
- const session = await manager.getSession("C0123456789");
61
- expect(session).not.toBeNull();
62
- expect(session.sessionId).toMatch(/^slack-test-agent-/);
63
- });
64
- it("returns null for expired sessions", async () => {
65
- // 0 hours expiry = immediately expired
66
- const manager = createManager("test-agent", 0);
67
- await manager.getOrCreateSession("C0123456789");
68
- // Wait a tick so the session is expired
69
- await new Promise((resolve) => setTimeout(resolve, 10));
70
- const session = await manager.getSession("C0123456789");
71
- expect(session).toBeNull();
72
- });
73
- });
74
- describe("touchSession", () => {
75
- it("updates last message timestamp", async () => {
76
- const manager = createManager();
77
- await manager.getOrCreateSession("C0123456789");
78
- const before = await manager.getSession("C0123456789");
79
- const beforeTime = new Date(before.lastMessageAt).getTime();
80
- // Wait enough for a distinct timestamp
81
- await new Promise((resolve) => setTimeout(resolve, 50));
82
- await manager.touchSession("C0123456789");
83
- const after = await manager.getSession("C0123456789");
84
- const afterTime = new Date(after.lastMessageAt).getTime();
85
- expect(afterTime).toBeGreaterThanOrEqual(beforeTime);
86
- });
87
- it("does not throw for unknown channel", async () => {
88
- const manager = createManager();
89
- await expect(manager.touchSession("C_UNKNOWN")).resolves.toBeUndefined();
90
- });
91
- });
92
- describe("setSession", () => {
93
- it("creates or updates a session", async () => {
94
- const manager = createManager();
95
- await manager.setSession("C0123456789", "custom-session-id");
96
- const session = await manager.getSession("C0123456789");
97
- expect(session).not.toBeNull();
98
- expect(session.sessionId).toBe("custom-session-id");
99
- });
100
- it("overwrites existing session", async () => {
101
- const manager = createManager();
102
- await manager.getOrCreateSession("C0123456789");
103
- await manager.setSession("C0123456789", "new-session-id");
104
- const session = await manager.getSession("C0123456789");
105
- expect(session.sessionId).toBe("new-session-id");
106
- });
107
- });
108
- describe("clearSession", () => {
109
- it("removes a session and returns true", async () => {
110
- const manager = createManager();
111
- await manager.getOrCreateSession("C0123456789");
112
- const result = await manager.clearSession("C0123456789");
113
- expect(result).toBe(true);
114
- const session = await manager.getSession("C0123456789");
115
- expect(session).toBeNull();
116
- });
117
- it("returns false for unknown channel", async () => {
118
- const manager = createManager();
119
- const result = await manager.clearSession("C_UNKNOWN");
120
- expect(result).toBe(false);
121
- });
122
- });
123
- describe("cleanupExpiredSessions", () => {
124
- it("removes expired sessions", async () => {
125
- const manager = createManager("test-agent", 0);
126
- await manager.getOrCreateSession("C001");
127
- await manager.getOrCreateSession("C002");
128
- await new Promise((resolve) => setTimeout(resolve, 10));
129
- const count = await manager.cleanupExpiredSessions();
130
- expect(count).toBe(2);
131
- });
132
- it("keeps active sessions", async () => {
133
- const manager = createManager("test-agent", 24);
134
- await manager.getOrCreateSession("C001");
135
- const count = await manager.cleanupExpiredSessions();
136
- expect(count).toBe(0);
137
- });
138
- });
139
- describe("getActiveSessionCount", () => {
140
- it("returns 0 when no sessions", async () => {
141
- const manager = createManager();
142
- expect(await manager.getActiveSessionCount()).toBe(0);
143
- });
144
- it("counts active sessions", async () => {
145
- const manager = createManager();
146
- await manager.getOrCreateSession("C001");
147
- await manager.getOrCreateSession("C002");
148
- expect(await manager.getActiveSessionCount()).toBe(2);
149
- });
150
- });
151
- describe("persistence", () => {
152
- it("persists state to YAML file", async () => {
153
- const manager = createManager();
154
- await manager.getOrCreateSession("C0123456789");
155
- const filePath = join(tempDir, "slack-sessions", "test-agent.yaml");
156
- const content = await readFile(filePath, "utf-8");
157
- expect(content).toContain("version: 2");
158
- expect(content).toContain("agentName: test-agent");
159
- expect(content).toContain("C0123456789");
160
- });
161
- it("survives recreation with same state dir", async () => {
162
- const manager1 = createManager();
163
- const result1 = await manager1.getOrCreateSession("C0123456789");
164
- // Create new manager pointing to same dir
165
- const manager2 = createManager();
166
- const result2 = await manager2.getOrCreateSession("C0123456789");
167
- expect(result2.isNew).toBe(false);
168
- expect(result2.sessionId).toBe(result1.sessionId);
169
- });
170
- });
171
- });
172
- describe("Session manager types", () => {
173
- describe("createInitialSessionState", () => {
174
- it("creates state with empty channels", () => {
175
- const state = createInitialSessionState("my-agent");
176
- expect(state.version).toBe(2);
177
- expect(state.agentName).toBe("my-agent");
178
- expect(state.channels).toEqual({});
179
- });
180
- });
181
- describe("createChannelSession", () => {
182
- it("creates channel session", () => {
183
- const session = createChannelSession("session-123");
184
- expect(session.sessionId).toBe("session-123");
185
- expect(session.lastMessageAt).toBeDefined();
186
- });
187
- });
188
- });
189
- describe("Session manager errors", () => {
190
- it("SessionManagerError has correct properties", () => {
191
- const error = new SessionManagerError("test error", SessionErrorCode.STATE_READ_FAILED, "test-agent");
192
- expect(error.message).toBe("test error");
193
- expect(error.code).toBe(SessionErrorCode.STATE_READ_FAILED);
194
- expect(error.agentName).toBe("test-agent");
195
- expect(error.name).toBe("SessionManagerError");
196
- });
197
- it("SessionStateReadError has formatted message", () => {
198
- const error = new SessionStateReadError("test-agent", "/path/to/state");
199
- expect(error.message).toContain("test-agent");
200
- expect(error.message).toContain("/path/to/state");
201
- expect(error.code).toBe(SessionErrorCode.STATE_READ_FAILED);
202
- });
203
- it("SessionStateWriteError has formatted message", () => {
204
- const error = new SessionStateWriteError("test-agent", "/path/to/state");
205
- expect(error.message).toContain("test-agent");
206
- expect(error.code).toBe(SessionErrorCode.STATE_WRITE_FAILED);
207
- });
208
- it("SessionDirectoryCreateError has formatted message", () => {
209
- const error = new SessionDirectoryCreateError("test-agent", "/path/to/dir");
210
- expect(error.message).toContain("test-agent");
211
- expect(error.code).toBe(SessionErrorCode.DIRECTORY_CREATE_FAILED);
212
- });
213
- });
214
- //# sourceMappingURL=session-manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager.test.js","sourceRoot":"","sources":["../../src/__tests__/session-manager.test.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Error classes for Slack session management
3
- *
4
- * Provides typed errors for session persistence and retrieval failures.
5
- */
6
- /**
7
- * Error codes for session manager operations
8
- */
9
- export declare enum SessionErrorCode {
10
- STATE_READ_FAILED = "SESSION_STATE_READ_FAILED",
11
- STATE_WRITE_FAILED = "SESSION_STATE_WRITE_FAILED",
12
- DIRECTORY_CREATE_FAILED = "SESSION_DIRECTORY_CREATE_FAILED",
13
- SESSION_NOT_FOUND = "SESSION_NOT_FOUND",
14
- SESSION_EXPIRED = "SESSION_EXPIRED",
15
- INVALID_STATE = "SESSION_INVALID_STATE"
16
- }
17
- /**
18
- * Base error class for session manager operations
19
- */
20
- export declare class SessionManagerError extends Error {
21
- readonly code: SessionErrorCode;
22
- readonly agentName: string;
23
- constructor(message: string, code: SessionErrorCode, agentName: string, options?: {
24
- cause?: Error;
25
- });
26
- }
27
- /**
28
- * Error thrown when session state file cannot be read
29
- */
30
- export declare class SessionStateReadError extends SessionManagerError {
31
- readonly path: string;
32
- constructor(agentName: string, path: string, options?: {
33
- cause?: Error;
34
- });
35
- }
36
- /**
37
- * Error thrown when session state file cannot be written
38
- */
39
- export declare class SessionStateWriteError extends SessionManagerError {
40
- readonly path: string;
41
- constructor(agentName: string, path: string, options?: {
42
- cause?: Error;
43
- });
44
- }
45
- /**
46
- * Error thrown when session directory cannot be created
47
- */
48
- export declare class SessionDirectoryCreateError extends SessionManagerError {
49
- readonly path: string;
50
- constructor(agentName: string, path: string, options?: {
51
- cause?: Error;
52
- });
53
- }
54
- /**
55
- * Type guard to check if an error is a SessionManagerError
56
- */
57
- export declare function isSessionManagerError(error: unknown): error is SessionManagerError;
58
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/session-manager/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,iBAAiB,8BAA8B;IAC/C,kBAAkB,+BAA+B;IACjD,uBAAuB,oCAAoC;IAC3D,iBAAiB,sBAAsB;IACvC,eAAe,oBAAoB;IACnC,aAAa,0BAA0B;CACxC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,SAAgB,IAAI,EAAE,gBAAgB,CAAC;IACvC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAGhC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAO9B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,mBAAmB;IAC5D,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAG3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAW9B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC7D,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAG3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAW9B;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,mBAAmB;IAClE,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAG3B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAW9B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,mBAAmB,CAE9B"}
@@ -1,70 +0,0 @@
1
- /**
2
- * Error classes for Slack session management
3
- *
4
- * Provides typed errors for session persistence and retrieval failures.
5
- */
6
- /**
7
- * Error codes for session manager operations
8
- */
9
- export var SessionErrorCode;
10
- (function (SessionErrorCode) {
11
- SessionErrorCode["STATE_READ_FAILED"] = "SESSION_STATE_READ_FAILED";
12
- SessionErrorCode["STATE_WRITE_FAILED"] = "SESSION_STATE_WRITE_FAILED";
13
- SessionErrorCode["DIRECTORY_CREATE_FAILED"] = "SESSION_DIRECTORY_CREATE_FAILED";
14
- SessionErrorCode["SESSION_NOT_FOUND"] = "SESSION_NOT_FOUND";
15
- SessionErrorCode["SESSION_EXPIRED"] = "SESSION_EXPIRED";
16
- SessionErrorCode["INVALID_STATE"] = "SESSION_INVALID_STATE";
17
- })(SessionErrorCode || (SessionErrorCode = {}));
18
- /**
19
- * Base error class for session manager operations
20
- */
21
- export class SessionManagerError extends Error {
22
- code;
23
- agentName;
24
- constructor(message, code, agentName, options) {
25
- super(message, options);
26
- this.name = "SessionManagerError";
27
- this.code = code;
28
- this.agentName = agentName;
29
- }
30
- }
31
- /**
32
- * Error thrown when session state file cannot be read
33
- */
34
- export class SessionStateReadError extends SessionManagerError {
35
- path;
36
- constructor(agentName, path, options) {
37
- super(`Failed to read session state for agent '${agentName}' from '${path}'`, SessionErrorCode.STATE_READ_FAILED, agentName, options);
38
- this.name = "SessionStateReadError";
39
- this.path = path;
40
- }
41
- }
42
- /**
43
- * Error thrown when session state file cannot be written
44
- */
45
- export class SessionStateWriteError extends SessionManagerError {
46
- path;
47
- constructor(agentName, path, options) {
48
- super(`Failed to write session state for agent '${agentName}' to '${path}'`, SessionErrorCode.STATE_WRITE_FAILED, agentName, options);
49
- this.name = "SessionStateWriteError";
50
- this.path = path;
51
- }
52
- }
53
- /**
54
- * Error thrown when session directory cannot be created
55
- */
56
- export class SessionDirectoryCreateError extends SessionManagerError {
57
- path;
58
- constructor(agentName, path, options) {
59
- super(`Failed to create session directory for agent '${agentName}' at '${path}'`, SessionErrorCode.DIRECTORY_CREATE_FAILED, agentName, options);
60
- this.name = "SessionDirectoryCreateError";
61
- this.path = path;
62
- }
63
- }
64
- /**
65
- * Type guard to check if an error is a SessionManagerError
66
- */
67
- export function isSessionManagerError(error) {
68
- return error instanceof SessionManagerError;
69
- }
70
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/session-manager/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mEAA+C,CAAA;IAC/C,qEAAiD,CAAA;IACjD,+EAA2D,CAAA;IAC3D,2DAAuC,CAAA;IACvC,uDAAmC,CAAA;IACnC,2DAAuC,CAAA;AACzC,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5B,IAAI,CAAmB;IACvB,SAAS,CAAS;IAElC,YACE,OAAe,EACf,IAAsB,EACtB,SAAiB,EACjB,OAA2B;QAE3B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAC5C,IAAI,CAAS;IAE7B,YACE,SAAiB,EACjB,IAAY,EACZ,OAA2B;QAE3B,KAAK,CACH,2CAA2C,SAAS,WAAW,IAAI,GAAG,EACtE,gBAAgB,CAAC,iBAAiB,EAClC,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7C,IAAI,CAAS;IAE7B,YACE,SAAiB,EACjB,IAAY,EACZ,OAA2B;QAE3B,KAAK,CACH,4CAA4C,SAAS,SAAS,IAAI,GAAG,EACrE,gBAAgB,CAAC,kBAAkB,EACnC,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,mBAAmB;IAClD,IAAI,CAAS;IAE7B,YACE,SAAiB,EACjB,IAAY,EACZ,OAA2B;QAE3B,KAAK,CACH,iDAAiD,SAAS,SAAS,IAAI,GAAG,EAC1E,gBAAgB,CAAC,uBAAuB,EACxC,SAAS,EACT,OAAO,CACR,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAc;IAEd,OAAO,KAAK,YAAY,mBAAmB,CAAC;AAC9C,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Session manager module for Slack
3
- *
4
- * Provides per-channel session management for Claude conversations.
5
- */
6
- export { SessionManager } from "./session-manager.js";
7
- export { ChannelSessionSchema, SlackSessionStateSchema, type ChannelSession, type SlackSessionState, type SessionManagerLogger, type SessionManagerOptions, type SessionResult, type ISessionManager, createInitialSessionState, createChannelSession, } from "./types.js";
8
- export { SessionErrorCode, SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, isSessionManagerError, } from "./errors.js";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session-manager/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAEL,oBAAoB,EACpB,uBAAuB,EAEvB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,eAAe,EAEpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Session manager module for Slack
3
- *
4
- * Provides per-channel session management for Claude conversations.
5
- */
6
- export { SessionManager } from "./session-manager.js";
7
- export {
8
- // Schemas
9
- ChannelSessionSchema, SlackSessionStateSchema,
10
- // Factory functions
11
- createInitialSessionState, createChannelSession, } from "./types.js";
12
- export { SessionErrorCode, SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, isSessionManagerError, } from "./errors.js";
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session-manager/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO;AACL,UAAU;AACV,oBAAoB,EACpB,uBAAuB;AAQvB,oBAAoB;AACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Session manager for Slack channel conversations
3
- *
4
- * Provides per-channel session management for Claude conversations,
5
- * enabling conversation context preservation across Slack channels.
6
- *
7
- * Sessions are stored at .herdctl/slack-sessions/<agent-name>.yaml
8
- */
9
- import { type SessionManagerOptions, type ISessionManager, type SessionResult, type ChannelSession } from "./types.js";
10
- /**
11
- * SessionManager manages per-channel Claude sessions for a Slack agent.
12
- *
13
- * Each agent has its own SessionManager instance, storing session mappings
14
- * in a YAML file at .herdctl/slack-sessions/<agent-name>.yaml
15
- *
16
- * Sessions are keyed by channelId (matching Discord's approach).
17
- */
18
- export declare class SessionManager implements ISessionManager {
19
- readonly agentName: string;
20
- private readonly stateDir;
21
- private readonly sessionExpiryHours;
22
- private readonly logger;
23
- private readonly stateFilePath;
24
- private state;
25
- constructor(options: SessionManagerOptions);
26
- /**
27
- * Get or create a session for a channel
28
- */
29
- getOrCreateSession(channelId: string): Promise<SessionResult>;
30
- /**
31
- * Update the last message timestamp for a session
32
- */
33
- touchSession(channelId: string): Promise<void>;
34
- /**
35
- * Get an existing session without creating one
36
- */
37
- getSession(channelId: string): Promise<ChannelSession | null>;
38
- /**
39
- * Store or update the session ID for a channel
40
- */
41
- setSession(channelId: string, sessionId: string): Promise<void>;
42
- /**
43
- * Clear a specific session
44
- */
45
- clearSession(channelId: string): Promise<boolean>;
46
- /**
47
- * Clean up all expired sessions
48
- */
49
- cleanupExpiredSessions(): Promise<number>;
50
- /**
51
- * Get the count of active (non-expired) sessions
52
- */
53
- getActiveSessionCount(): Promise<number>;
54
- private generateSessionId;
55
- private isSessionExpired;
56
- private loadState;
57
- private saveState;
58
- private ensureDirectoryExists;
59
- private generateTempPath;
60
- private renameWithRetry;
61
- }
62
- //# sourceMappingURL=session-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EAIpB,MAAM,YAAY,CAAC;AAmBpB;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAGvC,OAAO,CAAC,KAAK,CAAkC;gBAEnC,OAAO,EAAE,qBAAqB;IAmB1C;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAkCnE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpD;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAsBnE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAevD;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IA0B/C;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB9C,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;YAOV,SAAS;YAkDT,SAAS;YAwBT,qBAAqB;IAcnC,OAAO,CAAC,gBAAgB;YAOV,eAAe;CA6B9B"}