@teneo-protocol/sdk 1.0.1 → 2.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 (153) hide show
  1. package/.github/workflows/publish-npm.yml +8 -6
  2. package/CHANGELOG.md +265 -0
  3. package/README.md +406 -53
  4. package/dist/core/websocket-client.d.ts +12 -0
  5. package/dist/core/websocket-client.d.ts.map +1 -1
  6. package/dist/core/websocket-client.js +22 -2
  7. package/dist/core/websocket-client.js.map +1 -1
  8. package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts +76 -0
  9. package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -0
  10. package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +70 -0
  11. package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -0
  12. package/dist/handlers/message-handlers/agent-selected-handler.d.ts +92 -38
  13. package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -1
  14. package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +904 -0
  15. package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -0
  16. package/dist/handlers/message-handlers/agent-status-update-handler.js +51 -0
  17. package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -0
  18. package/dist/handlers/message-handlers/auth-error-handler.d.ts +45 -31
  19. package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -1
  20. package/dist/handlers/message-handlers/auth-message-handler.d.ts +6 -0
  21. package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
  22. package/dist/handlers/message-handlers/auth-message-handler.js +65 -5
  23. package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
  24. package/dist/handlers/message-handlers/auth-required-handler.d.ts +49 -31
  25. package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -1
  26. package/dist/handlers/message-handlers/auth-success-handler.d.ts +6 -0
  27. package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
  28. package/dist/handlers/message-handlers/auth-success-handler.js +46 -4
  29. package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
  30. package/dist/handlers/message-handlers/challenge-handler.d.ts +45 -31
  31. package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -1
  32. package/dist/handlers/message-handlers/error-message-handler.d.ts +49 -31
  33. package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -1
  34. package/dist/handlers/message-handlers/index.d.ts +5 -0
  35. package/dist/handlers/message-handlers/index.d.ts.map +1 -1
  36. package/dist/handlers/message-handlers/index.js +23 -1
  37. package/dist/handlers/message-handlers/index.js.map +1 -1
  38. package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +877 -0
  39. package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -0
  40. package/dist/handlers/message-handlers/list-available-agents-handler.js +38 -0
  41. package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -0
  42. package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +886 -0
  43. package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -0
  44. package/dist/handlers/message-handlers/list-room-agents-handler.js +51 -0
  45. package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -0
  46. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +178 -89
  47. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
  48. package/dist/handlers/message-handlers/ping-pong-handler.d.ts +62 -58
  49. package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -1
  50. package/dist/handlers/message-handlers/regular-message-handler.d.ts +31 -29
  51. package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
  52. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts +328 -0
  53. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -0
  54. package/dist/handlers/message-handlers/room-operation-response-handler.js +92 -0
  55. package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -0
  56. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +53 -31
  57. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
  58. package/dist/handlers/message-handlers/types.d.ts +2 -0
  59. package/dist/handlers/message-handlers/types.d.ts.map +1 -1
  60. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +53 -31
  61. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
  62. package/dist/managers/agent-room-manager.d.ts +222 -0
  63. package/dist/managers/agent-room-manager.d.ts.map +1 -0
  64. package/dist/managers/agent-room-manager.js +508 -0
  65. package/dist/managers/agent-room-manager.js.map +1 -0
  66. package/dist/managers/index.d.ts +2 -0
  67. package/dist/managers/index.d.ts.map +1 -1
  68. package/dist/managers/index.js +5 -1
  69. package/dist/managers/index.js.map +1 -1
  70. package/dist/managers/room-management-manager.d.ts +213 -0
  71. package/dist/managers/room-management-manager.d.ts.map +1 -0
  72. package/dist/managers/room-management-manager.js +440 -0
  73. package/dist/managers/room-management-manager.js.map +1 -0
  74. package/dist/managers/room-manager.d.ts +4 -4
  75. package/dist/managers/room-manager.d.ts.map +1 -1
  76. package/dist/managers/room-manager.js.map +1 -1
  77. package/dist/teneo-sdk.d.ts +333 -13
  78. package/dist/teneo-sdk.d.ts.map +1 -1
  79. package/dist/teneo-sdk.js +468 -1
  80. package/dist/teneo-sdk.js.map +1 -1
  81. package/dist/types/config.d.ts +63 -54
  82. package/dist/types/config.d.ts.map +1 -1
  83. package/dist/types/config.js +8 -4
  84. package/dist/types/config.js.map +1 -1
  85. package/dist/types/error-codes.d.ts +2 -0
  86. package/dist/types/error-codes.d.ts.map +1 -1
  87. package/dist/types/error-codes.js +3 -0
  88. package/dist/types/error-codes.js.map +1 -1
  89. package/dist/types/events.d.ts +132 -68
  90. package/dist/types/events.d.ts.map +1 -1
  91. package/dist/types/events.js.map +1 -1
  92. package/dist/types/index.d.ts +1 -1
  93. package/dist/types/index.d.ts.map +1 -1
  94. package/dist/types/index.js +27 -2
  95. package/dist/types/index.js.map +1 -1
  96. package/dist/types/messages.d.ts +11396 -2559
  97. package/dist/types/messages.d.ts.map +1 -1
  98. package/dist/types/messages.js +294 -27
  99. package/dist/types/messages.js.map +1 -1
  100. package/examples/.env.example +1 -1
  101. package/examples/agent-room-management-example.ts +334 -0
  102. package/examples/claude-agent-x-follower/.env.example +2 -2
  103. package/examples/claude-agent-x-follower/QUICKSTART.md +1 -1
  104. package/examples/claude-agent-x-follower/README.md +1 -1
  105. package/examples/n8n-teneo/.env.example +2 -2
  106. package/examples/n8n-teneo/README.md +1 -1
  107. package/examples/openai-teneo/.env.example +2 -2
  108. package/examples/openai-teneo/README.md +1 -1
  109. package/examples/production-dashboard/.env.example +2 -2
  110. package/examples/production-dashboard/README.md +89 -12
  111. package/examples/production-dashboard/public/dashboard.html +1173 -601
  112. package/examples/production-dashboard/server.ts +347 -5
  113. package/examples/room-management-example.ts +285 -0
  114. package/examples/usage/.env.example +1 -1
  115. package/examples/usage/01-connect.ts +1 -1
  116. package/examples/usage/02-list-agents.ts +1 -1
  117. package/examples/usage/03-pick-agent.ts +1 -1
  118. package/examples/usage/04-find-by-capability.ts +1 -1
  119. package/examples/usage/05-webhook-example.ts +1 -1
  120. package/examples/usage/06-simple-api-server.ts +1 -1
  121. package/examples/usage/07-event-listener.ts +1 -1
  122. package/examples/usage/README.md +1 -1
  123. package/package.json +9 -1
  124. package/src/core/websocket-client.ts +26 -2
  125. package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +83 -0
  126. package/src/handlers/message-handlers/agent-status-update-handler.ts +58 -0
  127. package/src/handlers/message-handlers/auth-message-handler.ts +73 -5
  128. package/src/handlers/message-handlers/auth-success-handler.ts +58 -6
  129. package/src/handlers/message-handlers/index.ts +19 -0
  130. package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
  131. package/src/handlers/message-handlers/list-room-agents-handler.ts +61 -0
  132. package/src/handlers/message-handlers/room-operation-response-handler.ts +105 -0
  133. package/src/handlers/message-handlers/types.ts +6 -0
  134. package/src/managers/agent-room-manager.ts +609 -0
  135. package/src/managers/index.ts +2 -0
  136. package/src/managers/room-management-manager.ts +523 -0
  137. package/src/managers/room-manager.ts +4 -5
  138. package/src/teneo-sdk.ts +505 -4
  139. package/src/types/config.ts +10 -5
  140. package/src/types/error-codes.ts +4 -0
  141. package/src/types/events.ts +24 -0
  142. package/src/types/index.ts +55 -0
  143. package/src/types/messages.ts +374 -41
  144. package/tests/integration/room-management.test.ts +514 -0
  145. package/tests/integration/websocket.test.ts +1 -1
  146. package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +394 -0
  147. package/tests/unit/handlers/agent-status-update-handler.test.ts +407 -0
  148. package/tests/unit/handlers/auth-success-handler-rooms.test.ts +699 -0
  149. package/tests/unit/handlers/list-available-agents-handler.test.ts +256 -0
  150. package/tests/unit/handlers/list-room-agents-handler.test.ts +294 -0
  151. package/tests/unit/handlers/room-operation-response-handler.test.ts +527 -0
  152. package/tests/unit/managers/agent-room-manager.test.ts +534 -0
  153. package/tests/unit/managers/room-management-manager.test.ts +438 -0
