@teneo-protocol/sdk 1.0.0 → 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 (211) 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 +13 -0
  5. package/dist/core/websocket-client.d.ts.map +1 -1
  6. package/dist/core/websocket-client.js +34 -3
  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/regular-message-handler.js +1 -0
  53. package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -1
  54. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts +328 -0
  55. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -0
  56. package/dist/handlers/message-handlers/room-operation-response-handler.js +92 -0
  57. package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -0
  58. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +53 -31
  59. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
  60. package/dist/handlers/message-handlers/types.d.ts +2 -0
  61. package/dist/handlers/message-handlers/types.d.ts.map +1 -1
  62. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +53 -31
  63. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
  64. package/dist/managers/agent-room-manager.d.ts +222 -0
  65. package/dist/managers/agent-room-manager.d.ts.map +1 -0
  66. package/dist/managers/agent-room-manager.js +508 -0
  67. package/dist/managers/agent-room-manager.js.map +1 -0
  68. package/dist/managers/index.d.ts +2 -0
  69. package/dist/managers/index.d.ts.map +1 -1
  70. package/dist/managers/index.js +5 -1
  71. package/dist/managers/index.js.map +1 -1
  72. package/dist/managers/message-router.d.ts +1 -1
  73. package/dist/managers/message-router.d.ts.map +1 -1
  74. package/dist/managers/message-router.js +41 -4
  75. package/dist/managers/message-router.js.map +1 -1
  76. package/dist/managers/room-management-manager.d.ts +213 -0
  77. package/dist/managers/room-management-manager.d.ts.map +1 -0
  78. package/dist/managers/room-management-manager.js +440 -0
  79. package/dist/managers/room-management-manager.js.map +1 -0
  80. package/dist/managers/room-manager.d.ts +4 -4
  81. package/dist/managers/room-manager.d.ts.map +1 -1
  82. package/dist/managers/room-manager.js +1 -1
  83. package/dist/managers/room-manager.js.map +1 -1
  84. package/dist/teneo-sdk.d.ts +362 -14
  85. package/dist/teneo-sdk.d.ts.map +1 -1
  86. package/dist/teneo-sdk.js +497 -7
  87. package/dist/teneo-sdk.js.map +1 -1
  88. package/dist/types/config.d.ts +63 -54
  89. package/dist/types/config.d.ts.map +1 -1
  90. package/dist/types/config.js +9 -5
  91. package/dist/types/config.js.map +1 -1
  92. package/dist/types/error-codes.d.ts +2 -0
  93. package/dist/types/error-codes.d.ts.map +1 -1
  94. package/dist/types/error-codes.js +3 -0
  95. package/dist/types/error-codes.js.map +1 -1
  96. package/dist/types/events.d.ts +132 -68
  97. package/dist/types/events.d.ts.map +1 -1
  98. package/dist/types/events.js.map +1 -1
  99. package/dist/types/index.d.ts +1 -1
  100. package/dist/types/index.d.ts.map +1 -1
  101. package/dist/types/index.js +27 -2
  102. package/dist/types/index.js.map +1 -1
  103. package/dist/types/messages.d.ts +11396 -2559
  104. package/dist/types/messages.d.ts.map +1 -1
  105. package/dist/types/messages.js +294 -27
  106. package/dist/types/messages.js.map +1 -1
  107. package/dist/types/validation.d.ts.map +1 -1
  108. package/dist/types/validation.js +1 -1
  109. package/dist/types/validation.js.map +1 -1
  110. package/dist/utils/bounded-queue.d.ts +1 -1
  111. package/dist/utils/bounded-queue.js +6 -6
  112. package/dist/utils/circuit-breaker.d.ts.map +1 -1
  113. package/dist/utils/circuit-breaker.js.map +1 -1
  114. package/dist/utils/event-waiter.d.ts.map +1 -1
  115. package/dist/utils/event-waiter.js +2 -1
  116. package/dist/utils/event-waiter.js.map +1 -1
  117. package/dist/utils/rate-limiter.d.ts.map +1 -1
  118. package/dist/utils/rate-limiter.js +4 -6
  119. package/dist/utils/rate-limiter.js.map +1 -1
  120. package/dist/utils/secure-private-key.d.ts.map +1 -1
  121. package/dist/utils/secure-private-key.js +9 -15
  122. package/dist/utils/secure-private-key.js.map +1 -1
  123. package/dist/utils/signature-verifier.d.ts +2 -2
  124. package/dist/utils/signature-verifier.d.ts.map +1 -1
  125. package/dist/utils/signature-verifier.js +5 -5
  126. package/dist/utils/signature-verifier.js.map +1 -1
  127. package/examples/.env.example +1 -1
  128. package/examples/agent-room-management-example.ts +334 -0
  129. package/examples/claude-agent-x-follower/.env.example +117 -0
  130. package/examples/claude-agent-x-follower/QUICKSTART.md +243 -0
  131. package/examples/claude-agent-x-follower/README.md +540 -0
  132. package/examples/claude-agent-x-follower/index.ts +248 -0
  133. package/examples/claude-agent-x-follower/package.json +37 -0
  134. package/examples/claude-agent-x-follower/tsconfig.json +20 -0
  135. package/examples/n8n-teneo/.env.example +127 -0
  136. package/examples/n8n-teneo/Dockerfile +42 -0
  137. package/examples/n8n-teneo/README.md +564 -0
  138. package/examples/n8n-teneo/docker-compose.yml +71 -0
  139. package/examples/n8n-teneo/index.ts +177 -0
  140. package/examples/n8n-teneo/package.json +22 -0
  141. package/examples/n8n-teneo/tsconfig.json +12 -0
  142. package/examples/n8n-teneo/workflows/x-timeline.json +66 -0
  143. package/examples/openai-teneo/.env.example +130 -0
  144. package/examples/openai-teneo/README.md +635 -0
  145. package/examples/openai-teneo/index.ts +280 -0
  146. package/examples/openai-teneo/package.json +24 -0
  147. package/examples/openai-teneo/tsconfig.json +16 -0
  148. package/examples/production-dashboard/.env.example +5 -3
  149. package/examples/production-dashboard/README.md +839 -0
  150. package/examples/production-dashboard/pnpm-lock.yaml +92 -0
  151. package/examples/production-dashboard/public/dashboard.html +1150 -504
  152. package/examples/production-dashboard/server.ts +428 -12
  153. package/examples/room-management-example.ts +285 -0
  154. package/examples/usage/.env.example +17 -0
  155. package/examples/usage/01-connect.ts +116 -0
  156. package/examples/usage/02-list-agents.ts +153 -0
  157. package/examples/usage/03-pick-agent.ts +201 -0
  158. package/examples/usage/04-find-by-capability.ts +237 -0
  159. package/examples/usage/05-webhook-example.ts +319 -0
  160. package/examples/usage/06-simple-api-server.ts +396 -0
  161. package/examples/usage/07-event-listener.ts +402 -0
  162. package/examples/usage/README.md +383 -0
  163. package/examples/usage/package.json +42 -0
  164. package/package.json +13 -3
  165. package/src/core/websocket-client.ts +43 -9
  166. package/src/formatters/response-formatter.test.ts +8 -2
  167. package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +83 -0
  168. package/src/handlers/message-handlers/agent-status-update-handler.ts +58 -0
  169. package/src/handlers/message-handlers/auth-message-handler.ts +73 -5
  170. package/src/handlers/message-handlers/auth-success-handler.ts +58 -6
  171. package/src/handlers/message-handlers/index.ts +19 -0
  172. package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
  173. package/src/handlers/message-handlers/list-room-agents-handler.ts +61 -0
  174. package/src/handlers/message-handlers/regular-message-handler.ts +1 -0
  175. package/src/handlers/message-handlers/room-operation-response-handler.ts +105 -0
  176. package/src/handlers/message-handlers/types.ts +6 -0
  177. package/src/handlers/webhook-handler.test.ts +13 -10
  178. package/src/managers/agent-room-manager.ts +609 -0
  179. package/src/managers/index.ts +2 -0
  180. package/src/managers/message-router.ts +48 -6
  181. package/src/managers/room-management-manager.ts +523 -0
  182. package/src/managers/room-manager.ts +12 -6
  183. package/src/teneo-sdk.ts +543 -10
  184. package/src/types/config.ts +13 -6
  185. package/src/types/error-codes.ts +4 -0
  186. package/src/types/events.ts +24 -0
  187. package/src/types/index.ts +55 -0
  188. package/src/types/messages.ts +374 -41
  189. package/src/types/validation.ts +4 -1
  190. package/src/utils/bounded-queue.ts +9 -9
  191. package/src/utils/circuit-breaker.ts +4 -1
  192. package/src/utils/deduplication-cache.test.ts +2 -6
  193. package/src/utils/event-waiter.test.ts +4 -1
  194. package/src/utils/event-waiter.ts +5 -7
  195. package/src/utils/rate-limiter.test.ts +5 -17
  196. package/src/utils/rate-limiter.ts +6 -9
  197. package/src/utils/secure-private-key.test.ts +66 -59
  198. package/src/utils/secure-private-key.ts +10 -16
  199. package/src/utils/signature-verifier.test.ts +75 -70
  200. package/src/utils/signature-verifier.ts +7 -8
  201. package/src/utils/ssrf-validator.test.ts +3 -3
  202. package/tests/integration/room-management.test.ts +514 -0
  203. package/tests/integration/websocket.test.ts +1 -1
  204. package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +394 -0
  205. package/tests/unit/handlers/agent-status-update-handler.test.ts +407 -0
  206. package/tests/unit/handlers/auth-success-handler-rooms.test.ts +699 -0
  207. package/tests/unit/handlers/list-available-agents-handler.test.ts +256 -0
  208. package/tests/unit/handlers/list-room-agents-handler.test.ts +294 -0
  209. package/tests/unit/handlers/room-operation-response-handler.test.ts +527 -0
  210. package/tests/unit/managers/agent-room-manager.test.ts +534 -0
  211. package/tests/unit/managers/room-management-manager.test.ts +438 -0
