@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
@@ -37,45 +37,67 @@ export declare class UnsubscribeResponseHandler extends BaseMessageHandler<Unsub
37
37
  success: boolean;
38
38
  subscriptions?: string[] | undefined;
39
39
  }>;
40
- }, "strip", import("zod").ZodTypeAny, {
41
- type: "unsubscribe";
42
- data: {
40
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
41
+ content: import("zod").ZodOptional<import("zod").ZodAny>;
42
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<["text/plain", "text/markdown", "text/html", "application/json", "image/*", "STRING", "JSON", "MD", "ARRAY"]>>;
43
+ from: import("zod").ZodOptional<import("zod").ZodString>;
44
+ to: import("zod").ZodOptional<import("zod").ZodString>;
45
+ room: import("zod").ZodOptional<import("zod").ZodString>;
46
+ timestamp: import("zod").ZodOptional<import("zod").ZodString>;
47
+ signature: import("zod").ZodOptional<import("zod").ZodString>;
48
+ publicKey: import("zod").ZodOptional<import("zod").ZodString>;
49
+ reasoning: import("zod").ZodOptional<import("zod").ZodString>;
50
+ task_id: import("zod").ZodOptional<import("zod").ZodString>;
51
+ id: import("zod").ZodOptional<import("zod").ZodString>;
52
+ } & {
53
+ type: import("zod").ZodLiteral<"unsubscribe">;
54
+ data: import("zod").ZodObject<{
55
+ room_id: import("zod").ZodString;
56
+ success: import("zod").ZodBoolean;
57
+ message: import("zod").ZodString;
58
+ subscriptions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
59
+ }, "strip", import("zod").ZodTypeAny, {
60
+ message: string;
61
+ room_id: string;
62
+ success: boolean;
63
+ subscriptions?: string[] | undefined;
64
+ }, {
65
+ message: string;
66
+ room_id: string;
67
+ success: boolean;
68
+ subscriptions?: string[] | undefined;
69
+ }>;
70
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
71
+ content: import("zod").ZodOptional<import("zod").ZodAny>;
72
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<["text/plain", "text/markdown", "text/html", "application/json", "image/*", "STRING", "JSON", "MD", "ARRAY"]>>;
73
+ from: import("zod").ZodOptional<import("zod").ZodString>;
74
+ to: import("zod").ZodOptional<import("zod").ZodString>;
75
+ room: import("zod").ZodOptional<import("zod").ZodString>;
76
+ timestamp: import("zod").ZodOptional<import("zod").ZodString>;
77
+ signature: import("zod").ZodOptional<import("zod").ZodString>;
78
+ publicKey: import("zod").ZodOptional<import("zod").ZodString>;
79
+ reasoning: import("zod").ZodOptional<import("zod").ZodString>;
80
+ task_id: import("zod").ZodOptional<import("zod").ZodString>;
81
+ id: import("zod").ZodOptional<import("zod").ZodString>;
82
+ } & {
83
+ type: import("zod").ZodLiteral<"unsubscribe">;
84
+ data: import("zod").ZodObject<{
85
+ room_id: import("zod").ZodString;
86
+ success: import("zod").ZodBoolean;
87
+ message: import("zod").ZodString;
88
+ subscriptions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
89
+ }, "strip", import("zod").ZodTypeAny, {
43
90
  message: string;
44
91
  room_id: string;
45
92
  success: boolean;
46
93
  subscriptions?: string[] | undefined;
47
- };
48
- id?: string | undefined;
49
- room?: string | undefined;
50
- content?: any;
51
- content_type?: "text/plain" | "text/markdown" | "text/html" | "application/json" | "image/*" | "STRING" | "JSON" | "MD" | "ARRAY" | undefined;
52
- from?: string | undefined;
53
- to?: string | undefined;
54
- timestamp?: string | undefined;
55
- signature?: string | undefined;
56
- publicKey?: string | undefined;
57
- reasoning?: string | undefined;
58
- task_id?: string | undefined;
59
- }, {
60
- type: "unsubscribe";
61
- data: {
94
+ }, {
62
95
  message: string;
63
96
  room_id: string;
64
97
  success: boolean;
65
98
  subscriptions?: string[] | undefined;
66
- };
67
- id?: string | undefined;
68
- room?: string | undefined;
69
- content?: any;
70
- content_type?: "text/plain" | "text/markdown" | "text/html" | "application/json" | "image/*" | "STRING" | "JSON" | "MD" | "ARRAY" | undefined;
71
- from?: string | undefined;
72
- to?: string | undefined;
73
- timestamp?: string | undefined;
74
- signature?: string | undefined;
75
- publicKey?: string | undefined;
76
- reasoning?: string | undefined;
77
- task_id?: string | undefined;
78
- }>;
99
+ }>;
100
+ }, import("zod").ZodTypeAny, "passthrough">>;
79
101
  protected handleValidated(message: UnsubscribeResponse, context: HandlerContext): void;
