@teneo-protocol/sdk 1.0.1 → 2.2.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 (352) hide show
  1. package/.eslintrc.json +11 -2
  2. package/.github/CODEOWNERS +2 -0
  3. package/.github/ISSUE_TEMPLATE/01-bug.yml +85 -0
  4. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  6. package/.github/workflows/claude-code-review.yml +8 -3
  7. package/.github/workflows/claude-reviewer.yml +6 -4
  8. package/.github/workflows/publish-npm.yml +9 -6
  9. package/.github/workflows/push-to-main.yml +1 -1
  10. package/.github/workflows/top-issue.yml +102 -0
  11. package/CHANGELOG.md +334 -0
  12. package/CONCEPTS.md +747 -0
  13. package/README.md +577 -54
  14. package/dist/constants.js +8 -8
  15. package/dist/constants.js.map +1 -1
  16. package/dist/core/websocket-client.d.ts +25 -1
  17. package/dist/core/websocket-client.d.ts.map +1 -1
  18. package/dist/core/websocket-client.js +74 -15
  19. package/dist/core/websocket-client.js.map +1 -1
  20. package/dist/formatters/response-formatter.js +4 -0
  21. package/dist/formatters/response-formatter.js.map +1 -1
  22. package/dist/handlers/message-handler-registry.js +2 -1
  23. package/dist/handlers/message-handler-registry.js.map +1 -1
  24. package/dist/handlers/message-handlers/agent-details-response-handler.d.ts +1666 -0
  25. package/dist/handlers/message-handlers/agent-details-response-handler.d.ts.map +1 -0
  26. package/dist/handlers/message-handlers/agent-details-response-handler.js +38 -0
  27. package/dist/handlers/message-handlers/agent-details-response-handler.js.map +1 -0
  28. package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts +76 -0
  29. package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -0
  30. package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +67 -0
  31. package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -0
  32. package/dist/handlers/message-handlers/agent-selected-handler.d.ts +92 -38
  33. package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -1
  34. package/dist/handlers/message-handlers/agent-selected-handler.js +2 -5
  35. package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -1
  36. package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +1687 -0
  37. package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -0
  38. package/dist/handlers/message-handlers/agent-status-update-handler.js +48 -0
  39. package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -0
  40. package/dist/handlers/message-handlers/agents-list-handler.js +2 -5
  41. package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -1
  42. package/dist/handlers/message-handlers/all-agents-response-handler.d.ts +439 -0
  43. package/dist/handlers/message-handlers/all-agents-response-handler.d.ts.map +1 -0
  44. package/dist/handlers/message-handlers/all-agents-response-handler.js +36 -0
  45. package/dist/handlers/message-handlers/all-agents-response-handler.js.map +1 -0
  46. package/dist/handlers/message-handlers/auth-error-handler.d.ts +45 -31
  47. package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -1
  48. package/dist/handlers/message-handlers/auth-error-handler.js +2 -5
  49. package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -1
  50. package/dist/handlers/message-handlers/auth-message-handler.d.ts +6 -0
  51. package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
  52. package/dist/handlers/message-handlers/auth-message-handler.js +71 -10
  53. package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
  54. package/dist/handlers/message-handlers/auth-required-handler.d.ts +49 -31
  55. package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -1
  56. package/dist/handlers/message-handlers/auth-required-handler.js +2 -5
  57. package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -1
  58. package/dist/handlers/message-handlers/auth-success-handler.d.ts +6 -0
  59. package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
  60. package/dist/handlers/message-handlers/auth-success-handler.js +52 -9
  61. package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
  62. package/dist/handlers/message-handlers/base-handler.d.ts +4 -4
  63. package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -1
  64. package/dist/handlers/message-handlers/base-handler.js +3 -1
  65. package/dist/handlers/message-handlers/base-handler.js.map +1 -1
  66. package/dist/handlers/message-handlers/challenge-handler.d.ts +45 -31
  67. package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -1
  68. package/dist/handlers/message-handlers/challenge-handler.js +3 -2
  69. package/dist/handlers/message-handlers/challenge-handler.js.map +1 -1
  70. package/dist/handlers/message-handlers/error-message-handler.d.ts +49 -31
  71. package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -1
  72. package/dist/handlers/message-handlers/error-message-handler.js +2 -5
  73. package/dist/handlers/message-handlers/error-message-handler.js.map +1 -1
  74. package/dist/handlers/message-handlers/index.d.ts +11 -0
  75. package/dist/handlers/message-handlers/index.d.ts.map +1 -1
  76. package/dist/handlers/message-handlers/index.js +55 -1
  77. package/dist/handlers/message-handlers/index.js.map +1 -1
  78. package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +1660 -0
  79. package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -0
  80. package/dist/handlers/message-handlers/list-available-agents-handler.js +35 -0
  81. package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -0
  82. package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +1669 -0
  83. package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -0
  84. package/dist/handlers/message-handlers/list-room-agents-handler.js +48 -0
  85. package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -0
  86. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +2 -110
  87. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
  88. package/dist/handlers/message-handlers/list-rooms-response-handler.js +4 -6
  89. package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -1
  90. package/dist/handlers/message-handlers/ping-pong-handler.d.ts +62 -58
  91. package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -1
  92. package/dist/handlers/message-handlers/ping-pong-handler.js +4 -10
  93. package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -1
  94. package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts +94 -0
  95. package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts.map +1 -0
  96. package/dist/handlers/message-handlers/rate-limit-notification-handler.js +35 -0
  97. package/dist/handlers/message-handlers/rate-limit-notification-handler.js.map +1 -0
  98. package/dist/handlers/message-handlers/regular-message-handler.d.ts +31 -29
  99. package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
  100. package/dist/handlers/message-handlers/regular-message-handler.js +4 -6
  101. package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -1
  102. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts +328 -0
  103. package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -0
  104. package/dist/handlers/message-handlers/room-operation-response-handler.js +89 -0
  105. package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -0
  106. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +53 -31
  107. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
  108. package/dist/handlers/message-handlers/subscribe-response-handler.js +4 -6
  109. package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -1
  110. package/dist/handlers/message-handlers/task-quote-handler.d.ts +14 -0
  111. package/dist/handlers/message-handlers/task-quote-handler.d.ts.map +1 -0
  112. package/dist/handlers/message-handlers/task-quote-handler.js +29 -0
  113. package/dist/handlers/message-handlers/task-quote-handler.js.map +1 -0
  114. package/dist/handlers/message-handlers/task-response-handler.js +2 -5
  115. package/dist/handlers/message-handlers/task-response-handler.js.map +1 -1
  116. package/dist/handlers/message-handlers/types.d.ts +21 -7
  117. package/dist/handlers/message-handlers/types.d.ts.map +1 -1
  118. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +53 -31
  119. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
  120. package/dist/handlers/message-handlers/unsubscribe-response-handler.js +4 -6
  121. package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -1
  122. package/dist/handlers/message-handlers/user-authenticated-handler.d.ts +40 -0
  123. package/dist/handlers/message-handlers/user-authenticated-handler.d.ts.map +1 -0
  124. package/dist/handlers/message-handlers/user-authenticated-handler.js +28 -0
  125. package/dist/handlers/message-handlers/user-authenticated-handler.js.map +1 -0
  126. package/dist/handlers/message-handlers/user-count-handler.d.ts +49 -0
  127. package/dist/handlers/message-handlers/user-count-handler.d.ts.map +1 -0
  128. package/dist/handlers/message-handlers/user-count-handler.js +31 -0
  129. package/dist/handlers/message-handlers/user-count-handler.js.map +1 -0
  130. package/dist/handlers/webhook-handler.d.ts +1 -1
  131. package/dist/handlers/webhook-handler.d.ts.map +1 -1
  132. package/dist/handlers/webhook-handler.js +14 -5
  133. package/dist/handlers/webhook-handler.js.map +1 -1
  134. package/dist/index.d.ts +6 -1
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +19 -2
  137. package/dist/index.js.map +1 -1
  138. package/dist/managers/admin-manager.d.ts +116 -0
  139. package/dist/managers/admin-manager.d.ts.map +1 -0
  140. package/dist/managers/admin-manager.js +169 -0
  141. package/dist/managers/admin-manager.js.map +1 -0
  142. package/dist/managers/agent-registry.d.ts +52 -1
  143. package/dist/managers/agent-registry.d.ts.map +1 -1
  144. package/dist/managers/agent-registry.js +145 -6
  145. package/dist/managers/agent-registry.js.map +1 -1
  146. package/dist/managers/agent-room-manager.d.ts +216 -0
  147. package/dist/managers/agent-room-manager.d.ts.map +1 -0
  148. package/dist/managers/agent-room-manager.js +555 -0
  149. package/dist/managers/agent-room-manager.js.map +1 -0
  150. package/dist/managers/connection-manager.js +2 -0
  151. package/dist/managers/connection-manager.js.map +1 -1
  152. package/dist/managers/index.d.ts +4 -1
  153. package/dist/managers/index.d.ts.map +1 -1
  154. package/dist/managers/index.js +7 -1
  155. package/dist/managers/index.js.map +1 -1
  156. package/dist/managers/message-router.d.ts +56 -5
  157. package/dist/managers/message-router.d.ts.map +1 -1
  158. package/dist/managers/message-router.js +155 -8
  159. package/dist/managers/message-router.js.map +1 -1
  160. package/dist/managers/room-management-manager.d.ts +213 -0
  161. package/dist/managers/room-management-manager.d.ts.map +1 -0
  162. package/dist/managers/room-management-manager.js +442 -0
  163. package/dist/managers/room-management-manager.js.map +1 -0
  164. package/dist/managers/room-manager.d.ts +11 -9
  165. package/dist/managers/room-manager.d.ts.map +1 -1
  166. package/dist/managers/room-manager.js +14 -10
  167. package/dist/managers/room-manager.js.map +1 -1
  168. package/dist/payments/index.d.ts +5 -0
  169. package/dist/payments/index.d.ts.map +1 -0
  170. package/dist/payments/index.js +21 -0
  171. package/dist/payments/index.js.map +1 -0
  172. package/dist/payments/payment-client.d.ts +74 -0
  173. package/dist/payments/payment-client.d.ts.map +1 -0
  174. package/dist/payments/payment-client.js +207 -0
  175. package/dist/payments/payment-client.js.map +1 -0
  176. package/dist/teneo-sdk.d.ts +467 -33
  177. package/dist/teneo-sdk.d.ts.map +1 -1
  178. package/dist/teneo-sdk.js +735 -26
  179. package/dist/teneo-sdk.js.map +1 -1
  180. package/dist/types/categories.d.ts +22 -0
  181. package/dist/types/categories.d.ts.map +1 -0
  182. package/dist/types/categories.js +40 -0
  183. package/dist/types/categories.js.map +1 -0
  184. package/dist/types/config.d.ts +134 -54
  185. package/dist/types/config.d.ts.map +1 -1
  186. package/dist/types/config.js +70 -9
  187. package/dist/types/config.js.map +1 -1
  188. package/dist/types/error-codes.d.ts +10 -0
  189. package/dist/types/error-codes.d.ts.map +1 -1
  190. package/dist/types/error-codes.js +12 -0
  191. package/dist/types/error-codes.js.map +1 -1
  192. package/dist/types/events.d.ts +176 -68
  193. package/dist/types/events.d.ts.map +1 -1
  194. package/dist/types/events.js +19 -1
  195. package/dist/types/events.js.map +1 -1
  196. package/dist/types/index.d.ts +3 -2
  197. package/dist/types/index.d.ts.map +1 -1
  198. package/dist/types/index.js +57 -2
  199. package/dist/types/index.js.map +1 -1
  200. package/dist/types/messages.d.ts +22225 -2592
  201. package/dist/types/messages.d.ts.map +1 -1
  202. package/dist/types/messages.js +537 -28
  203. package/dist/types/messages.js.map +1 -1
  204. package/dist/utils/bounded-queue.d.ts.map +1 -1
  205. package/dist/utils/bounded-queue.js +5 -2
  206. package/dist/utils/bounded-queue.js.map +1 -1
  207. package/dist/utils/circuit-breaker.js +11 -4
  208. package/dist/utils/circuit-breaker.js.map +1 -1
  209. package/dist/utils/deduplication-cache.js +3 -1
  210. package/dist/utils/deduplication-cache.js.map +1 -1
  211. package/dist/utils/event-waiter.d.ts +3 -3
  212. package/dist/utils/event-waiter.d.ts.map +1 -1
  213. package/dist/utils/index.d.ts +1 -0
  214. package/dist/utils/index.d.ts.map +1 -1
  215. package/dist/utils/index.js +4 -1
  216. package/dist/utils/index.js.map +1 -1
  217. package/dist/utils/logger.js.map +1 -1
  218. package/dist/utils/pricing-resolver.d.ts +26 -0
  219. package/dist/utils/pricing-resolver.d.ts.map +1 -0
  220. package/dist/utils/pricing-resolver.js +85 -0
  221. package/dist/utils/pricing-resolver.js.map +1 -0
  222. package/dist/utils/rate-limiter.d.ts.map +1 -1
  223. package/dist/utils/rate-limiter.js +6 -0
  224. package/dist/utils/rate-limiter.js.map +1 -1
  225. package/dist/utils/retry-policy.js +1 -0
  226. package/dist/utils/retry-policy.js.map +1 -1
  227. package/dist/utils/secure-private-key.js +3 -1
  228. package/dist/utils/secure-private-key.js.map +1 -1
  229. package/dist/utils/signature-verifier.d.ts.map +1 -1
  230. package/dist/utils/signature-verifier.js +3 -1
  231. package/dist/utils/signature-verifier.js.map +1 -1
  232. package/examples/.env.example +2 -2
  233. package/examples/agent-room-management-example.ts +335 -0
  234. package/examples/basic-usage.ts +3 -4
  235. package/examples/claude-agent-x-follower/.env.example +3 -3
  236. package/examples/claude-agent-x-follower/QUICKSTART.md +3 -3
  237. package/examples/claude-agent-x-follower/README.md +3 -3
  238. package/examples/claude-agent-x-follower/index.ts +120 -96
  239. package/examples/n8n-teneo/.env.example +3 -3
  240. package/examples/n8n-teneo/README.md +2 -2
  241. package/examples/n8n-teneo/index.ts +54 -44
  242. package/examples/nestjs-dashboard/.env.example +11 -0
  243. package/examples/nestjs-dashboard/README.md +297 -0
  244. package/examples/nestjs-dashboard/nest-cli.json +10 -0
  245. package/examples/nestjs-dashboard/package.json +44 -0
  246. package/examples/nestjs-dashboard/pnpm-lock.yaml +3079 -0
  247. package/examples/nestjs-dashboard/src/app.controller.ts +24 -0
  248. package/examples/nestjs-dashboard/src/app.module.ts +15 -0
  249. package/examples/nestjs-dashboard/src/main.ts +32 -0
  250. package/examples/nestjs-dashboard/src/public/dashboard.html +1144 -0
  251. package/examples/nestjs-dashboard/src/teneo/agents.controller.ts +54 -0
  252. package/examples/nestjs-dashboard/src/teneo/events.controller.ts +65 -0
  253. package/examples/nestjs-dashboard/src/teneo/messages.controller.ts +47 -0
  254. package/examples/nestjs-dashboard/src/teneo/rooms.controller.ts +258 -0
  255. package/examples/nestjs-dashboard/src/teneo/teneo.module.ts +13 -0
  256. package/examples/nestjs-dashboard/src/teneo/teneo.service.ts +484 -0
  257. package/examples/nestjs-dashboard/tsconfig.json +22 -0
  258. package/examples/openai-teneo/.env.example +3 -3
  259. package/examples/openai-teneo/README.md +3 -3
  260. package/examples/openai-teneo/index.ts +82 -71
  261. package/examples/production-dashboard/.env.example +3 -3
  262. package/examples/production-dashboard/README.md +90 -13
  263. package/examples/production-dashboard/public/dashboard.html +1173 -601
  264. package/examples/production-dashboard/server.ts +349 -7
  265. package/examples/room-management-example.ts +282 -0
  266. package/examples/usage/.env.example +2 -2
  267. package/examples/usage/01-connect.ts +3 -4
  268. package/examples/usage/02-list-agents.ts +2 -3
  269. package/examples/usage/03-pick-agent.ts +2 -3
  270. package/examples/usage/04-find-by-capability.ts +2 -3
  271. package/examples/usage/05-webhook-example.ts +2 -3
  272. package/examples/usage/06-simple-api-server.ts +2 -3
  273. package/examples/usage/07-event-listener.ts +2 -3
  274. package/examples/usage/README.md +1 -1
  275. package/examples/webhook-integration.ts +1 -1
  276. package/examples/x-influencer-battle-server.ts +2 -2
  277. package/package.json +12 -1
  278. package/src/core/websocket-client.test.ts +8 -3
  279. package/src/core/websocket-client.ts +58 -4
  280. package/src/formatters/response-formatter.test.ts +2 -0
  281. package/src/formatters/response-formatter.ts +3 -3
  282. package/src/handlers/message-handlers/agent-details-response-handler.ts +42 -0
  283. package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +77 -0
  284. package/src/handlers/message-handlers/agent-status-update-handler.ts +52 -0
  285. package/src/handlers/message-handlers/all-agents-response-handler.ts +39 -0
  286. package/src/handlers/message-handlers/auth-message-handler.ts +78 -5
  287. package/src/handlers/message-handlers/auth-success-handler.ts +63 -6
  288. package/src/handlers/message-handlers/base-handler.ts +20 -7
  289. package/src/handlers/message-handlers/index.ts +53 -0
  290. package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
  291. package/src/handlers/message-handlers/list-room-agents-handler.ts +58 -0
  292. package/src/handlers/message-handlers/list-rooms-response-handler.ts +4 -2
  293. package/src/handlers/message-handlers/rate-limit-notification-handler.ts +45 -0
  294. package/src/handlers/message-handlers/regular-message-handler.ts +3 -2
  295. package/src/handlers/message-handlers/room-operation-response-handler.ts +102 -0
  296. package/src/handlers/message-handlers/subscribe-response-handler.ts +12 -2
  297. package/src/handlers/message-handlers/task-quote-handler.ts +31 -0
  298. package/src/handlers/message-handlers/types.ts +41 -7
  299. package/src/handlers/message-handlers/unsubscribe-response-handler.ts +12 -2
  300. package/src/handlers/message-handlers/user-authenticated-handler.ts +31 -0
  301. package/src/handlers/message-handlers/user-count-handler.ts +34 -0
  302. package/src/handlers/webhook-handler.test.ts +3 -2
  303. package/src/handlers/webhook-handler.ts +13 -7
  304. package/src/index.ts +21 -0
  305. package/src/managers/admin-manager.ts +249 -0
  306. package/src/managers/agent-registry.test.ts +2 -1
  307. package/src/managers/agent-registry.ts +170 -2
  308. package/src/managers/agent-room-manager.ts +665 -0
  309. package/src/managers/index.ts +15 -1
  310. package/src/managers/message-router.ts +215 -17
  311. package/src/managers/room-management-manager.ts +520 -0
  312. package/src/managers/room-manager.ts +15 -20
  313. package/src/payments/index.ts +22 -0
  314. package/src/payments/payment-client.ts +240 -0
  315. package/src/teneo-sdk.ts +806 -30
  316. package/src/types/categories.ts +45 -0
  317. package/src/types/config.ts +80 -7
  318. package/src/types/error-codes.ts +14 -0
  319. package/src/types/events.test.ts +1 -0
  320. package/src/types/events.ts +67 -0
  321. package/src/types/index.ts +111 -0
  322. package/src/types/messages.test.ts +2 -1
  323. package/src/types/messages.ts +677 -42
  324. package/src/utils/bounded-queue.test.ts +1 -1
  325. package/src/utils/bounded-queue.ts +2 -1
  326. package/src/utils/circuit-breaker.test.ts +1 -1
  327. package/src/utils/deduplication-cache.test.ts +1 -1
  328. package/src/utils/event-waiter.test.ts +1 -1
  329. package/src/utils/event-waiter.ts +3 -3
  330. package/src/utils/index.ts +7 -0
  331. package/src/utils/logger.ts +8 -8
  332. package/src/utils/pricing-resolver.ts +128 -0
  333. package/src/utils/rate-limiter.test.ts +1 -1
  334. package/src/utils/rate-limiter.ts +1 -0
  335. package/src/utils/signature-verifier.test.ts +2 -2
  336. package/src/utils/signature-verifier.ts +3 -2
  337. package/tests/.env.example +7 -0
  338. package/tests/direct-agent-test.ts +151 -0
  339. package/tests/integration/real-server.test.ts +2 -0
  340. package/tests/integration/room-management.test.ts +516 -0
  341. package/tests/integration/websocket.test.ts +5 -2
  342. package/tests/payment-flow-test.ts +147 -0
  343. package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +382 -0
  344. package/tests/unit/handlers/agent-status-update-handler.test.ts +403 -0
  345. package/tests/unit/handlers/auth-success-handler-rooms.test.ts +697 -0
  346. package/tests/unit/handlers/list-available-agents-handler.test.ts +248 -0
  347. package/tests/unit/handlers/list-room-agents-handler.test.ts +290 -0
  348. package/tests/unit/handlers/room-operation-response-handler.test.ts +500 -0
  349. package/tests/unit/managers/agent-room-manager.test.ts +527 -0
  350. package/tests/unit/managers/room-management-manager.test.ts +420 -0
  351. package/tsconfig.json +2 -2
  352. package/vitest.config.ts +1 -0