@@ -1,7 +1,7 @@
1
1
  name: Publish Package
2
2
  on:
3
- push:
4
- branches: [main]
3
+ push:
4
+ branches: [main]
5
5
 
6
6
  permissions:
7
7
  id-token: write # Required for OIDC
@@ -21,7 +21,10 @@ jobs:
21
21
  with:
22
22
  node-version: '20'
23
23
  registry-url: 'https://registry.npmjs.org'
24
- cache: 'pnpm'
24
+
25
+ # Ensure npm 11.5.1 or later is installed (required for trusted publishing)
26
+ - name: Update npm
27
+ run: npm install -g npm@latest
25
28
 
26
29
  - name: Install dependencies
27
30
  run: pnpm install --frozen-lockfile
@@ -32,7 +35,6 @@ jobs:
32
35
  - name: Test
33
36
  run: pnpm test
34
37
 
38
+ # Trusted publishing automatically adds provenance, no flags needed
35
39
  - name: Publish to npm
36
- run: pnpm publish --access public --no-git-checks
37
- env:
38
- NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
40
+ run: pnpm publish --access public --no-git-checks
package/CHANGELOG.md ADDED
@@ -0,0 +1,265 @@
1
+ # Changelog
2
+
3
+ All notable changes to the Teneo Protocol SDK will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [2.0.0] - 2025-11-05
9
+
10
+ ### 🎉 Major Release: Multi-Room & Agent Customization
11
+
12
+ Version 2.0 introduces comprehensive room management and per-room agent customization capabilities, enabling developers to create context-specific agent experiences.
13
+
14
+ ### ✨ Added
15
+
16
+ #### Phase 1: Room Management System
17
+
18
+ - **Room CRUD Operations**
19
+ - `createRoom(name, description?)` - Create new private rooms with validation
20
+ - `updateRoom(roomId, updates)` - Update room name/description (owner only)
21
+ - `deleteRoom(roomId)` - Delete owned rooms
22
+
23
+ - **Room Query Methods**
24
+ - `getOwnedRooms()` - Get all rooms you created
25
+ - `getSharedRooms()` - Get rooms you were invited to
26
+ - `getAllRooms()` - Get all rooms (owned + shared) convenience method
27
+ - `getRoomById(roomId)` - Get specific room details
28
+ - `getRoomLimit()` - Check your room creation limit
29
+ - `canCreateRoom()` - Check if you can create more rooms
30
+ - `getOwnedRoomCount()` - Count your owned rooms
31
+
32
+ - **Room Management Events**
33
+ - `room:created` - Emitted when room is created
34
+ - `room:updated` - Emitted when room is updated
35
+ - `room:deleted` - Emitted when room is deleted
36
+ - `room:create_error` - Emitted on creation failure
37
+ - `room:update_error` - Emitted on update failure
38
+ - `room:delete_error` - Emitted on deletion failure
39
+
40
+ - **Room Management Manager**
41
+ - New `RoomManagementManager` class for room operations
42
+ - Ownership verification before CRUD operations
43
+ - Cached room state (owned vs shared)
44
+ - Room limit enforcement
45
+ - 6 new message handlers for room operations
46
+
47
+ #### Phase 2: Agent Room Management
48
+
49
+ - **Agent Room Operations**
50
+ - `addAgentToRoom(roomId, agentId)` - Add agent to your room (owner only)
51
+ - `removeAgentFromRoom(roomId, agentId)` - Remove agent from your room
52
+ - `listRoomAgents(roomId, useCache?)` - List agents in room with 5-min cache
53
+ - `listAvailableAgents(roomId, useCache?)` - List agents available to add
54
+
55
+ - **Agent Room Query Methods (Synchronous)**
56
+ - `getRoomAgents(roomId)` - Get cached room agents instantly
57
+ - `getAvailableAgents(roomId)` - Get cached available agents instantly
58
+ - `isAgentInRoom(roomId, agentId)` - Check if agent is in room (cached)
59
+ - `getRoomAgentCount(roomId)` - Get agent count from cache
60
+
61
+ - **Cache Management**
62
+ - `invalidateAgentRoomCache(roomId)` - Manually clear cache for specific room
63
+ - Intelligent 5-minute TTL caching for performance
64
+ - Automatic cache invalidation on agent add/remove
65
+ - Automatic cache invalidation on agent status updates
66
+
67
+ - **Agent Room Events**
68
+ - `agent_room:agent_added` - Emitted when agent added to room
69
+ - `agent_room:agent_removed` - Emitted when agent removed from room
70
+ - `agent_room:agents_listed` - Emitted when room agents listed
71
+ - `agent_room:available_agents_listed` - Emitted when available agents listed
72
+ - `agent_room:status_update` - Real-time agent status updates
73
+ - `agent_room:add_error` - Emitted on agent add failure
74
+ - `agent_room:remove_error` - Emitted on agent remove failure
75
+ - `agent_room:list_error` - Emitted on list failure
76
+ - `agent_room:list_available_error` - Emitted on available list failure
77
+
78
+ - **Agent Room Manager**
79
+ - New `AgentRoomManager` class for agent-room operations
80
+ - Ownership verification before operations
81
+ - Performance-optimized caching with TTL
82
+ - Real-time status update handling
83
+ - 5 new message handlers for agent room operations
84
+
85
+ #### Type System Updates
86
+
87
+ - Updated `RoomInfo` interface with `created_by` field (creator wallet address)
88
+ - Fixed `Capability` schema: `type` → `name`, description now optional
89
+ - Fixed `Command` schema: `command` → `trigger`, added `argument` field, description optional
90
+ - Updated `AuthenticationState` with room categorization:
91
+ - `privateRoomIds` - Array of owned room IDs
92
+ - `sharedRoomIds` - Array of shared room IDs
93
+ - `maxPrivateRooms` - Room creation limit
94
+ - New `AgentRoomInfo` interface for agent-room metadata
95
+ - 26 new message types and schemas for room/agent-room operations
96
+
97
+ ### 📊 Testing
98
+
99
+ - Added 102 new unit tests for Phase 1 and Phase 2
100
+ - Total test count: 671 tests passing (100% pass rate)
101
+ - Comprehensive coverage of room management
102
+ - Comprehensive coverage of agent room management
103
+ - All manager and handler tests passing
104
+
105
+ ### 🔄 Changed
106
+
107
+ - Message handlers now use `BaseMessageHandler` pattern
108
+ - Enhanced event system with 14 new event types
109
+ - WebSocketClient now manages room and agent-room managers
110
+
111
+ ### 🐛 Fixed
112
+
113
+ - Schema field names now match backend source of truth
114
+ - Proper defensive copying for cache immutability
115
+ - Validation for empty room/agent IDs
116
+ - Proper room ownership checks before operations
117
+ - Auth handler now correctly parses `private_rooms` array from cached authentication messages
118
+ - Room management events now properly forward from WebSocket handlers to SDK instance
119
+ - Room persistence: Private rooms now correctly persist after page refresh via proper initialization of RoomManagementManager from auth state
120
+
121
+ ### 📚 Documentation
122
+
123
+ - Comprehensive README updates with v2.0 features
124
+ - New "What's New in v2.0" section
125
+ - Complete Room Management API documentation
126
+ - Complete Agent Room Management API documentation
127
+ - Updated event system documentation with all new events
128
+ - Code examples for all new features
129
+ - Updated test count and status
130
+
131
+ ### 🔐 Security
132
+
133
+ - Ownership verification for all room CRUD operations
134
+ - Ownership verification for agent-room operations
135
+ - Validation of room and agent IDs before operations
136
+ - Room existence checks before operations
137
+
138
+ ### ⚡ Performance
139
+
140
+ - 5-minute cache TTL for agent room queries
141
+ - Automatic cache invalidation on updates
142
+ - Intelligent cache management per room
143
+ - Defensive copying to prevent cache mutation
144
+ - Synchronous query methods for instant cache access
145
+
146
+ ---
147
+
148
+ ## [1.0.2] - 2025-10-XX
149
+
150
+ ### Fixed
151
+
152
+ - Minor bug fixes and improvements
153
+
154
+ ---
155
+
156
+ ## [1.0.0] - 2025-10-XX
157
+
158
+ ### Initial Release
159
+
160
+ - WebSocket connection management
161
+ - Ethereum wallet authentication (challenge-response)
162
+ - Agent discovery and listing
163
+ - Message sending to agents
164
+ - Event-driven architecture
165
+ - Room subscription/unsubscription
166
+ - Webhook integration with circuit breaker
167
+ - Retry strategies (exponential, linear, constant)
168
+ - Message deduplication
169
+ - Signature verification
170
+ - Rate limiting
171
+ - Secure private key management (AES-256-GCM encryption)
172
+ - Comprehensive error handling
173
+ - TypeScript support
174
+ - 488 unit tests
175
+
176
+ ---
177
+
178
+ ## Migration Guide
179
+
180
+ ### Upgrading from v1.x to v2.0
181
+
182
+ Version 2.0 is **backward compatible** with v1.x for basic operations. However, to take advantage of new features:
183
+
184
+ #### 1. Update Package Version
185
+
186
+ ```bash
187
+ pnpm install @teneo-protocol/sdk@2.0.0
188
+ ```
189
+
190
+ #### 2. Room Management (New Features)
191
+
192
+ **Before (v1.x):** Single room subscription
193
+
194
+ ```typescript
195
+ await sdk.subscribeToRoom("room-id");
196
+ ```
197
+
198
+ **After (v2.0):** Create and manage multiple rooms
199
+
200
+ ```typescript
201
+ // Create your own rooms
202
+ const room = await sdk.createRoom("My Room", "Description");
203
+
204
+ // Get all your rooms
205
+ const ownedRooms = sdk.getOwnedRooms();
206
+ const sharedRooms = sdk.getSharedRooms();
207
+
208
+ // Update/delete rooms
209
+ await sdk.updateRoom(room.id, { name: "Updated Name" });
210
+ await sdk.deleteRoom(room.id);
211
+ ```
212
+
213
+ #### 3. Agent Customization (New Features)
214
+
215
+ **New in v2.0:** Customize which agents are in each room
216
+
217
+ ```typescript
218
+ // List available agents for a room
219
+ const available = await sdk.listAvailableAgents(room.id);
220
+
221
+ // Add specific agents
222
+ await sdk.addAgentToRoom(room.id, "agent-id");
223
+
224
+ // List agents in room
225
+ const roomAgents = await sdk.listRoomAgents(room.id);
226
+
227
+ // Remove agents
228
+ await sdk.removeAgentFromRoom(room.id, "agent-id");
229
+ ```
230
+
231
+ #### 4. Type Changes
232
+
233
+ If you're using TypeScript and accessing agent data directly:
234
+
235
+ **Capability field name changed:**
236
+
237
+ ```typescript
238
+ // Before: agent.capabilities[0].type
239
+ // After: agent.capabilities[0].name
240
+ ```
241
+
242
+ **Command field name changed:**
243
+
244
+ ```typescript
245
+ // Before: agent.commands[0].command
246
+ // After: agent.commands[0].trigger
247
+ ```
248
+
249
+ #### 5. No Breaking Changes
250
+
251
+ All v1.x APIs continue to work:
252
+
253
+ - ✅ `connect()`, `disconnect()`
254
+ - ✅ `sendMessage()`
255
+ - ✅ `subscribeToRoom()`, `unsubscribeFromRoom()`
256
+ - ✅ `getAgents()`, `getAgent()`
257
+ - ✅ All existing events
258
+
259
+ ---
260
+
261
+ ## Support
262
+
263
+ - 📖 [Documentation](https://github.com/TeneoProtocolAI/teneo-sdk)
264
+ - 🐛 [Issue Tracker](https://github.com/TeneoProtocolAI/teneo-sdk/issues)
265
+ - 💬 [Discussions](https://github.com/TeneoProtocolAI/teneo-sdk/discussions)