80
102
  }
81
103
  //# sourceMappingURL=unsubscribe-response-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsubscribe-response-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/unsubscribe-response-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAA6B,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,0BAA2B,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IACrF,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6B;IAE5C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;CAiCvF"}
1
+ {"version":3,"file":"unsubscribe-response-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/unsubscribe-response-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAA6B,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,0BAA2B,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IACrF,QAAQ,CAAC,IAAI,EAAG,aAAa,CAAU;IACvC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAA6B;IAE5C,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;CAiCvF"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * AgentRoomManager - Manages agent-room associations (v2.0.0)
3
+ * Allows room owners to control which agents are available in their rooms
4
+ * Implements caching with 5-minute TTL for performance
5
+ */
6
+ import { EventEmitter } from "eventemitter3";
7
+ import { WebSocketClient } from "../core/websocket-client";
8
+ import { Logger } from "../types";
9
+ import { SDKEvents } from "../types/events";
10
+ import { RoomManagementManager } from "./room-management-manager";
11
+ export interface AgentRoomInfo {
12
+ agent_id: string;
13
+ agent_name?: string;
14
+ description?: string;
15
+ capabilities?: Array<{
16
+ name: string;
17
+ description?: string;
18
+ }>;
19
+ commands?: Array<{
20
+ trigger: string;
21
+ argument?: string;
22
+ description?: string;
23
+ }>;
24
+ image?: string;
25
+ status?: string;
26
+ added_by?: string;
27
+ added_at?: string;
28
+ }
29
+ export declare class AgentRoomManager extends EventEmitter<SDKEvents> {
30
+ private readonly wsClient;
31
+ private readonly logger;
32
+ private readonly roomManagementManager;
33
+ private readonly roomAgentsCache;
34
+ private readonly availableAgentsCache;
35
+ private readonly roomAgentsCacheTime;
36
+ private readonly availableAgentsCacheTime;
37
+ constructor(wsClient: WebSocketClient, logger: Logger, roomManagementManager: RoomManagementManager);
38
+ /**
39
+ * Adds an agent to a room, making it available for interactions in that room.
40
+ * User must own the room to perform this operation.
41
+ *
42
+ * @param roomId - ID of the room to add agent to
43
+ * @param agentId - ID of the agent to add
44
+ * @returns Promise that resolves when agent is added
45
+ * @throws {SDKError} If not connected, not room owner, or operation fails
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * await sdk.addAgentToRoom('room-123', 'agent-456');
50
+ * console.log('Agent added to room');
51
+ * ```
52
+ */
53
+ addAgentToRoom(roomId: string, agentId: string): Promise<void>;
54
+ /**
55
+ * Removes an agent from a room.
56
+ * User must own the room to perform this operation.
57
+ *
58
+ * @param roomId - ID of the room to remove agent from
59
+ * @param agentId - ID of the agent to remove
60
+ * @returns Promise that resolves when agent is removed
61
+ * @throws {SDKError} If not connected, not room owner, or operation fails
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * await sdk.removeAgentFromRoom('room-123', 'agent-456');
66
+ * console.log('Agent removed from room');
67
+ * ```
68
+ */
69
+ removeAgentFromRoom(roomId: string, agentId: string): Promise<void>;
70
+ /**
71
+ * Lists all agents currently in a room.
72
+ * Results are cached for 5 minutes for performance.
73
+ *
74
+ * @param roomId - ID of the room to list agents for
75
+ * @param useCache - Whether to use cached data (default: true)
76
+ * @returns Promise that resolves with array of agents
77
+ * @throws {SDKError} If not connected or operation fails
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * const agents = await sdk.listRoomAgents('room-123');
82
+ * console.log(`Room has ${agents.length} agents`);
83
+ *
84
+ * // Force fresh data
85
+ * const freshAgents = await sdk.listRoomAgents('room-123', false);
86
+ * ```
87
+ */
88
+ listRoomAgents(roomId: string, useCache?: boolean): Promise<AgentRoomInfo[]>;
89
+ /**
90
+ * Lists all agents available to add to a room (not yet in the room).
91
+ * Results are cached for 5 minutes for performance.
92
+ *
93
+ * @param roomId - ID of the room to check available agents for
94
+ * @param useCache - Whether to use cached data (default: true)
95
+ * @returns Promise that resolves with array of available agents
96
+ * @throws {SDKError} If not connected or operation fails
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const availableAgents = await sdk.listAvailableAgents('room-123');
101
+ * console.log(`${availableAgents.length} agents can be added`);
102
+ * ```
103
+ */
104
+ listAvailableAgents(roomId: string, useCache?: boolean): Promise<AgentRoomInfo[]>;
105
+ /**
106
+ * Gets agents currently in a room from cache (synchronous).
107
+ * Returns undefined if not cached or cache expired.
108
+ *
109
+ * @param roomId - Room ID to query
110
+ * @returns Array of agents or undefined if not cached
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const agents = sdk.getRoomAgents('room-123');
115
+ * if (agents) {
116
+ * console.log(`Found ${agents.length} agents in cache`);
117
+ * }
118
+ * ```
119
+ */
120
+ getRoomAgents(roomId: string): AgentRoomInfo[] | undefined;
121
+ /**
122
+ * Gets available agents for a room from cache (synchronous).
123
+ * Returns undefined if not cached or cache expired.
124
+ *
125
+ * @param roomId - Room ID to query
126
+ * @returns Array of available agents or undefined if not cached
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * const available = sdk.getAvailableAgents('room-123');
131
+ * if (available) {
132
+ * console.log(`${available.length} agents can be added`);
133
+ * }
134
+ * ```
135
+ */
136
+ getAvailableAgents(roomId: string): AgentRoomInfo[] | undefined;
137
+ /**
138
+ * Checks if an agent is currently in a room (from cache).
139
+ * Returns undefined if cache is invalid.
140
+ *
141
+ * @param roomId - Room ID to check
142
+ * @param agentId - Agent ID to check
143
+ * @returns True if agent in room, false if not, undefined if cache invalid
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const isInRoom = sdk.isAgentInRoom('room-123', 'agent-456');
148
+ * if (isInRoom === true) {
149
+ * console.log('Agent is in this room');
150
+ * }
151
+ * ```
152
+ */
153
+ isAgentInRoom(roomId: string, agentId: string): boolean | undefined;
154
+ /**
155
+ * Gets the count of agents in a room (from cache).
156
+ * Returns undefined if cache is invalid.
157
+ *
158
+ * @param roomId - Room ID to count agents for
159
+ * @returns Number of agents or undefined if cache invalid
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * const count = sdk.getRoomAgentCount('room-123');
164
+ * if (count !== undefined) {
165
+ * console.log(`Room has ${count} agents`);
166
+ * }
167
+ * ```
168
+ */
169
+ getRoomAgentCount(roomId: string): number | undefined;
170
+ /**
171
+ * Manually invalidates all caches for a specific room.
172
+ * Useful after operations that might have changed agent assignments.
173
+ *
174
+ * @param roomId - Room ID to invalidate cache for
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * // After bulk operations
179
+ * sdk.invalidateCache('room-123');
180
+ * const freshAgents = await sdk.listRoomAgents('room-123', false);
181
+ * ```
182
+ */
183
+ invalidateCache(roomId: string): void;
184
+ /**
185
+ * Clears all caches for all rooms.
186
+ * Called automatically on disconnect.
187
+ * @internal
188
+ */
189
+ clearAllCaches(): void;
190
+ /**
191
+ * Handles agent status updates from server.
192
+ * Invalidates cache when agent status changes.
193
+ * @internal
194
+ */
195
+ handleStatusUpdate(roomId: string, agentId: string, status: string): void;
196
+ /**
197
+ * Called by handlers to cache room agents.
198
+ * @internal
199
+ */
200
+ cacheRoomAgents(roomId: string, agents: AgentRoomInfo[]): void;
201
+ /**
202
+ * Called by handlers to cache available agents.
203
+ * @internal
204
+ */
205
+ cacheAvailableAgents(roomId: string, agents: AgentRoomInfo[]): void;
206
+ /**
207
+ * Checks if cache is still valid (within TTL)
208
+ */
209
+ private isCacheValid;
210
+ /**
211
+ * Invalidates all caches for a specific room
212
+ */
213
+ private invalidateRoomCaches;
214
+ /**
215
+ * Verifies user owns the room
216
+ */
217
+ private validateRoomId;
218
+ private validateAgentId;
219
+ private roomExists;
220
+ private verifyOwnership;
221
+ }
222
+ //# sourceMappingURL=agent-room-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-room-manager.d.ts","sourceRoot":"","sources":["../../src/managers/agent-room-manager.ts"],"names":[],"mappings":"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"}