@@ -0,0 +1,442 @@
1
+ "use strict";
2
+ /**
3
+ * RoomManagementManager - Manages room CRUD operations (v2.0.0)
4
+ * Handles creating, updating, and deleting private rooms
5
+ * Tracks owned vs shared rooms with local caching
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RoomManagementManager = 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
+ class RoomManagementManager extends eventemitter3_1.EventEmitter {
13
+ wsClient;
14
+ logger;
15
+ // Room caches
16
+ ownedRooms = new Map(); // Rooms user owns
17
+ sharedRooms = new Map(); // Rooms user is member of
18
+ maxPrivateRooms = 1; // Default limit
19
+ constructor(wsClient, logger) {
20
+ super();
21
+ this.wsClient = wsClient;
22
+ this.logger = logger;
23
+ }
24
+ // ============================================================================
25
+ // ROOM CRUD OPERATIONS
26
+ // ============================================================================
27
+ /**
28
+ * Creates a new private room.
29
+ * Checks room limit before creating.
30
+ *
31
+ * @param options - Room creation options
32
+ * @returns Promise that resolves when room is created
33
+ * @throws {SDKError} If not connected, over limit, or validation fails
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * const room = await sdk.rooms.createRoom({
38
+ * name: 'My Private Room',
39
+ * description: 'A room for my project'
40
+ * });
41
+ * console.log(`Created room: ${room.id}`);
42
+ * ```
43
+ */
44
+ async createRoom(options) {
45
+ if (!this.wsClient.isConnected) {
46
+ throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
47
+ }
48
+ // Validate inputs
49
+ this.validateRoomName(options.name);
50
+ if (options.description !== undefined) {
51
+ this.validateRoomDescription(options.description);
52
+ }
53
+ // Check room limit
54
+ if (!this.canCreateRoom()) {
55
+ throw new events_1.SDKError(`Room limit reached. Maximum ${this.maxPrivateRooms} private rooms allowed.`, error_codes_1.ErrorCode.VALIDATION_ERROR);
56
+ }
57
+ this.logger.debug("RoomManagementManager: Creating room", options);
58
+ // Send create_room message
59
+ const message = {
60
+ type: "create_room",
61
+ data: {
62
+ name: options.name,
63
+ description: options.description
64
+ }
65
+ };
66
+ // Return promise that will be resolved by the response handler
67
+ return new Promise((resolve, reject) => {
68
+ const timeout = setTimeout(() => {
69
+ cleanup();
70
+ reject(new events_1.SDKError("Room creation timeout", error_codes_1.ErrorCode.TIMEOUT));
71
+ }, 30000);
72
+ const onSuccess = (room) => {
73
+ cleanup();
74
+ resolve(room);
75
+ };
76
+ const onError = (error) => {
77
+ cleanup();
78
+ reject(error);
79
+ };
80
+ const cleanup = () => {
81
+ clearTimeout(timeout);
82
+ this.off("room:created", onSuccess);
83
+ this.off("room:create_error", onError);
84
+ };
85
+ this.once("room:created", onSuccess);
86
+ this.once("room:create_error", onError);
87
+ this.wsClient.sendMessage(message);
88
+ });
89
+ }
90
+ /**
91
+ * Updates an existing room's name and/or description.
92
+ * User must own the room to update it.
93
+ *
94
+ * @param roomId - ID of room to update
95
+ * @param updates - Fields to update
96
+ * @returns Promise that resolves when room is updated
97
+ * @throws {SDKError} If not connected, not owner, or validation fails
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * await sdk.rooms.updateRoom('room-123', {
102
+ * name: 'Updated Room Name',
103
+ * description: 'New description'
104
+ * });
105
+ * ```
106
+ */
107
+ async updateRoom(roomId, updates) {
108
+ if (!this.wsClient.isConnected) {
109
+ throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
110
+ }
111
+ // Verify user owns room
112
+ if (!this.ownedRooms.has(roomId)) {
113
+ throw new events_1.SDKError("Cannot update room: You don't own this room", error_codes_1.ErrorCode.PERMISSION_DENIED);
114
+ }
115
+ // Validate at least one field is provided
116
+ if (updates.name === undefined && updates.description === undefined) {
117
+ throw new events_1.SDKError("At least one field (name or description) must be provided", error_codes_1.ErrorCode.VALIDATION_ERROR);
118
+ }
119
+ // Validate inputs
120
+ if (updates.name !== undefined) {
121
+ this.validateRoomName(updates.name);
122
+ }
123
+ if (updates.description !== undefined) {
124
+ this.validateRoomDescription(updates.description);
125
+ }
126
+ this.logger.debug("RoomManagementManager: Updating room", { roomId, updates });
127
+ // Send update_room message
128
+ const message = {
129
+ type: "update_room",
130
+ data: {
131
+ room_id: roomId,
132
+ name: updates.name,
133
+ description: updates.description
134
+ }
135
+ };
136
+ return new Promise((resolve, reject) => {
137
+ const timeout = setTimeout(() => {
138
+ cleanup();
139
+ reject(new events_1.SDKError("Room update timeout", error_codes_1.ErrorCode.TIMEOUT));
140
+ }, 30000);
141
+ const onSuccess = (room) => {
142
+ // Only resolve if it's the room we're updating
143
+ if (room.id === roomId) {
144
+ cleanup();
145
+ resolve(room);
146
+ }
147
+ };
148
+ const onError = (error, responseRoomId) => {
149
+ if (!responseRoomId || responseRoomId === roomId) {
150
+ cleanup();
151
+ reject(error);
152
+ }
153
+ };
154
+ const cleanup = () => {
155
+ clearTimeout(timeout);
156
+ this.off("room:updated", onSuccess);
157
+ this.off("room:update_error", onError);
158
+ };
159
+ this.once("room:updated", onSuccess);
160
+ this.once("room:update_error", onError);
161
+ this.wsClient.sendMessage(message);
162
+ });
163
+ }
164
+ /**
165
+ * Deletes a room permanently.
166
+ * User must own the room to delete it.
167
+ *
168
+ * @param roomId - ID of room to delete
169
+ * @returns Promise that resolves when room is deleted
170
+ * @throws {SDKError} If not connected or not owner
171
+ *
172
+ * @example
173
+ * ```typescript
174
+ * await sdk.rooms.deleteRoom('room-123');
175
+ * console.log('Room deleted successfully');
176
+ * ```
177
+ */
178
+ async deleteRoom(roomId) {
179
+ if (!this.wsClient.isConnected) {
180
+ throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
181
+ }
182
+ // Verify user owns room
183
+ if (!this.ownedRooms.has(roomId)) {
184
+ throw new events_1.SDKError("Cannot delete room: You don't own this room", error_codes_1.ErrorCode.PERMISSION_DENIED);
185
+ }
186
+ this.logger.debug("RoomManagementManager: Deleting room", { roomId });
187
+ // Send delete_room message
188
+ const message = {
189
+ type: "delete_room",
190
+ data: {
191
+ room_id: roomId
192
+ }
193
+ };
194
+ return new Promise((resolve, reject) => {
195
+ const timeout = setTimeout(() => {
196
+ cleanup();
197
+ reject(new events_1.SDKError("Room deletion timeout", error_codes_1.ErrorCode.TIMEOUT));
198
+ }, 30000);
199
+ const onSuccess = (deletedRoomId) => {
200
+ if (deletedRoomId === roomId) {
201
+ cleanup();
202
+ resolve();
203
+ }
204
+ };
205
+ const onError = (error, responseRoomId) => {
206
+ if (!responseRoomId || responseRoomId === roomId) {
207
+ cleanup();
208
+ reject(error);
209
+ }
210
+ };
211
+ const cleanup = () => {
212
+ clearTimeout(timeout);
213
+ this.off("room:deleted", onSuccess);
214
+ this.off("room:delete_error", onError);
215
+ };
216
+ this.once("room:deleted", onSuccess);
217
+ this.once("room:delete_error", onError);
218
+ this.wsClient.sendMessage(message);
219
+ });
220
+ }
221
+ // ============================================================================
222
+ // QUERY METHODS (Synchronous, from cache)
223
+ // ============================================================================
224
+ /**
225
+ * Gets all rooms owned by the current user.
226
+ * Synchronous method that returns cached data.
227
+ *
228
+ * @returns Array of owned room info
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const myRooms = sdk.rooms.getOwnedRooms();
233
+ * console.log(`I own ${myRooms.length} rooms`);
234
+ * ```
235
+ */
236
+ getOwnedRooms() {
237
+ return Array.from(this.ownedRooms.values()).map((room) => ({ ...room }));
238
+ }
239
+ /**
240
+ * Gets all rooms the user is a member of (but doesn't own).
241
+ * Synchronous method that returns cached data.
242
+ *
243
+ * @returns Array of shared room info
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const sharedRooms = sdk.rooms.getSharedRooms();
248
+ * console.log(`I'm a member of ${sharedRooms.length} shared rooms`);
249
+ * ```
250
+ */
251
+ getSharedRooms() {
252
+ return Array.from(this.sharedRooms.values()).map((room) => ({ ...room }));
253
+ }
254
+ /**
255
+ * Gets all rooms the user has access to (both owned and shared).
256
+ * Convenience method that combines getOwnedRooms() and getSharedRooms().
257
+ * Synchronous method that returns cached data.
258
+ *
259
+ * @returns Array of all room info (owned + shared)
260
+ *
261
+ * @example
262
+ * ```typescript
263
+ * const allRooms = sdk.getAllRooms();
264
+ * console.log(`I have access to ${allRooms.length} total rooms`);
265
+ *
266
+ * // Filter by ownership if needed
267
+ * const myRooms = allRooms.filter(r => r.is_owner);
268
+ * const sharedWithMe = allRooms.filter(r => !r.is_owner);
269
+ * ```
270
+ */
271
+ getAllRooms() {
272
+ return [...this.getOwnedRooms(), ...this.getSharedRooms()];
273
+ }
274
+ /**
275
+ * Gets a specific room by ID.
276
+ * Checks both owned and shared room caches.
277
+ *
278
+ * @param roomId - Room ID to look up
279
+ * @returns Room info if found, undefined otherwise
280
+ *
281
+ * @example
282
+ * ```typescript
283
+ * const room = sdk.rooms.getRoomById('room-123');
284
+ * if (room) {
285
+ * console.log(`Room: ${room.name}`);
286
+ * }
287
+ * ```
288
+ */
289
+ getRoomById(roomId) {
290
+ const owned = this.ownedRooms.get(roomId);
291
+ if (owned)
292
+ return { ...owned };
293
+ const shared = this.sharedRooms.get(roomId);
294
+ if (shared)
295
+ return { ...shared };
296
+ return undefined;
297
+ }
298
+ /**
299
+ * Gets the maximum number of private rooms the user can create.
300
+ * Based on user's subscription/plan.
301
+ *
302
+ * @returns Maximum private room limit
303
+ *
304
+ * @example
305
+ * ```typescript
306
+ * const limit = sdk.rooms.getRoomLimit();
307
+ * console.log(`You can create up to ${limit} private rooms`);
308
+ * ```
309
+ */
310
+ getRoomLimit() {
311
+ return this.maxPrivateRooms;
312
+ }
313
+ /**
314
+ * Checks if user can create another private room.
315
+ * Compares current owned room count against limit.
316
+ *
317
+ * @returns True if under limit, false otherwise
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * if (sdk.rooms.canCreateRoom()) {
322
+ * await sdk.rooms.createRoom({ name: 'New Room' });
323
+ * } else {
324
+ * console.log('Room limit reached!');
325
+ * }
326
+ * ```
327
+ */
328
+ canCreateRoom() {
329
+ return this.ownedRooms.size < this.maxPrivateRooms;
330
+ }
331
+ /**
332
+ * Gets the current count of owned private rooms.
333
+ *
334
+ * @returns Number of rooms user owns
335
+ *
336
+ * @example
337
+ * ```typescript
338
+ * const count = sdk.rooms.getOwnedRoomCount();
339
+ * const limit = sdk.rooms.getRoomLimit();
340
+ * console.log(`Using ${count}/${limit} room slots`);
341
+ * ```
342
+ */
343
+ getOwnedRoomCount() {
344
+ return this.ownedRooms.size;
345
+ }
346
+ // ============================================================================
347
+ // INTERNAL METHODS (Called by SDK internals)
348
+ // ============================================================================
349
+ /**
350
+ * Sets the room limit from auth response.
351
+ * @internal
352
+ */
353
+ setRoomLimit(limit) {
354
+ this.maxPrivateRooms = limit;
355
+ this.logger.debug("RoomManagementManager: Room limit set", { limit });
356
+ }
357
+ /**
358
+ * Initializes owned rooms cache from auth response.
359
+ * @internal
360
+ */
361
+ setOwnedRooms(rooms) {
362
+ this.ownedRooms.clear();
363
+ for (const room of rooms) {
364
+ this.ownedRooms.set(room.id, room);
365
+ }
366
+ this.logger.debug("RoomManagementManager: Owned rooms set", { count: rooms.length });
367
+ }
368
+ /**
369
+ * Initializes shared rooms cache from auth response.
370
+ * @internal
371
+ */
372
+ setSharedRooms(rooms) {
373
+ this.sharedRooms.clear();
374
+ for (const room of rooms) {
375
+ this.sharedRooms.set(room.id, room);
376
+ }
377
+ this.logger.debug("RoomManagementManager: Shared rooms set", { count: rooms.length });
378
+ }
379
+ /**
380
+ * Adds or updates a room in the appropriate cache.
381
+ * Determines owned vs shared based on is_owner flag.
382
+ * @internal
383
+ */
384
+ upsertRoom(room) {
385
+ if (room.is_owner) {
386
+ this.ownedRooms.set(room.id, room);
387
+ // Remove from shared if it was there
388
+ this.sharedRooms.delete(room.id);
389
+ this.logger.debug("RoomManagementManager: Upserted owned room", { roomId: room.id });
390
+ }
391
+ else {
392
+ this.sharedRooms.set(room.id, room);
393
+ // Remove from owned if it was there
394
+ this.ownedRooms.delete(room.id);
395
+ this.logger.debug("RoomManagementManager: Upserted shared room", { roomId: room.id });
396
+ }
397
+ }
398
+ /**
399
+ * Removes a room from cache.
400
+ * Checks both owned and shared caches.
401
+ * @internal
402
+ */
403
+ removeRoom(roomId) {
404
+ const wasOwned = this.ownedRooms.delete(roomId);
405
+ const wasShared = this.sharedRooms.delete(roomId);
406
+ if (wasOwned || wasShared) {
407
+ this.logger.debug("RoomManagementManager: Removed room", {
408
+ roomId,
409
+ wasOwned,
410
+ wasShared
411
+ });
412
+ }
413
+ }
414
+ /**
415
+ * Clears all caches. Called on disconnect.
416
+ * @internal
417
+ */
418
+ clearCaches() {
419
+ this.ownedRooms.clear();
420
+ this.sharedRooms.clear();
421
+ this.maxPrivateRooms = 1;
422
+ this.logger.debug("RoomManagementManager: Caches cleared");
423
+ }
424
+ // ============================================================================
425
+ // VALIDATION
426
+ // ============================================================================
427
+ validateRoomName(name) {
428
+ if (!name || name.trim().length === 0) {
429
+ throw new events_1.SDKError("Room name cannot be empty", error_codes_1.ErrorCode.VALIDATION_ERROR);
430
+ }
431
+ if (name.length > 100) {
432
+ throw new events_1.SDKError("Room name too long (max 100 characters)", error_codes_1.ErrorCode.VALIDATION_ERROR);
433
+ }
434
+ }
435
+ validateRoomDescription(description) {
436
+ if (description.length > 500) {
437
+ throw new events_1.SDKError("Room description too long (max 500 characters)", error_codes_1.ErrorCode.VALIDATION_ERROR);
438
+ }
439
+ }
440
+ }
441
+ exports.RoomManagementManager = RoomManagementManager;
442
+ //# sourceMappingURL=room-management-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-management-manager.js","sourceRoot":"","sources":["../../src/managers/room-management-manager.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { EventEmitter } from "eventemitter3";
6
6
  import { WebSocketClient } from "../core/websocket-client";