@@ -0,0 +1,508 @@
1
+ "use strict";
2
+ /**
3
+ * AgentRoomManager - Manages agent-room associations (v2.0.0)
4
+ * Allows room owners to control which agents are available in their rooms
5
+ * Implements caching with 5-minute TTL for performance
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AgentRoomManager = void 0;
9
+ const eventemitter3_1 = require("eventemitter3");
10
+ const events_1 = require("../types/events");
11
+ const error_codes_1 = require("../types/error-codes");
12
+ // Cache TTL: 5 minutes
13
+ const CACHE_TTL_MS = 5 * 60 * 1000;
14
+ class AgentRoomManager extends eventemitter3_1.EventEmitter {
15
+ constructor(wsClient, logger, roomManagementManager) {
16
+ super();
17
+ // Caches with TTL
18
+ this.roomAgentsCache = new Map();
19
+ this.availableAgentsCache = new Map();
20
+ this.roomAgentsCacheTime = new Map();
21
+ this.availableAgentsCacheTime = new Map();
22
+ this.wsClient = wsClient;
23
+ this.logger = logger;
24
+ this.roomManagementManager = roomManagementManager;
25
+ }
26
+ // ============================================================================
27
+ // AGENT ROOM OPERATIONS
28
+ // ============================================================================
29
+ /**
30
+ * Adds an agent to a room, making it available for interactions in that room.
31
+ * User must own the room to perform this operation.
32
+ *
33
+ * @param roomId - ID of the room to add agent to
34
+ * @param agentId - ID of the agent to add
35
+ * @returns Promise that resolves when agent is added
36
+ * @throws {SDKError} If not connected, not room owner, or operation fails
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * await sdk.addAgentToRoom('room-123', 'agent-456');
41
+ * console.log('Agent added to room');
42
+ * ```
43
+ */
44
+ async addAgentToRoom(roomId, agentId) {
45
+ if (!this.wsClient.isConnected) {
46
+ throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
47
+ }
48
+ // Validate inputs
49
+ this.validateRoomId(roomId);
50
+ this.validateAgentId(agentId);
51
+ // Verify room exists
52
+ if (!this.roomExists(roomId)) {
53
+ throw new events_1.SDKError("Room not found", error_codes_1.ErrorCode.VALIDATION_ERROR);
54
+ }
55
+ // Verify user owns room
56
+ if (!this.verifyOwnership(roomId)) {
57
+ throw new events_1.SDKError("Cannot add agent to room: You don't own this room", error_codes_1.ErrorCode.PERMISSION_DENIED);
58
+ }
59
+ this.logger.debug("AgentRoomManager: Adding agent to room", { roomId, agentId });
60
+ const message = {
61
+ type: "add_agent_to_room",
62
+ data: {
63
+ room_id: roomId,
64
+ agent_id: agentId
65
+ }
66
+ };
67
+ return new Promise((resolve, reject) => {
68
+ const timeout = setTimeout(() => {
69
+ cleanup();
70
+ reject(new events_1.SDKError("Add agent to room timeout", error_codes_1.ErrorCode.TIMEOUT));
71
+ }, 30000);
72
+ const onSuccess = (responseRoomId, responseAgentId) => {
73
+ if (responseRoomId === roomId && responseAgentId === agentId) {
74
+ cleanup();
75
+ // Invalidate caches for this room
76
+ this.invalidateRoomCaches(roomId);
77
+ resolve();
78
+ }
79
+ };
80
+ const onError = (error, responseRoomId) => {
81
+ if (!responseRoomId || responseRoomId === roomId) {
82
+ cleanup();
83
+ reject(error);
84
+ }
85
+ };
86
+ const cleanup = () => {
87
+ clearTimeout(timeout);
88
+ this.off("agent_room:agent_added", onSuccess);
89
+ this.off("agent_room:add_error", onError);
90
+ };
91
+ this.once("agent_room:agent_added", onSuccess);
92
+ this.once("agent_room:add_error", onError);
93
+ this.wsClient.sendMessage(message);
94
+ });
95
+ }
96
+ /**
97
+ * Removes an agent from a room.
98
+ * User must own the room to perform this operation.
99
+ *
100
+ * @param roomId - ID of the room to remove agent from
101
+ * @param agentId - ID of the agent to remove
102
+ * @returns Promise that resolves when agent is removed
103
+ * @throws {SDKError} If not connected, not room owner, or operation fails
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * await sdk.removeAgentFromRoom('room-123', 'agent-456');
108
+ * console.log('Agent removed from room');
109
+ * ```
110
+ */
111
+ async removeAgentFromRoom(roomId, agentId) {
112
+ if (!this.wsClient.isConnected) {
113
+ throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
114
+ }
115
+ // Validate inputs
116
+ this.validateRoomId(roomId);
117
+ this.validateAgentId(agentId);
118
+ // Verify user owns room
119
+ if (!this.verifyOwnership(roomId)) {
120
+ throw new events_1.SDKError("Cannot remove agent from room: You don't own this room", error_codes_1.ErrorCode.PERMISSION_DENIED);
121
+ }
122
+ this.logger.debug("AgentRoomManager: Removing agent from room", { roomId, agentId });
123
+ const message = {
124
+ type: "remove_agent_from_room",
125
+ data: {
126
+ room_id: roomId,
127
+ agent_id: agentId
128
+ }
129
+ };
130
+ return new Promise((resolve, reject) => {
131
+ const timeout = setTimeout(() => {
132
+ cleanup();
133
+ reject(new events_1.SDKError("Remove agent from room timeout", error_codes_1.ErrorCode.TIMEOUT));
134
+ }, 30000);
135
+ const onSuccess = (responseRoomId, responseAgentId) => {
136
+ if (responseRoomId === roomId && responseAgentId === agentId) {
137
+ cleanup();
138
+ // Invalidate caches for this room
139
+ this.invalidateRoomCaches(roomId);
140
+ resolve();
141
+ }
142
+ };
143
+ const onError = (error, responseRoomId) => {
144
+ if (!responseRoomId || responseRoomId === roomId) {
145
+ cleanup();
146
+ reject(error);
147
+ }
148
+ };
149
+ const cleanup = () => {
150
+ clearTimeout(timeout);
151
+ this.off("agent_room:agent_removed", onSuccess);
152
+ this.off("agent_room:remove_error", onError);
153
+ };
154
+ this.once("agent_room:agent_removed", onSuccess);
155
+ this.once("agent_room:remove_error", onError);
156
+ this.wsClient.sendMessage(message);
157
+ });
158
+ }
159
+ /**
160
+ * Lists all agents currently in a room.
161
+ * Results are cached for 5 minutes for performance.
162
+ *
163
+ * @param roomId - ID of the room to list agents for
164
+ * @param useCache - Whether to use cached data (default: true)
165
+ * @returns Promise that resolves with array of agents
166
+ * @throws {SDKError} If not connected or operation fails
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * const agents = await sdk.listRoomAgents('room-123');
171
+ * console.log(`Room has ${agents.length} agents`);
172
+ *
173
+ * // Force fresh data
174
+ * const freshAgents = await sdk.listRoomAgents('room-123', false);
175
+ * ```
176
+ */
177
+ async listRoomAgents(roomId, useCache = true) {
178
+ if (!this.wsClient.isConnected) {
179
+ throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
180
+ }
181
+ // Validate input
182
+ this.validateRoomId(roomId);
183
+ // Check cache if enabled
184
+ if (useCache && this.isCacheValid(this.roomAgentsCacheTime, roomId)) {
185
+ const cached = this.roomAgentsCache.get(roomId);
186
+ if (cached) {
187
+ this.logger.debug("AgentRoomManager: Returning cached room agents", {
188
+ roomId,
189
+ count: cached.length
190
+ });
191
+ return cached.map((agent) => ({ ...agent })); // Return deep copy
192
+ }
193
+ }
194
+ this.logger.debug("AgentRoomManager: Listing room agents", { roomId });
195
+ const message = {
196
+ type: "list_room_agents",
197
+ data: {
198
+ room_id: roomId
199
+ }
200
+ };
201
+ return new Promise((resolve, reject) => {
202
+ const timeout = setTimeout(() => {
203
+ cleanup();
204
+ reject(new events_1.SDKError("List room agents timeout", error_codes_1.ErrorCode.TIMEOUT));
205
+ }, 30000);
206
+ const onSuccess = (responseRoomId, agents) => {
207
+ if (responseRoomId === roomId) {
208
+ cleanup();
209
+ resolve(agents);
210
+ }
211
+ };
212
+ const onError = (error, responseRoomId) => {
213
+ if (!responseRoomId || responseRoomId === roomId) {
214
+ cleanup();
215
+ reject(error);
216
+ }
217
+ };
218
+ const cleanup = () => {
219
+ clearTimeout(timeout);
220
+ this.off("agent_room:agents_listed", onSuccess);
221
+ this.off("agent_room:list_error", onError);
222
+ };
223
+ this.once("agent_room:agents_listed", onSuccess);
224
+ this.once("agent_room:list_error", onError);
225
+ this.wsClient.sendMessage(message);
226
+ });
227
+ }
228
+ /**
229
+ * Lists all agents available to add to a room (not yet in the room).
230
+ * Results are cached for 5 minutes for performance.
231
+ *
232
+ * @param roomId - ID of the room to check available agents for
233
+ * @param useCache - Whether to use cached data (default: true)
234
+ * @returns Promise that resolves with array of available agents
235
+ * @throws {SDKError} If not connected or operation fails
236
+ *
237
+ * @example
238
+ * ```typescript
239
+ * const availableAgents = await sdk.listAvailableAgents('room-123');
240
+ * console.log(`${availableAgents.length} agents can be added`);
241
+ * ```
242
+ */
243
+ async listAvailableAgents(roomId, useCache = true) {
244
+ if (!this.wsClient.isConnected) {
245
+ throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
246
+ }
247
+ // Validate input
248
+ this.validateRoomId(roomId);
249
+ // Check cache if enabled
250
+ if (useCache && this.isCacheValid(this.availableAgentsCacheTime, roomId)) {
251
+ const cached = this.availableAgentsCache.get(roomId);
252
+ if (cached) {
253
+ this.logger.debug("AgentRoomManager: Returning cached available agents", {
254
+ roomId,
255
+ count: cached.length
256
+ });
257
+ return cached.map((agent) => ({ ...agent })); // Return deep copy
258
+ }
259
+ }
260
+ this.logger.debug("AgentRoomManager: Listing available agents", { roomId });
261
+ const message = {
262
+ type: "list_available_agents",
263
+ data: {
264
+ room_id: roomId
265
+ }
266
+ };
267
+ return new Promise((resolve, reject) => {
268
+ const timeout = setTimeout(() => {
269
+ cleanup();
270
+ reject(new events_1.SDKError("List available agents timeout", error_codes_1.ErrorCode.TIMEOUT));
271
+ }, 30000);
272
+ const onSuccess = (agents) => {
273
+ cleanup();
274
+ resolve(agents);
275
+ };
276
+ const onError = (error) => {
277
+ cleanup();
278
+ reject(error);
279
+ };
280
+ const cleanup = () => {
281
+ clearTimeout(timeout);
282
+ this.off("agent_room:available_agents_listed", onSuccess);
283
+ this.off("agent_room:list_available_error", onError);
284
+ };
285
+ this.once("agent_room:available_agents_listed", onSuccess);
286
+ this.once("agent_room:list_available_error", onError);
287
+ this.wsClient.sendMessage(message);
288
+ });
289
+ }
290
+ // ============================================================================
291
+ // QUERY METHODS (Synchronous, from cache)
292
+ // ============================================================================
293
+ /**
294
+ * Gets agents currently in a room from cache (synchronous).
295
+ * Returns undefined if not cached or cache expired.
296
+ *
297
+ * @param roomId - Room ID to query
298
+ * @returns Array of agents or undefined if not cached
299
+ *
300
+ * @example
301
+ * ```typescript
302
+ * const agents = sdk.getRoomAgents('room-123');
303
+ * if (agents) {
304
+ * console.log(`Found ${agents.length} agents in cache`);
305
+ * }
306
+ * ```
307
+ */
308
+ getRoomAgents(roomId) {
309
+ if (!this.isCacheValid(this.roomAgentsCacheTime, roomId)) {
310
+ return undefined;
311
+ }
312
+ const cached = this.roomAgentsCache.get(roomId);
313
+ return cached ? cached.map((agent) => ({ ...agent })) : undefined;
314
+ }
315
+ /**
316
+ * Gets available agents for a room from cache (synchronous).
317
+ * Returns undefined if not cached or cache expired.
318
+ *
319
+ * @param roomId - Room ID to query
320
+ * @returns Array of available agents or undefined if not cached
321
+ *
322
+ * @example
323
+ * ```typescript
324
+ * const available = sdk.getAvailableAgents('room-123');
325
+ * if (available) {
326
+ * console.log(`${available.length} agents can be added`);
327
+ * }
328
+ * ```
329
+ */
330
+ getAvailableAgents(roomId) {
331
+ if (!this.isCacheValid(this.availableAgentsCacheTime, roomId)) {
332
+ return undefined;
333
+ }
334
+ const cached = this.availableAgentsCache.get(roomId);
335
+ return cached ? cached.map((agent) => ({ ...agent })) : undefined;
336
+ }
337
+ /**
338
+ * Checks if an agent is currently in a room (from cache).
339
+ * Returns undefined if cache is invalid.
340
+ *
341
+ * @param roomId - Room ID to check
342
+ * @param agentId - Agent ID to check
343
+ * @returns True if agent in room, false if not, undefined if cache invalid
344
+ *
345
+ * @example
346
+ * ```typescript
347
+ * const isInRoom = sdk.isAgentInRoom('room-123', 'agent-456');
348
+ * if (isInRoom === true) {
349
+ * console.log('Agent is in this room');
350
+ * }
351
+ * ```
352
+ */
353
+ isAgentInRoom(roomId, agentId) {
354
+ const agents = this.getRoomAgents(roomId);
355
+ if (!agents)
356
+ return undefined;
357
+ return agents.some((agent) => agent.agent_id === agentId);
358
+ }
359
+ /**
360
+ * Gets the count of agents in a room (from cache).
361
+ * Returns undefined if cache is invalid.
362
+ *
363
+ * @param roomId - Room ID to count agents for
364
+ * @returns Number of agents or undefined if cache invalid
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const count = sdk.getRoomAgentCount('room-123');
369
+ * if (count !== undefined) {
370
+ * console.log(`Room has ${count} agents`);
371
+ * }
372
+ * ```
373
+ */
374
+ getRoomAgentCount(roomId) {
375
+ const agents = this.getRoomAgents(roomId);
376
+ return agents ? agents.length : undefined;
377
+ }
378
+ // ============================================================================
379
+ // CACHE MANAGEMENT (Public methods)
380
+ // ============================================================================
381
+ /**
382
+ * Manually invalidates all caches for a specific room.
383
+ * Useful after operations that might have changed agent assignments.
384
+ *
385
+ * @param roomId - Room ID to invalidate cache for
386
+ *
387
+ * @example
388
+ * ```typescript
389
+ * // After bulk operations
390
+ * sdk.invalidateCache('room-123');
391
+ * const freshAgents = await sdk.listRoomAgents('room-123', false);
392
+ * ```
393
+ */
394
+ invalidateCache(roomId) {
395
+ this.invalidateRoomCaches(roomId);
396
+ this.logger.debug("AgentRoomManager: Cache invalidated", { roomId });
397
+ }
398
+ /**
399
+ * Clears all caches for all rooms.
400
+ * Called automatically on disconnect.
401
+ * @internal
402
+ */
403
+ clearAllCaches() {
404
+ this.roomAgentsCache.clear();
405
+ this.availableAgentsCache.clear();
406
+ this.roomAgentsCacheTime.clear();
407
+ this.availableAgentsCacheTime.clear();
408
+ this.logger.debug("AgentRoomManager: All caches cleared");
409
+ }
410
+ // ============================================================================
411
+ // INTERNAL METHODS
412
+ // ============================================================================
413
+ /**
414
+ * Handles agent status updates from server.
415
+ * Invalidates cache when agent status changes.
416
+ * @internal
417
+ */
418
+ handleStatusUpdate(roomId, agentId, status) {
419
+ this.logger.debug("AgentRoomManager: Agent status update", {
420
+ roomId,
421
+ agentId,
422
+ status
423
+ });
424
+ // Invalidate cache for this room as agent list may have changed
425
+ this.invalidateRoomCaches(roomId);
426
+ }
427
+ /**
428
+ * Called by handlers to cache room agents.
429
+ * @internal
430
+ */
431
+ cacheRoomAgents(roomId, agents) {
432
+ this.roomAgentsCache.set(roomId, agents);
433
+ this.roomAgentsCacheTime.set(roomId, Date.now());
434
+ this.logger.debug("AgentRoomManager: Cached room agents", {
435
+ roomId,
436
+ count: agents.length
437
+ });
438
+ }
439
+ /**
440
+ * Called by handlers to cache available agents.
441
+ * @internal
442
+ */
443
+ cacheAvailableAgents(roomId, agents) {
444
+ this.availableAgentsCache.set(roomId, agents);
445
+ this.availableAgentsCacheTime.set(roomId, Date.now());
446
+ this.logger.debug("AgentRoomManager: Cached available agents", {
447
+ roomId,
448
+ count: agents.length
449
+ });
450
+ }
451
+ // ============================================================================
452
+ // PRIVATE HELPERS
453
+ // ============================================================================
454
+ /**
455
+ * Checks if cache is still valid (within TTL)
456
+ */
457
+ isCacheValid(cacheTimeMap, roomId) {
458
+ const cacheTime = cacheTimeMap.get(roomId);
459
+ if (!cacheTime)
460
+ return false;
461
+ const age = Date.now() - cacheTime;
462
+ return age < CACHE_TTL_MS;
463
+ }
464
+ /**
465
+ * Invalidates all caches for a specific room
466
+ */
467
+ invalidateRoomCaches(roomId) {
468
+ this.roomAgentsCache.delete(roomId);
469
+ this.availableAgentsCache.delete(roomId);
470
+ this.roomAgentsCacheTime.delete(roomId);
471
+ this.availableAgentsCacheTime.delete(roomId);
472
+ }
473
+ /**
474
+ * Verifies user owns the room
475
+ */
476
+ validateRoomId(roomId) {
477
+ if (!roomId || roomId.trim() === "") {
478
+ throw new events_1.SDKError("Room ID cannot be empty", error_codes_1.ErrorCode.VALIDATION_ERROR);
479
+ }
480
+ }
481
+ validateAgentId(agentId) {
482
+ if (!agentId || agentId.trim() === "") {
483
+ throw new events_1.SDKError("Agent ID cannot be empty", error_codes_1.ErrorCode.VALIDATION_ERROR);
484
+ }
485
+ }
486
+ roomExists(roomId) {
487
+ if (!this.roomManagementManager)
488
+ return true; // Skip check if manager not available
489
+ // If getRoomById method doesn't exist, skip check
490
+ if (typeof this.roomManagementManager.getRoomById !== "function") {
491
+ return true;
492
+ }
493
+ // Check if room exists (in owned or shared rooms)
494
+ const room = this.roomManagementManager.getRoomById(roomId);
495
+ return room !== undefined;
496
+ }
497
+ verifyOwnership(roomId) {
498
+ if (!this.roomManagementManager)
499
+ return true; // Skip check if manager not available
500
+ // Check if room is in owned rooms
501
+ const ownedRooms = this.roomManagementManager.getOwnedRooms?.();
502
+ if (!ownedRooms)
503
+ return true; // Skip check if method not available
504
+ return ownedRooms.some((room) => room.id === roomId);
505
+ }
506
+ }
507
+ exports.AgentRoomManager = AgentRoomManager;
508
+ //# sourceMappingURL=agent-room-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-room-manager.js","sourceRoot":"","sources":["../../src/managers/agent-room-manager.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  */
5
5
  export { ConnectionManager } from "./connection-manager";
