@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.
- package/.github/workflows/publish-npm.yml +8 -6
- package/CHANGELOG.md +265 -0
- package/README.md +406 -53
- package/dist/core/websocket-client.d.ts +12 -0
- package/dist/core/websocket-client.d.ts.map +1 -1
- package/dist/core/websocket-client.js +22 -2
- package/dist/core/websocket-client.js.map +1 -1
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +70 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts +92 -38
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +904 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js +51 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts +45 -31
- package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.d.ts +6 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.js +65 -5
- package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-required-handler.d.ts +49 -31
- package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.d.ts +6 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.js +46 -4
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
- package/dist/handlers/message-handlers/challenge-handler.d.ts +45 -31
- package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/error-message-handler.d.ts +49 -31
- package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.d.ts +5 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.js +23 -1
- package/dist/handlers/message-handlers/index.js.map +1 -1
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +877 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.js +38 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +886 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.js +51 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +178 -89
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts +62 -58
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/regular-message-handler.d.ts +31 -29
- package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts +328 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.js +92 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +53 -31
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/types.d.ts +2 -0
- package/dist/handlers/message-handlers/types.d.ts.map +1 -1
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +53 -31
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
- package/dist/managers/agent-room-manager.d.ts +222 -0
- package/dist/managers/agent-room-manager.d.ts.map +1 -0
- package/dist/managers/agent-room-manager.js +508 -0
- package/dist/managers/agent-room-manager.js.map +1 -0
- package/dist/managers/index.d.ts +2 -0
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/index.js +5 -1
- package/dist/managers/index.js.map +1 -1
- package/dist/managers/room-management-manager.d.ts +213 -0
- package/dist/managers/room-management-manager.d.ts.map +1 -0
- package/dist/managers/room-management-manager.js +440 -0
- package/dist/managers/room-management-manager.js.map +1 -0
- package/dist/managers/room-manager.d.ts +4 -4
- package/dist/managers/room-manager.d.ts.map +1 -1
- package/dist/managers/room-manager.js.map +1 -1
- package/dist/teneo-sdk.d.ts +333 -13
- package/dist/teneo-sdk.d.ts.map +1 -1
- package/dist/teneo-sdk.js +468 -1
- package/dist/teneo-sdk.js.map +1 -1
- package/dist/types/config.d.ts +63 -54
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +8 -4
- package/dist/types/config.js.map +1 -1
- package/dist/types/error-codes.d.ts +2 -0
- package/dist/types/error-codes.d.ts.map +1 -1
- package/dist/types/error-codes.js +3 -0
- package/dist/types/error-codes.js.map +1 -1
- package/dist/types/events.d.ts +132 -68
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +27 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.d.ts +11396 -2559
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/messages.js +294 -27
- package/dist/types/messages.js.map +1 -1
- package/examples/.env.example +1 -1
- package/examples/agent-room-management-example.ts +334 -0
- package/examples/claude-agent-x-follower/.env.example +2 -2
- package/examples/claude-agent-x-follower/QUICKSTART.md +1 -1
- package/examples/claude-agent-x-follower/README.md +1 -1
- package/examples/n8n-teneo/.env.example +2 -2
- package/examples/n8n-teneo/README.md +1 -1
- package/examples/openai-teneo/.env.example +2 -2
- package/examples/openai-teneo/README.md +1 -1
- package/examples/production-dashboard/.env.example +2 -2
- package/examples/production-dashboard/README.md +89 -12
- package/examples/production-dashboard/public/dashboard.html +1173 -601
- package/examples/production-dashboard/server.ts +347 -5
- package/examples/room-management-example.ts +285 -0
- package/examples/usage/.env.example +1 -1
- package/examples/usage/01-connect.ts +1 -1
- package/examples/usage/02-list-agents.ts +1 -1
- package/examples/usage/03-pick-agent.ts +1 -1
- package/examples/usage/04-find-by-capability.ts +1 -1
- package/examples/usage/05-webhook-example.ts +1 -1
- package/examples/usage/06-simple-api-server.ts +1 -1
- package/examples/usage/07-event-listener.ts +1 -1
- package/examples/usage/README.md +1 -1
- package/package.json +9 -1
- package/src/core/websocket-client.ts +26 -2
- package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +83 -0
- package/src/handlers/message-handlers/agent-status-update-handler.ts +58 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +73 -5
- package/src/handlers/message-handlers/auth-success-handler.ts +58 -6
- package/src/handlers/message-handlers/index.ts +19 -0
- package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
- package/src/handlers/message-handlers/list-room-agents-handler.ts +61 -0
- package/src/handlers/message-handlers/room-operation-response-handler.ts +105 -0
- package/src/handlers/message-handlers/types.ts +6 -0
- package/src/managers/agent-room-manager.ts +609 -0
- package/src/managers/index.ts +2 -0
- package/src/managers/room-management-manager.ts +523 -0
- package/src/managers/room-manager.ts +4 -5
- package/src/teneo-sdk.ts +505 -4
- package/src/types/config.ts +10 -5
- package/src/types/error-codes.ts +4 -0
- package/src/types/events.ts +24 -0
- package/src/types/index.ts +55 -0
- package/src/types/messages.ts +374 -41
- package/tests/integration/room-management.test.ts +514 -0
- package/tests/integration/websocket.test.ts +1 -1
- package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +394 -0
- package/tests/unit/handlers/agent-status-update-handler.test.ts +407 -0
- package/tests/unit/handlers/auth-success-handler-rooms.test.ts +699 -0
- package/tests/unit/handlers/list-available-agents-handler.test.ts +256 -0
- package/tests/unit/handlers/list-room-agents-handler.test.ts +294 -0
- package/tests/unit/handlers/room-operation-response-handler.test.ts +527 -0
- package/tests/unit/managers/agent-room-manager.test.ts +534 -0
- 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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"}
|
package/dist/managers/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/managers/index.js
CHANGED
|
@@ -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"}
|