7
- import { Room, Logger, RoomInfo } from "../types";
7
+ import { Logger, RoomInfo } from "../types";
8
8
  import { SDKEvents } from "../types/events";
9
9
  export declare class RoomManager extends EventEmitter<SDKEvents> {
10
10
  private readonly wsClient;
@@ -13,7 +13,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
13
13
  private readonly subscribedRooms;
14
14
  constructor(wsClient: WebSocketClient, logger: Logger);
15
15
  /**
16
- * Subscribes to a public room in the Teneo network.
16
+ * Subscribes to a public room in the Teneo Protocol.
17
17
  * Validates room ID and sends subscribe message to the server.
18
18
  * The actual subscription state is updated when the server confirms via room:subscribed event.
19
19
  *
@@ -30,19 +30,21 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
30
30
  */
31
31
  subscribeToRoom(roomId: string): Promise<void>;
32
32
  /**
33
- * Unsubscribes from a room in the Teneo network.
33
+ * Unsubscribes from a public room in the Teneo Protocol.
34
34
  * Validates room ID and sends unsubscribe message to the server.
35
35
  * The actual subscription state is updated when the server confirms via room:unsubscribed event.
36
36
  *
37
- * @param roomId - The ID of the room to unsubscribe from
37
+ * Note: This only applies to public rooms. Private rooms cannot be unsubscribed from.
38
+ *
39
+ * @param roomId - The ID of the public room to unsubscribe from
38
40
  * @returns Promise that resolves when unsubscribed
39
41
  * @throws {SDKError} If not connected to the network
40
42
  * @throws {ValidationError} If roomId is empty or invalid
41
43
  *
42
44
  * @example
43
45
  * ```typescript
44
- * await roomManager.unsubscribeFromRoom('general');
45
- * console.log('Unsubscription request sent for general room');
46
+ * await roomManager.unsubscribeFromRoom('public-announcements');
47
+ * console.log('Unsubscription request sent for public room');
46
48
  * ```
47
49
  */
48
50
  unsubscribeFromRoom(roomId: string): Promise<void>;
@@ -87,7 +89,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
87
89
  * rooms.forEach(room => console.log(`${room.id}: ${room.name}`));
88
90
  * ```
89
91
  */
90
- getRooms(): ReadonlyArray<Readonly<Room>>;
92
+ getRooms(): ReadonlyArray<Readonly<RoomInfo>>;
91
93
  /**
92
94
  * Gets a specific room by its ID.
93
95
  * Returns a defensive copy to prevent external modification of room state.
@@ -105,7 +107,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
105
107
  * }
106
108
  * ```
107
109
  */
108
- getRoom(roomId: string): Readonly<Room> | undefined;
110
+ getRoom(roomId: string): Readonly<RoomInfo> | undefined;
109
111
  /**
110
112
  * Fetches the list of rooms from the server.
111
113
  * Sends list_rooms message and waits for response from server.
@@ -137,7 +139,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
137
139
  * roomManager.updateRoomsFromAuth(authState.roomObjects);
138
140
  * ```
139
141
  */
140
- updateRoomsFromAuth(rooms: Room[]): void;
142
+ updateRoomsFromAuth(rooms: RoomInfo[]): void;
141
143
  /**
142
144
  * Clears all rooms from the manager.
143
145
  * Clears subscription state.
@@ -1 +1 @@
1
- {"version":3,"file":"room-manager.d.ts","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EACL,IAAI,EAIJ,MAAM,EACN,QAAQ,EACT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAItD,qBAAa,WAAY,SAAQ,YAAY,CAAC,SAAS,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAEzC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;IAMrD;;;;;;;;;;;;;;;OAeG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;;;;;;;;;;;;;;OAeG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D;;;;;;;;;;;;;OAaG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IASzD;;;;;;;;;;;OAWG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;;;;;;;;;;;OAYG;IACI,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAIhD;;;;;;;;;;;;;;;;OAgBG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS;IAK1D;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgB7C;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAQ/C;;;;;;;;;OASG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;;;;;;;OAUG;IACI,OAAO,IAAI,IAAI;CAKvB"}
1
+ {"version":3,"file":"room-manager.d.ts","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAuD,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACjG,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAItD,qBAAa,WAAY,SAAQ,YAAY,CAAC,SAAS,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAEzC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;IAMrD;;;;;;;;;;;;;;;OAeG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;;;;;;;;;;;;;;;;OAiBG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D;;;;;;;;;;;;;OAaG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IASzD;;;;;;;;;;;OAWG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;;;;;;;;;;;OAYG;IACI,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIpD;;;;;;;;;;;;;;;;OAgBG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;IAK9D;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgB7C;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQnD;;;;;;;;;OASG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;;;;;;;OAUG;IACI,OAAO,IAAI,IAAI;CAKvB"}
@@ -11,15 +11,17 @@ const events_1 = require("../types/events");
11
11
  const error_codes_1 = require("../types/error-codes");
12
12
  const validation_1 = require("../types/validation");
13
13
  class RoomManager extends eventemitter3_1.EventEmitter {
14
+ wsClient;
15
+ logger;
16
+ rooms = new Map();
17
+ subscribedRooms = new Set();
14
18
  constructor(wsClient, logger) {
15
19
  super();
16
- this.rooms = new Map();
17
- this.subscribedRooms = new Set();
18
20
  this.wsClient = wsClient;
19
21
  this.logger = logger;
20
22
  }
21
23
  /**
22
- * Subscribes to a public room in the Teneo network.
24
+ * Subscribes to a public room in the Teneo Protocol.
23
25
  * Validates room ID and sends subscribe message to the server.
24
26
  * The actual subscription state is updated when the server confirms via room:subscribed event.
25
27
  *
@@ -36,7 +38,7 @@ class RoomManager extends eventemitter3_1.EventEmitter {
36
38
  */
37
39
  async subscribeToRoom(roomId) {
38
40
  if (!this.wsClient.isConnected) {
39
- throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
41
+ throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
40
42
  }
41
43
  // Validate room ID
42
44
  const validatedRoomId = validation_1.RoomIdSchema.parse(roomId);
@@ -45,24 +47,26 @@ class RoomManager extends eventemitter3_1.EventEmitter {
45
47
  await this.wsClient.sendMessage(message);
46
48
  }
47
49
  /**
48
- * Unsubscribes from a room in the Teneo network.
50
+ * Unsubscribes from a public room in the Teneo Protocol.
49
51
  * Validates room ID and sends unsubscribe message to the server.
50
52
  * The actual subscription state is updated when the server confirms via room:unsubscribed event.
51
53
  *
52
- * @param roomId - The ID of the room to unsubscribe from
54
+ * Note: This only applies to public rooms. Private rooms cannot be unsubscribed from.
55
+ *
56
+ * @param roomId - The ID of the public room to unsubscribe from
53
57
  * @returns Promise that resolves when unsubscribed
54
58
  * @throws {SDKError} If not connected to the network
55
59
  * @throws {ValidationError} If roomId is empty or invalid
56
60
  *
57
61
  * @example
58
62
  * ```typescript
59
- * await roomManager.unsubscribeFromRoom('general');
60
- * console.log('Unsubscription request sent for general room');
63
+ * await roomManager.unsubscribeFromRoom('public-announcements');
64
+ * console.log('Unsubscription request sent for public room');
61
65
  * ```
62
66
  */
63
67
  async unsubscribeFromRoom(roomId) {
64
68
  if (!this.wsClient.isConnected) {
65
- throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
69
+ throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
66
70
  }
67
71
  // Validate room ID
68
72
  const validatedRoomId = validation_1.RoomIdSchema.parse(roomId);
@@ -163,7 +167,7 @@ class RoomManager extends eventemitter3_1.EventEmitter {
163
167
  */
164
168
  async listRooms() {
165
169
  if (!this.wsClient.isConnected) {
166
- throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
170
+ throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
167
171
  }
168
172
  this.logger.info("RoomManager: Listing rooms");
169
173
  const message = (0, types_1.createListRooms)();
@@ -1 +1 @@
1
- {"version":3,"file":"room-manager.js","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-manager.js","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Payment module exports for quote-approve flow (v2.2.0)
3
+ */
4
+ export { PaymentClient, type PaymentClientConfig, USDC_CONTRACT, PEAQ_CHAIN_ID, USDC_DECIMALS, X402_VERSION, DEFAULT_PAYMENT_TIMEOUT_SECONDS, DEFAULT_PAY_TO_ADDRESS, DEFAULT_RPC_URL, buildX402ResourceUrl, usdcToUnits, unitsToUsdc, type SupportedChain } from "./payment-client";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EAExB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,+BAA+B,EAC/B,sBAAsB,EACtB,eAAe,EAEf,oBAAoB,EACpB,WAAW,EACX,WAAW,EAEX,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ /**
3
+ * Payment module exports for quote-approve flow (v2.2.0)
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.unitsToUsdc = exports.usdcToUnits = exports.buildX402ResourceUrl = exports.DEFAULT_RPC_URL = exports.DEFAULT_PAY_TO_ADDRESS = exports.DEFAULT_PAYMENT_TIMEOUT_SECONDS = exports.X402_VERSION = exports.USDC_DECIMALS = exports.PEAQ_CHAIN_ID = exports.USDC_CONTRACT = exports.PaymentClient = void 0;
7
+ var payment_client_1 = require("./payment-client");
8
+ Object.defineProperty(exports, "PaymentClient", { enumerable: true, get: function () { return payment_client_1.PaymentClient; } });
9
+ // Constants
10
+ Object.defineProperty(exports, "USDC_CONTRACT", { enumerable: true, get: function () { return payment_client_1.USDC_CONTRACT; } });
11
+ Object.defineProperty(exports, "PEAQ_CHAIN_ID", { enumerable: true, get: function () { return payment_client_1.PEAQ_CHAIN_ID; } });
12
+ Object.defineProperty(exports, "USDC_DECIMALS", { enumerable: true, get: function () { return payment_client_1.USDC_DECIMALS; } });
13
+ Object.defineProperty(exports, "X402_VERSION", { enumerable: true, get: function () { return payment_client_1.X402_VERSION; } });
14
+ Object.defineProperty(exports, "DEFAULT_PAYMENT_TIMEOUT_SECONDS", { enumerable: true, get: function () { return payment_client_1.DEFAULT_PAYMENT_TIMEOUT_SECONDS; } });
15
+ Object.defineProperty(exports, "DEFAULT_PAY_TO_ADDRESS", { enumerable: true, get: function () { return payment_client_1.DEFAULT_PAY_TO_ADDRESS; } });
16
+ Object.defineProperty(exports, "DEFAULT_RPC_URL", { enumerable: true, get: function () { return payment_client_1.DEFAULT_RPC_URL; } });
17
+ // Utilities
18
+ Object.defineProperty(exports, "buildX402ResourceUrl", { enumerable: true, get: function () { return payment_client_1.buildX402ResourceUrl; } });
19
+ Object.defineProperty(exports, "usdcToUnits", { enumerable: true, get: function () { return payment_client_1.usdcToUnits; } });
20
+ Object.defineProperty(exports, "unitsToUsdc", { enumerable: true, get: function () { return payment_client_1.unitsToUsdc; } });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mDAiB0B;AAhBxB,+GAAA,aAAa,OAAA;AAEb,YAAY;AACZ,+GAAA,aAAa,OAAA;AACb,+GAAA,aAAa,OAAA;AACb,+GAAA,aAAa,OAAA;AACb,8GAAA,YAAY,OAAA;AACZ,iIAAA,+BAA+B,OAAA;AAC/B,wHAAA,sBAAsB,OAAA;AACtB,iHAAA,eAAe,OAAA;AACf,YAAY;AACZ,sHAAA,oBAAoB,OAAA;AACpB,6GAAA,WAAW,OAAA;AACX,6GAAA,WAAW,OAAA"}