@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
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * MessageRouter - Manages message sending and routing
3
3
  * Handles user messages, direct commands, and message-response patterns
4
+ * Supports quote-approve payment flow (v2.2.0)
4
5
  */
5
6
  import { EventEmitter } from "eventemitter3";
6
7
  import { WebSocketClient } from "../core/websocket-client";
7
8
  import { WebhookHandler } from "../handlers/webhook-handler";
8
9
  import { ResponseFormatter, FormattedResponse } from "../formatters/response-formatter";
9
- import { Logger, ResponseFormat } from "../types";
10
+ import { Logger, ResponseFormat, PricingInfo } from "../types";
10
11
  import { SDKEvents } from "../types/events";
12
+ import type { SecurePrivateKey } from "../utils/secure-private-key";
11
13
  export interface SendMessageOptions {
12
14
  room: string;
13
15
  from?: string;
@@ -20,6 +22,28 @@ export interface AgentCommand {
20
22
  command: string;
21
23
  room: string;
22
24
  }
25
+ /**
26
+ * Result of a quote request, containing pricing and agent details.
27
+ */
28
+ export interface QuoteResult {
29
+ taskId: string;
30
+ agentId: string;
31
+ agentName: string;
32
+ agentWallet: string;
33
+ command: string;
34
+ pricing: PricingInfo;
35
+ expiresAt: Date;
36
+ }
37
+ export interface MessageRouterConfig {
38
+ messageTimeout?: number;
39
+ responseFormat?: ResponseFormat;
40
+ autoApproveQuotes?: boolean;
41
+ maxPricePerRequest?: number;
42
+ quoteTimeout?: number;
43
+ wsUrl?: string;
44
+ paymentNetwork?: string;
45
+ paymentAsset?: string;
46
+ }
23
47
  export declare class MessageRouter extends EventEmitter<SDKEvents> {
24
48
  private readonly wsClient;
25
49
  private readonly webhookHandler;
@@ -27,10 +51,20 @@ export declare class MessageRouter extends EventEmitter<SDKEvents> {
27
51
  private readonly logger;
28
52
  private readonly messageTimeout;
29
53
  private readonly responseFormat;
30
- constructor(wsClient: WebSocketClient, webhookHandler: WebhookHandler, responseFormatter: ResponseFormatter, logger: Logger, config: {
31
- messageTimeout?: number;
32
- responseFormat?: ResponseFormat;
33
- });
54
+ private paymentClient;
55
+ private readonly pendingQuotes;
56
+ private readonly autoApproveQuotes;
57
+ private readonly maxPricePerRequest?;
58
+ private readonly quoteTimeout;
59
+ private readonly wsUrl;
60
+ private readonly paymentNetwork;
61
+ private readonly paymentAsset;
62
+ constructor(wsClient: WebSocketClient, webhookHandler: WebhookHandler, responseFormatter: ResponseFormatter, logger: Logger, config: MessageRouterConfig);
63
+ /**
64
+ * Sets up the payment client for quote-approve flow.
65
+ * Must be called before using requestQuote/confirmQuote with paid tasks.
66
+ */
67
+ setPaymentClient(secureKey: SecurePrivateKey, walletAddress: string): void;
34
68
  /**
35
69
  * Sends a message to agents via the coordinator.
36
70
  * The coordinator intelligently selects the most appropriate agent.
@@ -85,6 +119,23 @@ export declare class MessageRouter extends EventEmitter<SDKEvents> {
85
119
  * ```
86
120
  */
87
121
  sendDirectCommand(command: AgentCommand, waitForResponse?: boolean): Promise<FormattedResponse | void>;
122
+ /**
123
+ * Requests a quote for a task without auto-approval.
124
+ * Returns the quote data for manual confirmation.
125
+ */
126
+ requestQuote(content: string, room: string): Promise<QuoteResult>;
127
+ /**
128
+ * Confirms a quote and executes the task with payment.
129
+ * Can optionally wait for the task response.
130
+ */
131
+ confirmQuote(taskId: string, options?: {
132
+ waitForResponse?: boolean;
133
+ timeout?: number;
134
+ }): Promise<FormattedResponse | void>;
135
+ /**
136
+ * Gets a pending quote by task ID.
137
+ */
138
+ getPendingQuote(taskId: string): QuoteResult | undefined;
88
139
  /**
89
140
  * Send message and wait for agent response
90
141
  * Uses event-waiter utility for clean Promise-based waiting with automatic cleanup
@@ -1 +1 @@
1
- {"version":3,"file":"message-router.d.ts","sourceRoot":"","sources":["../../src/managers/message-router.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAGL,MAAM,EACN,cAAc,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAA4C,MAAM,iBAAiB,CAAC;AAUtF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,cAAc,GAAG,KAAK,GAAG,WAAW,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,aAAc,SAAQ,YAAY,CAAC,SAAS,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAG9C,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,cAAc,CAAC;KACjC;IAaH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAiCpC;;;;;;;;;;;;;;;;;;;;OAoBG;IACU,iBAAiB,CAC5B,OAAO,EAAE,YAAY,EACrB,eAAe,GAAE,OAAe,GAC/B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA6CpC;;;OAGG;YACW,6BAA6B;IA2E3C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkF5B;;;;;;;;;;;;OAYG;IACI,OAAO,IAAI,IAAI;CAOvB"}
1
+ {"version":3,"file":"message-router.d.ts","sourceRoot":"","sources":["../../src/managers/message-router.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  /**
3
3
  * MessageRouter - Manages message sending and routing
4
4
  * Handles user messages, direct commands, and message-response patterns
5
+ * Supports quote-approve payment flow (v2.2.0)
5
6
  */
6
7
  Object.defineProperty(exports, "__esModule", { value: true });
7
8
  exports.MessageRouter = void 0;
@@ -13,7 +14,23 @@ const error_codes_1 = require("../types/error-codes");
13
14
  const constants_1 = require("../constants");
14
15
  const validation_1 = require("../types/validation");
15
16
  const event_waiter_1 = require("../utils/event-waiter");
17
+ const payment_client_1 = require("../payments/payment-client");
16
18
  class MessageRouter extends eventemitter3_1.EventEmitter {
19
+ wsClient;
20
+ webhookHandler;
21
+ responseFormatter;
22
+ logger;
23
+ messageTimeout;
24
+ responseFormat;
25
+ // Quote-approve flow (v2.2.0)
26
+ paymentClient = null;
27
+ pendingQuotes = new Map();
28
+ autoApproveQuotes;
29
+ maxPricePerRequest;
30
+ quoteTimeout;
31
+ wsUrl;
32
+ paymentNetwork;
33
+ paymentAsset;
17
34
  constructor(wsClient, webhookHandler, responseFormatter, logger, config) {
18
35
  super();
19
36
  this.wsClient = wsClient;
@@ -22,8 +39,26 @@ class MessageRouter extends eventemitter3_1.EventEmitter {
22
39
  this.logger = logger;
23
40
  this.messageTimeout = config.messageTimeout ?? constants_1.TIMEOUTS.DEFAULT_MESSAGE_TIMEOUT;
24
41
  this.responseFormat = config.responseFormat ?? "humanized";
42
+ // Quote-approve config (v2.2.0)
43
+ this.autoApproveQuotes = config.autoApproveQuotes ?? true;
44
+ this.maxPricePerRequest = config.maxPricePerRequest;
45
+ this.quoteTimeout = config.quoteTimeout ?? 30000;
46
+ this.wsUrl = config.wsUrl ?? "";
47
+ this.paymentNetwork = config.paymentNetwork ?? "eip155:3338";
48
+ // USDC contract address on PEAQ network
49
+ this.paymentAsset = config.paymentAsset ?? "0xbbA60da06c2c5424f03f7434542280FCAd453d10";
25
50
  this.setupEventForwarding();
26
51
  }
52
+ /**
53
+ * Sets up the payment client for quote-approve flow.
54
+ * Must be called before using requestQuote/confirmQuote with paid tasks.
55
+ */
56
+ setPaymentClient(secureKey, walletAddress) {
57
+ this.paymentClient = new payment_client_1.PaymentClient(secureKey, walletAddress, {
58
+ network: this.paymentNetwork,
59
+ asset: this.paymentAsset
60
+ });
61
+ }
27
62
  /**
28
63
  * Sends a message to agents via the coordinator.
29
64
  * The coordinator intelligently selects the most appropriate agent.
@@ -59,17 +94,28 @@ class MessageRouter extends eventemitter3_1.EventEmitter {
59
94
  if (!this.wsClient.isConnected) {
60
95
  throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
61
96
  }
62
- // Validate content
63
97
  const validatedContent = validation_1.MessageContentSchema.parse(content);
64
98
  const room = options.room;
65
99
  if (!room) {
66
100
  throw new events_1.ValidationError("Room parameter is required");
67
101
  }
68
- // Use custom 'from' address if provided, otherwise use wallet address from auth state
102
+ // Use quote-approve flow with auto-approval (v2.2.0)
103
+ if (this.autoApproveQuotes) {
104
+ this.logger.debug("MessageRouter: Using quote-approve flow", {
105
+ content: validatedContent,
106
+ room
107
+ });
108
+ const quote = await this.requestQuote(validatedContent, room);
109
+ return await this.confirmQuote(quote.taskId, {
110
+ waitForResponse: options.waitForResponse,
111
+ timeout: options.timeout ?? this.messageTimeout
112
+ });
113
+ }
114
+ // Legacy flow (auto-approval disabled - user must manually confirm quotes)
69
115
  const authState = this.wsClient.getAuthState();
70
116
  const fromAddress = options.from ?? authState.walletAddress;
71
117
  const message = (0, types_1.createUserMessage)(validatedContent, room, fromAddress);
72
- this.logger.debug("MessageRouter: Sending message", {
118
+ this.logger.debug("MessageRouter: Sending message (legacy)", {
73
119
  content: validatedContent,
74
120
  room,
75
121
  from: fromAddress
@@ -107,20 +153,27 @@ class MessageRouter extends eventemitter3_1.EventEmitter {
107
153
  if (!this.wsClient.isConnected) {
108
154
  throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
109
155
  }
110
- // Validate command
111
156
  const validatedAgent = validation_1.AgentIdSchema.parse(command.agent);
112
157
  const validatedCommand = validation_1.AgentCommandContentSchema.parse(command.command);
113
158
  const room = command.room;
114
159
  if (!room) {
115
160
  throw new events_1.ValidationError("Room parameter is required");
116
161
  }
117
- // Get wallet address from auth state
162
+ const content = `@${validatedAgent} ${validatedCommand}`;
163
+ // Use quote-approve flow with auto-approval (v2.2.0)
164
+ if (this.autoApproveQuotes) {
165
+ this.logger.debug("MessageRouter: Using quote-approve flow", { content, room });
166
+ const quote = await this.requestQuote(content, room);
167
+ return await this.confirmQuote(quote.taskId, {
168
+ waitForResponse,
169
+ timeout: this.messageTimeout
170
+ });
171
+ }
172
+ // Legacy flow (auto-approval disabled - user must manually confirm quotes)
118
173
  const authState = this.wsClient.getAuthState();
119
174
  const walletAddress = authState.walletAddress;
120
- // Format as direct command
121
- const content = `@${validatedAgent} ${validatedCommand}`;
122
175
  const message = (0, types_1.createUserMessage)(content, room, walletAddress);
123
- this.logger.debug("MessageRouter: Sending direct command", {
176
+ this.logger.debug("MessageRouter: Sending direct command (legacy)", {
124
177
  agent: validatedAgent,
125
178
  command: validatedCommand,
126
179
  room,
@@ -141,6 +194,100 @@ class MessageRouter extends eventemitter3_1.EventEmitter {
141
194
  await this.webhookHandler.sendMessageWebhook(message);
142
195
  }
143
196
  }
197
+ /**
198
+ * Requests a quote for a task without auto-approval.
199
+ * Returns the quote data for manual confirmation.
200
+ */
201
+ async requestQuote(content, room) {
202
+ if (!this.wsClient.isConnected) {
203
+ throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
204
+ }
205
+ const message = (0, types_1.createRequestTask)(content, room);
206
+ this.logger.debug("MessageRouter: Requesting quote", { content, room });
207
+ await this.wsClient.sendMessage(message);
208
+ const quote = await (0, event_waiter_1.waitForEvent)(this.wsClient, "quote:received", {
209
+ timeout: this.quoteTimeout,
210
+ timeoutMessage: `Quote request timed out after ${this.quoteTimeout}ms`
211
+ });
212
+ const result = {
213
+ taskId: quote.data.task_id,
214
+ agentId: quote.data.agent_id,
215
+ agentName: quote.data.agent_name,
216
+ agentWallet: quote.data.agent_wallet,
217
+ command: quote.data.command,
218
+ pricing: quote.data.pricing,
219
+ expiresAt: new Date(quote.data.expires_at)
220
+ };
221
+ this.pendingQuotes.set(result.taskId, result);
222
+ return result;
223
+ }
224
+ /**
225
+ * Confirms a quote and executes the task with payment.
226
+ * Can optionally wait for the task response.
227
+ */
228
+ async confirmQuote(taskId, options) {
229
+ if (!this.wsClient.isConnected) {
230
+ throw new events_1.SDKError("Not connected to Teneo network", error_codes_1.ErrorCode.NOT_CONNECTED);
231
+ }
232
+ const quote = this.pendingQuotes.get(taskId);
233
+ if (!quote) {
234
+ throw new events_1.ValidationError(`No pending quote found for task ${taskId}`);
235
+ }
236
+ if (new Date() > quote.expiresAt) {
237
+ this.pendingQuotes.delete(taskId);
238
+ throw new events_1.SDKError("Quote has expired", error_codes_1.ErrorCode.QUOTE_EXPIRED);
239
+ }
240
+ // Check price limit
241
+ if (this.maxPricePerRequest !== undefined) {
242
+ const priceInUnits = quote.pricing.pricePerUnit * 1_000_000;
243
+ if (priceInUnits > this.maxPricePerRequest) {
244
+ this.emit("payment:blocked", {
245
+ agentId: quote.agentId,
246
+ agentPrice: priceInUnits,
247
+ maxPrice: this.maxPricePerRequest
248
+ });
249
+ throw new events_1.PaymentError(`Quote price exceeds limit: ${priceInUnits} > ${this.maxPricePerRequest}`, error_codes_1.ErrorCode.PRICE_LIMIT_EXCEEDED, { agentId: quote.agentId, agentPrice: priceInUnits, maxPrice: this.maxPricePerRequest });
250
+ }
251
+ }
252
+ let paymentHeader;
253
+ // Create payment header if payment client is configured and price > 0
254
+ if (this.paymentClient && quote.pricing.pricePerUnit > 0) {
255
+ try {
256
+ paymentHeader = await this.paymentClient.createPaymentHeader(quote.pricing.pricePerUnit * 1_000_000, quote.agentWallet, (0, payment_client_1.buildX402ResourceUrl)(this.wsUrl));
257
+ this.emit("payment:attached", {
258
+ agentId: quote.agentId,
259
+ amount: quote.pricing.pricePerUnit * 1_000_000,
260
+ command: quote.command
261
+ });
262
+ }
263
+ catch (error) {
264
+ this.logger.error("Failed to create payment header for quote confirmation", error);
265
+ throw new events_1.PaymentError("Failed to create payment", error_codes_1.ErrorCode.PAYMENT_FAILED, {
266
+ agentId: quote.agentId
267
+ });
268
+ }
269
+ }
270
+ const confirmMessage = (0, types_1.createConfirmTask)(taskId, paymentHeader);
271
+ this.logger.debug("MessageRouter: Confirming quote", { taskId });
272
+ await this.wsClient.sendMessage(confirmMessage);
273
+ // Delete quote only after successful send (enables retry on network failure)
274
+ this.pendingQuotes.delete(taskId);
275
+ if (options?.waitForResponse) {
276
+ const timeout = options.timeout ?? this.messageTimeout;
277
+ const response = await (0, event_waiter_1.waitForEvent)(this.wsClient, "agent:response", {
278
+ timeout,
279
+ filter: (r) => r.taskId === taskId,
280
+ timeoutMessage: `Task response timed out after ${timeout}ms (taskId: ${taskId})`
281
+ });
282
+ return response;
283
+ }
284
+ }
285
+ /**
286
+ * Gets a pending quote by task ID.
287
+ */
288
+ getPendingQuote(taskId) {
289
+ return this.pendingQuotes.get(taskId);
290
+ }
144
291
  /**
145
292
  * Send message and wait for agent response
146
293
  * Uses event-waiter utility for clean Promise-based waiting with automatic cleanup
@@ -1 +1 @@
1
- {"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/managers/message-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-router.js","sourceRoot":"","sources":["../../src/managers/message-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * RoomManagementManager - Manages room CRUD operations (v2.0.0)
3
+ * Handles creating, updating, and deleting private rooms
4
+ * Tracks owned vs shared rooms with local caching
5
+ */
6
+ import { EventEmitter } from "eventemitter3";
7
+ import { WebSocketClient } from "../core/websocket-client";
8
+ import { RoomInfo, Logger } from "../types";
9
+ import { SDKEvents } from "../types/events";
10
+ export interface CreateRoomOptions {
11
+ name: string;
12
+ description?: string;
13
+ }
14
+ export interface UpdateRoomOptions {
15
+ name?: string;
16
+ description?: string;
17
+ }
18
+ export declare class RoomManagementManager extends EventEmitter<SDKEvents> {
19
+ private readonly wsClient;
20
+ private readonly logger;
21
+ private readonly ownedRooms;
22
+ private readonly sharedRooms;
23
+ private maxPrivateRooms;
24
+ constructor(wsClient: WebSocketClient, logger: Logger);
25
+ /**
26
+ * Creates a new private room.
27
+ * Checks room limit before creating.
28
+ *
29
+ * @param options - Room creation options
30
+ * @returns Promise that resolves when room is created
31
+ * @throws {SDKError} If not connected, over limit, or validation fails
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const room = await sdk.rooms.createRoom({
36
+ * name: 'My Private Room',
37
+ * description: 'A room for my project'
38
+ * });
39
+ * console.log(`Created room: ${room.id}`);
40
+ * ```
41
+ */
42
+ createRoom(options: CreateRoomOptions): Promise<RoomInfo>;
43
+ /**
44
+ * Updates an existing room's name and/or description.
45
+ * User must own the room to update it.
46
+ *
47
+ * @param roomId - ID of room to update
48
+ * @param updates - Fields to update
49
+ * @returns Promise that resolves when room is updated
50
+ * @throws {SDKError} If not connected, not owner, or validation fails
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * await sdk.rooms.updateRoom('room-123', {
55
+ * name: 'Updated Room Name',
56
+ * description: 'New description'
57
+ * });
58
+ * ```
59
+ */
60
+ updateRoom(roomId: string, updates: UpdateRoomOptions): Promise<RoomInfo>;
61
+ /**
62
+ * Deletes a room permanently.
63
+ * User must own the room to delete it.
64
+ *
65
+ * @param roomId - ID of room to delete
66
+ * @returns Promise that resolves when room is deleted
67
+ * @throws {SDKError} If not connected or not owner
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * await sdk.rooms.deleteRoom('room-123');
72
+ * console.log('Room deleted successfully');
73
+ * ```
74
+ */
75
+ deleteRoom(roomId: string): Promise<void>;
76
+ /**
77
+ * Gets all rooms owned by the current user.
78
+ * Synchronous method that returns cached data.
79
+ *
80
+ * @returns Array of owned room info
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const myRooms = sdk.rooms.getOwnedRooms();
85
+ * console.log(`I own ${myRooms.length} rooms`);
86
+ * ```
87
+ */
88
+ getOwnedRooms(): ReadonlyArray<Readonly<RoomInfo>>;
89
+ /**
90
+ * Gets all rooms the user is a member of (but doesn't own).
91
+ * Synchronous method that returns cached data.
92
+ *
93
+ * @returns Array of shared room info
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * const sharedRooms = sdk.rooms.getSharedRooms();
98
+ * console.log(`I'm a member of ${sharedRooms.length} shared rooms`);
99
+ * ```
100
+ */
101
+ getSharedRooms(): ReadonlyArray<Readonly<RoomInfo>>;
102
+ /**
103
+ * Gets all rooms the user has access to (both owned and shared).
104
+ * Convenience method that combines getOwnedRooms() and getSharedRooms().
105
+ * Synchronous method that returns cached data.
106
+ *
107
+ * @returns Array of all room info (owned + shared)
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * const allRooms = sdk.getAllRooms();
112
+ * console.log(`I have access to ${allRooms.length} total rooms`);
113
+ *
114
+ * // Filter by ownership if needed
115
+ * const myRooms = allRooms.filter(r => r.is_owner);
116
+ * const sharedWithMe = allRooms.filter(r => !r.is_owner);
117
+ * ```
118
+ */
119
+ getAllRooms(): ReadonlyArray<Readonly<RoomInfo>>;
120
+ /**
121
+ * Gets a specific room by ID.
122
+ * Checks both owned and shared room caches.
123
+ *
124
+ * @param roomId - Room ID to look up
125
+ * @returns Room info if found, undefined otherwise
126
+ *
127
+ * @example
128
+ * ```typescript
129
+ * const room = sdk.rooms.getRoomById('room-123');
130
+ * if (room) {
131
+ * console.log(`Room: ${room.name}`);
132
+ * }
133
+ * ```
134
+ */
135
+ getRoomById(roomId: string): Readonly<RoomInfo> | undefined;
136
+ /**
137
+ * Gets the maximum number of private rooms the user can create.
138
+ * Based on user's subscription/plan.
139
+ *
140
+ * @returns Maximum private room limit
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * const limit = sdk.rooms.getRoomLimit();
145
+ * console.log(`You can create up to ${limit} private rooms`);
146
+ * ```
147
+ */
148
+ getRoomLimit(): number;
149
+ /**
150
+ * Checks if user can create another private room.
151
+ * Compares current owned room count against limit.
152
+ *
153
+ * @returns True if under limit, false otherwise
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * if (sdk.rooms.canCreateRoom()) {
158
+ * await sdk.rooms.createRoom({ name: 'New Room' });
159
+ * } else {
160
+ * console.log('Room limit reached!');
161
+ * }
162
+ * ```
163
+ */
164
+ canCreateRoom(): boolean;
165
+ /**
166
+ * Gets the current count of owned private rooms.
167
+ *
168
+ * @returns Number of rooms user owns
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * const count = sdk.rooms.getOwnedRoomCount();
173
+ * const limit = sdk.rooms.getRoomLimit();
174
+ * console.log(`Using ${count}/${limit} room slots`);
175
+ * ```
176
+ */
177
+ getOwnedRoomCount(): number;
178
+ /**
179
+ * Sets the room limit from auth response.
180
+ * @internal
181
+ */
182
+ setRoomLimit(limit: number): void;
183
+ /**
184
+ * Initializes owned rooms cache from auth response.
185
+ * @internal
186
+ */
187
+ setOwnedRooms(rooms: RoomInfo[]): void;
188
+ /**
189
+ * Initializes shared rooms cache from auth response.
190
+ * @internal
191
+ */
192
+ setSharedRooms(rooms: RoomInfo[]): void;
193
+ /**
194
+ * Adds or updates a room in the appropriate cache.
195
+ * Determines owned vs shared based on is_owner flag.
196
+ * @internal
197
+ */
198
+ upsertRoom(room: RoomInfo): void;
199
+ /**
200
+ * Removes a room from cache.
201
+ * Checks both owned and shared caches.
202
+ * @internal
203
+ */
204
+ removeRoom(roomId: string): void;
205
+ /**
206
+ * Clears all caches. Called on disconnect.
207
+ * @internal
208
+ */
209
+ clearCaches(): void;
210
+ private validateRoomName;
211
+ private validateRoomDescription;
212
+ }
213
+ //# sourceMappingURL=room-management-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-management-manager.d.ts","sourceRoot":"","sources":["../../src/managers/room-management-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAGtD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,SAAS,CAAC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAGhC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,eAAe,CAAa;gBAExB,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;IAUrD;;;;;;;;;;;;;;;;OAgBG;IACU,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4DtE;;;;;;;;;;;;;;;;OAgBG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA2EtF;;;;;;;;;;;;;OAaG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4DtD;;;;;;;;;;;OAWG;IACI,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIzD;;;;;;;;;;;OAWG;IACI,cAAc,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAI1D;;;;;;;;;;;;;;;;OAgBG;IACI,WAAW,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIvD;;;;;;;;;;;;;;OAcG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;IAUlE;;;;;;;;;;;OAWG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;;;;;;;;;;OAcG;IACI,aAAa,IAAI,OAAO;IAI/B;;;;;;;;;;;OAWG;IACI,iBAAiB,IAAI,MAAM;IAQlC;;;OAGG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKxC;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQ7C;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQ9C;;;;OAIG;IACI,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAcvC;;;;OAIG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAavC;;;OAGG;IACI,WAAW,IAAI,IAAI;IAW1B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,uBAAuB;CAQhC"}