6
6
  export { RoomManager } from "./room-manager";
7
+ export { RoomManagementManager } from "./room-management-manager";
8
+ export { AgentRoomManager, type AgentRoomInfo } from "./agent-room-manager";
7
9
  export { AgentRegistry } from "./agent-registry";
8
10
  export { MessageRouter, type SendMessageOptions, type AgentCommand } from "./message-router";
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -4,11 +4,15 @@
4
4
  * Provides focused classes for different SDK responsibilities
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.MessageRouter = exports.AgentRegistry = exports.RoomManager = exports.ConnectionManager = void 0;
7
+ exports.MessageRouter = exports.AgentRegistry = exports.AgentRoomManager = exports.RoomManagementManager = exports.RoomManager = exports.ConnectionManager = void 0;
8
8
  var connection_manager_1 = require("./connection-manager");
9
9
  Object.defineProperty(exports, "ConnectionManager", { enumerable: true, get: function () { return connection_manager_1.ConnectionManager; } });
10
10
  var room_manager_1 = require("./room-manager");
11
11
  Object.defineProperty(exports, "RoomManager", { enumerable: true, get: function () { return room_manager_1.RoomManager; } });
12
+ var room_management_manager_1 = require("./room-management-manager");
13
+ Object.defineProperty(exports, "RoomManagementManager", { enumerable: true, get: function () { return room_management_manager_1.RoomManagementManager; } });
14
+ var agent_room_manager_1 = require("./agent-room-manager");
15
+ Object.defineProperty(exports, "AgentRoomManager", { enumerable: true, get: function () { return agent_room_manager_1.AgentRoomManager; } });
12
16
  var agent_registry_1 = require("./agent-registry");
13
17
  Object.defineProperty(exports, "AgentRegistry", { enumerable: true, get: function () { return agent_registry_1.AgentRegistry; } });
14
18
  var message_router_1 = require("./message-router");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,mDAA6F;AAApF,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/managers/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAC9B,2DAA4E;AAAnE,sHAAA,gBAAgB,OAAA;AACzB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,mDAA6F;AAApF,+GAAA,aAAa,OAAA"}