@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
@@ -31,41 +31,55 @@ export declare class AuthErrorHandler extends BaseMessageHandler<AuthErrorMessag
31
31
  error: string;
32
32
  code?: number | undefined;
33
33
  }>;
34
- }, "strip", import("zod").ZodTypeAny, {
35
- type: "auth_error";
36
- data: {
34
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
35
+ content: import("zod").ZodOptional<import("zod").ZodAny>;
36
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<["text/plain", "text/markdown", "text/html", "application/json", "image/*", "STRING", "JSON", "MD", "ARRAY"]>>;
37
+ from: import("zod").ZodOptional<import("zod").ZodString>;
38
+ to: import("zod").ZodOptional<import("zod").ZodString>;
39
+ room: import("zod").ZodOptional<import("zod").ZodString>;
40
+ timestamp: import("zod").ZodOptional<import("zod").ZodString>;
41
+ signature: import("zod").ZodOptional<import("zod").ZodString>;
42
+ publicKey: import("zod").ZodOptional<import("zod").ZodString>;
43
+ reasoning: import("zod").ZodOptional<import("zod").ZodString>;
44
+ task_id: import("zod").ZodOptional<import("zod").ZodString>;
45
+ id: import("zod").ZodOptional<import("zod").ZodString>;
46
+ } & {
47
+ type: import("zod").ZodLiteral<"auth_error">;
48
+ data: import("zod").ZodObject<{
49
+ error: import("zod").ZodString;
50
+ code: import("zod").ZodOptional<import("zod").ZodNumber>;
51
+ }, "strip", import("zod").ZodTypeAny, {
52
+ error: string;
53
+ code?: number | undefined;
54
+ }, {
55
+ error: string;
56
+ code?: number | undefined;
57
+ }>;
58
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
59
+ content: import("zod").ZodOptional<import("zod").ZodAny>;
60
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<["text/plain", "text/markdown", "text/html", "application/json", "image/*", "STRING", "JSON", "MD", "ARRAY"]>>;
61
+ from: import("zod").ZodOptional<import("zod").ZodString>;
62
+ to: import("zod").ZodOptional<import("zod").ZodString>;
63
+ room: import("zod").ZodOptional<import("zod").ZodString>;
64
+ timestamp: import("zod").ZodOptional<import("zod").ZodString>;
65
+ signature: import("zod").ZodOptional<import("zod").ZodString>;
66
+ publicKey: import("zod").ZodOptional<import("zod").ZodString>;
67
+ reasoning: import("zod").ZodOptional<import("zod").ZodString>;
68
+ task_id: import("zod").ZodOptional<import("zod").ZodString>;
69
+ id: import("zod").ZodOptional<import("zod").ZodString>;
70
+ } & {
71
+ type: import("zod").ZodLiteral<"auth_error">;
72
+ data: import("zod").ZodObject<{
73
+ error: import("zod").ZodString;
74
+ code: import("zod").ZodOptional<import("zod").ZodNumber>;
75
+ }, "strip", import("zod").ZodTypeAny, {
37
76
  error: string;
38
77
  code?: number | undefined;
39
- };
40
- id?: string | undefined;
41
- room?: string | undefined;
42
- content?: any;
43
- content_type?: "text/plain" | "text/markdown" | "text/html" | "application/json" | "image/*" | "STRING" | "JSON" | "MD" | "ARRAY" | undefined;
44
- from?: string | undefined;
45
- to?: string | undefined;
46
- timestamp?: string | undefined;
47
- signature?: string | undefined;
48
- publicKey?: string | undefined;
49
- reasoning?: string | undefined;
50
- task_id?: string | undefined;
51
- }, {
52
- type: "auth_error";
53
- data: {
78
+ }, {
54
79
  error: string;
55
80
  code?: number | undefined;
56
- };
57
- id?: string | undefined;
58
- room?: string | undefined;
59
- content?: any;
60
- content_type?: "text/plain" | "text/markdown" | "text/html" | "application/json" | "image/*" | "STRING" | "JSON" | "MD" | "ARRAY" | undefined;
61
- from?: string | undefined;
62
- to?: string | undefined;
63
- timestamp?: string | undefined;
64
- signature?: string | undefined;
65
- publicKey?: string | undefined;
66
- reasoning?: string | undefined;
67
- task_id?: string | undefined;
68
- }>;
81
+ }>;
82
+ }, import("zod").ZodTypeAny, "passthrough">>;
69
83
  protected handleValidated(message: AuthErrorMessage, context: HandlerContext): Promise<void>;
70
84
  }
71
85
  //# sourceMappingURL=auth-error-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-error-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAA0B,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,gBAAiB,SAAQ,kBAAkB,CAAC,gBAAgB,CAAC;IACxE,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IACtC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA0B;cAEzB,eAAe,CAC7B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;CAajB"}
1
+ {"version":3,"file":"auth-error-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-error-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAA0B,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,gBAAiB,SAAQ,kBAAkB,CAAC,gBAAgB,CAAC;IACxE,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAU;IACtC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAA0B;cAEzB,eAAe,CAC7B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;CAajB"}
@@ -9,11 +9,8 @@ const types_1 = require("../../types");
9
9
  const events_1 = require("../../types/events");
10
10
  const base_handler_1 = require("./base-handler");
11
11
  class AuthErrorHandler extends base_handler_1.BaseMessageHandler {
12
- constructor() {
13
- super(...arguments);
14
- this.type = "auth_error";
15
- this.schema = types_1.AuthErrorMessageSchema;
16
- }
12
+ type = "auth_error";
13
+ schema = types_1.AuthErrorMessageSchema;
17
14
  async handleValidated(message, context) {
18
15
  const error = message.data.error || "Authentication failed";
19
16
  context.logger.error("Authentication failed", { error });
@@ -1 +1 @@
1
- {"version":3,"file":"auth-error-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-error-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAuE;AACvE,+CAAyD;AACzD,iDAAoD;AAGpD,MAAa,gBAAiB,SAAQ,iCAAoC;IAA1E;;QACW,SAAI,GAAG,YAAqB,CAAC;QAC7B,WAAM,GAAG,8BAAsB,CAAC;IAkB3C,CAAC;IAhBW,KAAK,CAAC,eAAe,CAC7B,OAAyB,EACzB,OAAuB;QAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,uBAAuB,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzD,gBAAgB;QAChB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;YAClC,SAAS,EAAE,IAAI,4BAAmB,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AApBD,4CAoBC"}
1
+ {"version":3,"file":"auth-error-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-error-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAAuE;AACvE,+CAAyD;AACzD,iDAAoD;AAGpD,MAAa,gBAAiB,SAAQ,iCAAoC;IAC/D,IAAI,GAAG,YAAqB,CAAC;IAC7B,MAAM,GAAG,8BAAsB,CAAC;IAE/B,KAAK,CAAC,eAAe,CAC7B,OAAyB,EACzB,OAAuB;QAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,uBAAuB,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAEzD,gBAAgB;QAChB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE;YAClC,SAAS,EAAE,IAAI,4BAAmB,CAAC,KAAK,CAAC;SAC1C,CAAC,CAAC;QAEH,mBAAmB;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AApBD,4CAoBC"}
@@ -14,5 +14,11 @@ export declare class AuthMessageHandler extends BaseMessageHandler<AuthMessage>
14
14
  * Extract and normalize rooms from auth data
15
15
  */
16
16
  private extractRooms;
17
+ /**
18
+ * Categorize rooms into owned vs member rooms based on is_owner flag
19
+ * @param rooms - Array of room info objects
20
+ * @returns Object with privateRoomIds (owned) and sharedRoomIds (member)
21
+ */
22
+ private categorizeRooms;
17
23
  }
18
24
  //# sourceMappingURL=auth-message-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-message-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-message-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAA2B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;IACrE,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,MAAM,EAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;cAEhD,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C7F;;OAEG;IACH,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"auth-message-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-message-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAA2B,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,WAAW,CAAC;IACrE,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAChC,QAAQ,CAAC,MAAM,EAAwB,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;cAEhD,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4F7F;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
@@ -8,11 +8,8 @@ exports.AuthMessageHandler = void 0;
8
8
  const types_1 = require("../../types");
9
9
  const base_handler_1 = require("./base-handler");
10
10
  class AuthMessageHandler extends base_handler_1.BaseMessageHandler {
11
- constructor() {
12
- super(...arguments);
13
- this.type = "auth";
14
- this.schema = types_1.AuthMessageSchema;
15
- }
11
+ type = "auth";
12
+ schema = types_1.AuthMessageSchema;
16
13
  async handleValidated(message, context) {
17
14
  context.logger.info("Handling auth message", {
18
15
  hasData: !!message.data,
@@ -23,8 +20,25 @@ class AuthMessageHandler extends base_handler_1.BaseMessageHandler {
23
20
  if (message.data?.id || message.data?.address || message.data?.cached_auth || message.to) {
24
21
  const isCachedAuth = !!message.data?.cached_auth;
25
22
  context.logger.info(isCachedAuth ? "Using cached authentication" : "Authentication successful");
26
- // Extract rooms
27
- const rooms = this.extractRooms(message.data?.rooms);
23
+ // Extract rooms from both 'rooms' (public) and 'private_rooms' (owned private) arrays
24
+ const publicRooms = this.extractRooms(message.data?.rooms);
25
+ const privateRooms = this.extractRooms(message.data?.private_rooms);
26
+ // Combine all rooms, ensuring correct ownership flags
27
+ // Public rooms from 'rooms' array are NOT owned by the user
28
+ // Private rooms from 'private_rooms' array ARE owned by the user
29
+ const allRooms = [
30
+ ...publicRooms.map((r) => ({
31
+ ...r,
32
+ is_owner: false, // Explicitly set to false - public rooms are not owned
33
+ is_public: r.is_public !== undefined ? r.is_public : true // Ensure is_public is set
34
+ })),
35
+ ...privateRooms.map((r) => ({
36
+ ...r,
37
+ is_owner: true, // Explicitly set to true - private_rooms array means owned
38
+ is_public: r.is_public !== undefined ? r.is_public : false // Ensure is_public is set
39
+ }))
40
+ ];
41
+ const { privateRoomIds, sharedRoomIds } = this.categorizeRooms(allRooms);
28
42
  // Update connection state
29
43
  this.updateConnectionState(context, { authenticated: true });
30
44
  // Update auth state
@@ -35,12 +49,39 @@ class AuthMessageHandler extends base_handler_1.BaseMessageHandler {
35
49
  isWhitelisted: message.data?.is_whitelisted,
36
50
  isAdmin: message.data?.is_admin_whitelisted,
37
51
  nftVerified: message.data?.nft_verified,
38
- rooms: rooms.map((r) => r.id),
39
- roomObjects: rooms,
40
- privateRoomId: message.data?.private_room_id
52
+ rooms: allRooms.map((r) => r.id),
53
+ roomObjects: allRooms,
54
+ privateRoomId: message.data?.private_room_id,
55
+ // v2.0.0: New fields
56
+ privateRoomIds, // Rooms user owns
57
+ sharedRoomIds, // Rooms user is member of
58
+ maxPrivateRooms: message.data?.max_private_rooms // Max rooms user can create
41
59
  });
60
+ // Initialize room management manager with room data (v2.0.0)
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ const roomMgmt = context.roomManagementManager;
63
+ if (roomMgmt) {
64
+ // Set room limit
65
+ if (message.data?.max_private_rooms) {
66
+ roomMgmt.setRoomLimit(message.data.max_private_rooms);
67
+ }
68
+ // Categorize and cache rooms
69
+ const ownedRooms = allRooms.filter((r) => r.is_owner === true);
70
+ const sharedRooms = allRooms.filter((r) => r.is_owner === false);
71
+ roomMgmt.setOwnedRooms(ownedRooms);
72
+ roomMgmt.setSharedRooms(sharedRooms);
73
+ context.logger.debug("Room management initialized from auth message", {
74
+ owned: ownedRooms.length,
75
+ shared: sharedRooms.length,
76
+ limit: message.data?.max_private_rooms
77
+ });
78
+ }
42
79
  // Get updated auth state
43
80
  const authState = context.getAuthState();
81
+ // Update admin manager with admin status
82
+ if (context.adminManager) {
83
+ context.adminManager.setAdminStatus(message.data?.is_admin_whitelisted ?? false);
84
+ }
44
85
  // Emit events
45
86
  this.emit(context, "auth:success", authState);
46
87
  this.emit(context, "ready");
@@ -55,6 +96,26 @@ class AuthMessageHandler extends base_handler_1.BaseMessageHandler {
55
96
  }
56
97
  return rooms;
57
98
  }
99
+ /**
100
+ * Categorize rooms into owned vs member rooms based on is_owner flag
101
+ * @param rooms - Array of room info objects
102
+ * @returns Object with privateRoomIds (owned) and sharedRoomIds (member)
103
+ */
104
+ categorizeRooms(rooms) {
105
+ const privateRoomIds = [];
106
+ const sharedRoomIds = [];
107
+ for (const room of rooms) {
108
+ if (room.is_owner) {
109
+ if (room.id)
110
+ privateRoomIds.push(room.id);
111
+ }
112
+ else {
113
+ if (room.id)
114
+ sharedRoomIds.push(room.id);
115
+ }
116
+ }
117
+ return { privateRoomIds, sharedRoomIds };
118
+ }
58
119
  }
59
120
  exports.AuthMessageHandler = AuthMessageHandler;
60
121
  //# sourceMappingURL=auth-message-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-message-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-message-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,uCAAmE;AACnE,iDAAoD;AAGpD,MAAa,kBAAmB,SAAQ,iCAA+B;IAAvE;;QACW,SAAI,GAAG,MAAe,CAAC;QACvB,WAAM,GAAG,yBAA6C,CAAC;IAqDlE,CAAC;IAnDW,KAAK,CAAC,eAAe,CAAC,OAAoB,EAAE,OAAuB;QAC3E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;YACvB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACvD,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,CAAC,CAAC;QAEH,6EAA6E;QAC7E,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACzF,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,YAAY,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,2BAA2B,CAC3E,CAAC;YAEF,gBAAgB;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAErD,0BAA0B;YAC1B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7D,oBAAoB;YACpB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;gBAC5B,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE;gBAC9C,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;gBAC1C,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc;gBAC3C,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,oBAAoB;gBAC3C,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY;gBACvC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe;aAC7C,CAAC,CAAC;YAEH,yBAAyB;YACzB,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAEzC,cAAc;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAc;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAvDD,gDAuDC"}
1
+ {"version":3,"file":"auth-message-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-message-handler.ts"],"names":[],"mappings":"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"}
@@ -34,43 +34,61 @@ export declare class AuthRequiredHandler extends BaseMessageHandler<AuthRequired
34
34
  supported_auth_methods?: string[] | undefined;
35
35
  supports_cache_check?: boolean | undefined;
36
36
  }>>;
37
- }, "strip", import("zod").ZodTypeAny, {
38
- type: "auth_required";
39
- id?: string | undefined;
40
- room?: string | undefined;
41
- content?: string | undefined;
42
- content_type?: "text/plain" | "text/markdown" | "text/html" | "application/json" | "image/*" | "STRING" | "JSON" | "MD" | "ARRAY" | undefined;
43
- from?: "system" | undefined;
44
- to?: string | undefined;
45
- timestamp?: string | undefined;
46
- data?: {
37
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
38
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<["text/plain", "text/markdown", "text/html", "application/json", "image/*", "STRING", "JSON", "MD", "ARRAY"]>>;
39
+ to: import("zod").ZodOptional<import("zod").ZodString>;
40
+ room: import("zod").ZodOptional<import("zod").ZodString>;
41
+ timestamp: import("zod").ZodOptional<import("zod").ZodString>;
42
+ signature: import("zod").ZodOptional<import("zod").ZodString>;
43
+ publicKey: import("zod").ZodOptional<import("zod").ZodString>;
44
+ reasoning: import("zod").ZodOptional<import("zod").ZodString>;
45
+ task_id: import("zod").ZodOptional<import("zod").ZodString>;
46
+ id: import("zod").ZodOptional<import("zod").ZodString>;
47
+ } & {
48
+ type: import("zod").ZodLiteral<"auth_required">;
49
+ content: import("zod").ZodOptional<import("zod").ZodString>;
50
+ from: import("zod").ZodOptional<import("zod").ZodLiteral<"system">>;
51
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
52
+ cache_ttl_hours: import("zod").ZodOptional<import("zod").ZodNumber>;
53
+ supported_auth_methods: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
54
+ supports_cache_check: import("zod").ZodOptional<import("zod").ZodBoolean>;
55
+ }, "strip", import("zod").ZodTypeAny, {
56
+ cache_ttl_hours?: number | undefined;
57
+ supported_auth_methods?: string[] | undefined;
58
+ supports_cache_check?: boolean | undefined;
59
+ }, {
60
+ cache_ttl_hours?: number | undefined;
61
+ supported_auth_methods?: string[] | undefined;
62
+ supports_cache_check?: boolean | undefined;
63
+ }>>;
64
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
65
+ content_type: import("zod").ZodOptional<import("zod").ZodEnum<["text/plain", "text/markdown", "text/html", "application/json", "image/*", "STRING", "JSON", "MD", "ARRAY"]>>;
66
+ to: import("zod").ZodOptional<import("zod").ZodString>;
67
+ room: import("zod").ZodOptional<import("zod").ZodString>;
68
+ timestamp: import("zod").ZodOptional<import("zod").ZodString>;
69
+ signature: import("zod").ZodOptional<import("zod").ZodString>;
70
+ publicKey: import("zod").ZodOptional<import("zod").ZodString>;
71
+ reasoning: import("zod").ZodOptional<import("zod").ZodString>;
72
+ task_id: import("zod").ZodOptional<import("zod").ZodString>;
73
+ id: import("zod").ZodOptional<import("zod").ZodString>;
74
+ } & {
75
+ type: import("zod").ZodLiteral<"auth_required">;
76
+ content: import("zod").ZodOptional<import("zod").ZodString>;
77
+ from: import("zod").ZodOptional<import("zod").ZodLiteral<"system">>;
78
+ data: import("zod").ZodOptional<import("zod").ZodObject<{
79
+ cache_ttl_hours: import("zod").ZodOptional<import("zod").ZodNumber>;
80
+ supported_auth_methods: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
81
+ supports_cache_check: import("zod").ZodOptional<import("zod").ZodBoolean>;
82
+ }, "strip", import("zod").ZodTypeAny, {
47
83
  cache_ttl_hours?: number | undefined;
48
84
  supported_auth_methods?: string[] | undefined;
49
85
  supports_cache_check?: boolean | undefined;
50
- } | undefined;
51
- signature?: string | undefined;
52
- publicKey?: string | undefined;
53
- reasoning?: string | undefined;
54
- task_id?: string | undefined;
55
- }, {
56
- type: "auth_required";
57
- id?: string | undefined;
58
- room?: string | undefined;
59
- content?: string | undefined;
60
- content_type?: "text/plain" | "text/markdown" | "text/html" | "application/json" | "image/*" | "STRING" | "JSON" | "MD" | "ARRAY" | undefined;
61
- from?: "system" | undefined;
62
- to?: string | undefined;
63
- timestamp?: string | undefined;
64
- data?: {
86
+ }, {
65
87
  cache_ttl_hours?: number | undefined;
66
88
  supported_auth_methods?: string[] | undefined;
67
89
  supports_cache_check?: boolean | undefined;
68
- } | undefined;
69
- signature?: string | undefined;
70
- publicKey?: string | undefined;
71
- reasoning?: string | undefined;
72
- task_id?: string | undefined;
73
- }>;
90
+ }>>;
91
+ }, import("zod").ZodTypeAny, "passthrough">>;
74
92
  protected handleValidated(_message: AuthRequiredMessage, context: HandlerContext): Promise<void>;
75
93
  }
76
94
  //# sourceMappingURL=auth-required-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-required-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-required-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAA6B,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;IACzC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAA6B;cAE5B,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;CAMjB"}
1
+ {"version":3,"file":"auth-required-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-required-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAA6B,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,mBAAoB,SAAQ,kBAAkB,CAAC,mBAAmB,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAG,eAAe,CAAU;IACzC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAA6B;cAE5B,eAAe,CAC7B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;CAMjB"}
@@ -8,11 +8,8 @@ exports.AuthRequiredHandler = void 0;
8
8
  const types_1 = require("../../types");
9
9
  const base_handler_1 = require("./base-handler");
10
10
  class AuthRequiredHandler extends base_handler_1.BaseMessageHandler {
11
- constructor() {
12
- super(...arguments);
13
- this.type = "auth_required";
14
- this.schema = types_1.AuthRequiredMessageSchema;
15
- }
11
+ type = "auth_required";
12
+ schema = types_1.AuthRequiredMessageSchema;
16
13
  async handleValidated(_message, context) {
17
14
  context.logger.debug("Server requesting authentication");
18
15
  // Emit auth:required event
@@ -1 +1 @@
1
- {"version":3,"file":"auth-required-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-required-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAA6E;AAC7E,iDAAoD;AAGpD,MAAa,mBAAoB,SAAQ,iCAAuC;IAAhF;;QACW,SAAI,GAAG,eAAwB,CAAC;QAChC,WAAM,GAAG,iCAAyB,CAAC;IAW9C,CAAC;IATW,KAAK,CAAC,eAAe,CAC7B,QAA6B,EAC7B,OAAuB;QAEvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEzD,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACtC,CAAC;CACF;AAbD,kDAaC"}
1
+ {"version":3,"file":"auth-required-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-required-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAA6E;AAC7E,iDAAoD;AAGpD,MAAa,mBAAoB,SAAQ,iCAAuC;IACrE,IAAI,GAAG,eAAwB,CAAC;IAChC,MAAM,GAAG,iCAAyB,CAAC;IAElC,KAAK,CAAC,eAAe,CAC7B,QAA6B,EAC7B,OAAuB;QAEvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEzD,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACtC,CAAC;CACF;AAbD,kDAaC"}
@@ -14,5 +14,11 @@ export declare class AuthSuccessHandler extends BaseMessageHandler<AuthSuccessMe
14
14
  * Extract and normalize rooms from auth data
15
15
  */
16
16
  private extractRooms;
17
+ /**
18
+ * Categorize rooms into owned vs member rooms based on is_owner flag
19
+ * @param rooms - Array of room info objects
20
+ * @returns Object with privateRoomIds (owned) and sharedRoomIds (member)
21
+ */
22
+ private categorizeRooms;
17
23
  }
18
24
  //# sourceMappingURL=auth-success-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-success-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-success-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAkC,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,kBAAkB,CAAC;IAC5E,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IACxC,QAAQ,CAAC,MAAM,EAA+B,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;cAE9D,eAAe,CAC7B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IA8BhB;;OAEG;IACH,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"auth-success-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-success-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAsC,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,qBAAa,kBAAmB,SAAQ,kBAAkB,CAAC,kBAAkB,CAAC;IAC5E,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IACxC,QAAQ,CAAC,MAAM,EAA+B,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;cAE9D,eAAe,CAC7B,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC;IAgEhB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAiBxB"}
@@ -8,15 +8,13 @@ exports.AuthSuccessHandler = void 0;
8
8
  const types_1 = require("../../types");
9
9
  const base_handler_1 = require("./base-handler");
10
10
  class AuthSuccessHandler extends base_handler_1.BaseMessageHandler {
11
- constructor() {
12
- super(...arguments);
13
- this.type = "auth_success";
14
- this.schema = types_1.AuthSuccessMessageSchema;
15
- }
11
+ type = "auth_success";
12
+ schema = types_1.AuthSuccessMessageSchema;
16
13
  async handleValidated(message, context) {
17
14
  context.logger.info("Authentication successful");
18
- // Extract rooms
15
+ // Extract and categorize rooms
19
16
  const rooms = this.extractRooms(message.data.rooms);
17
+ const { privateRoomIds, sharedRoomIds } = this.categorizeRooms(rooms);
20
18
  // Update connection state
21
19
  this.updateConnectionState(context, { authenticated: true });
22
20
  // Update auth state
@@ -27,12 +25,39 @@ class AuthSuccessHandler extends base_handler_1.BaseMessageHandler {
27
25
  isWhitelisted: message.data.is_whitelisted,
28
26
  isAdmin: message.data.is_admin_whitelisted,
29
27
  nftVerified: message.data.nft_verified,
30
- rooms: rooms.map((r) => r.id),
31
- roomObjects: rooms,
32
- privateRoomId: message.data.private_room_id
28
+ // Backward compatibility: deprecated fields
29
+ rooms: rooms.map((r) => r.id), // All room IDs
30
+ privateRoomId: message.data.private_room_id, // DEPRECATED: single private room ID
31
+ // v2.0.0: New fields
32
+ roomObjects: rooms, // Full room objects with is_owner field
33
+ privateRoomIds, // Rooms user owns
34
+ sharedRoomIds, // Rooms user is member of
35
+ maxPrivateRooms: message.data.max_private_rooms // Max rooms user can create
33
36
  });
34
37
  // Get updated auth state
35
38
  const authState = context.getAuthState();
39
+ // Update admin manager with admin status
40
+ if (context.adminManager) {
41
+ context.adminManager.setAdminStatus(message.data.is_admin_whitelisted ?? false);
42
+ }
43
+ // Initialize room management manager with room data (v2.0.0)
44
+ const roomMgmt = context.roomManagementManager;
45
+ if (roomMgmt) {
46
+ // Set room limit
47
+ if (message.data.max_private_rooms) {
48
+ roomMgmt.setRoomLimit(message.data.max_private_rooms);
49
+ }
50
+ // Categorize and cache rooms
51
+ const ownedRooms = rooms.filter((r) => r.is_owner);
52
+ const sharedRooms = rooms.filter((r) => !r.is_owner);
53
+ roomMgmt.setOwnedRooms(ownedRooms);
54
+ roomMgmt.setSharedRooms(sharedRooms);
55
+ context.logger.debug("Room management initialized", {
56
+ owned: ownedRooms.length,
57
+ shared: sharedRooms.length,
58
+ limit: message.data.max_private_rooms
59
+ });
60
+ }
36
61
  // Emit events
37
62
  this.emit(context, "auth:success", authState);
38
63
  this.emit(context, "ready");
@@ -46,6 +71,24 @@ class AuthSuccessHandler extends base_handler_1.BaseMessageHandler {
46
71
  }
47
72
  return rooms;
48
73
  }
74
+ /**
75
+ * Categorize rooms into owned vs member rooms based on is_owner flag
76
+ * @param rooms - Array of room info objects
77
+ * @returns Object with privateRoomIds (owned) and sharedRoomIds (member)
78
+ */
79
+ categorizeRooms(rooms) {
80
+ const privateRoomIds = [];
81
+ const sharedRoomIds = [];
82
+ for (const room of rooms) {
83
+ if (room.is_owner) {
84
+ privateRoomIds.push(room.id);
85
+ }
86
+ else {
87
+ sharedRoomIds.push(room.id);
88
+ }
89
+ }
90
+ return { privateRoomIds, sharedRoomIds };
91
+ }
49
92
  }
50
93
  exports.AuthSuccessHandler = AuthSuccessHandler;
51
94
  //# sourceMappingURL=auth-success-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-success-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-success-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,uCAAiF;AACjF,iDAAoD;AAGpD,MAAa,kBAAmB,SAAQ,iCAAsC;IAA9E;;QACW,SAAI,GAAG,cAAuB,CAAC;QAC/B,WAAM,GAAG,gCAA2D,CAAC;IA4ChF,CAAC;IA1CW,KAAK,CAAC,eAAe,CAC7B,OAA2B,EAC3B,OAAuB;QAEvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEjD,gBAAgB;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpD,0BAA0B;QAC1B,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,oBAAoB;QACpB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;YAC5B,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YACnC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc;YAC1C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB;YAC1C,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;YACtC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe;SAC5C,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEzC,cAAc;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAAc;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA9CD,gDA8CC"}
1
+ {"version":3,"file":"auth-success-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/auth-success-handler.ts"],"names":[],"mappings":"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"}
@@ -38,18 +38,18 @@ export declare abstract class BaseMessageHandler<T extends BaseMessage = BaseMes
38
38
  /**
39
39
  * Helper: emit event
40
40
  */
41
- protected emit(context: HandlerContext, event: string, ...args: any[]): void;
41
+ protected emit(context: HandlerContext, event: string, ...args: unknown[]): void;
42
42
  /**
43
43
  * Helper: send webhook (fire-and-forget pattern)
44
44
  */
45
- protected sendWebhook(context: HandlerContext, type: string, data: any, metadata?: any): void;
45
+ protected sendWebhook(context: HandlerContext, type: string, data: Record<string, unknown>, metadata?: Record<string, unknown>): void;
46
46
  /**
47
47
  * Helper: update connection state
48
48
  */
49
- protected updateConnectionState(context: HandlerContext, update: any): void;
49
+ protected updateConnectionState(context: HandlerContext, update: Partial<import("./types").ConnectionState>): void;
50
50
  /**
51
51
  * Helper: update auth state
52
52
  */
53
- protected updateAuthState(context: HandlerContext, update: any): void;
53
+ protected updateAuthState(context: HandlerContext, update: Partial<import("./types").AuthState>): void;
54
54
  }
55
55
  //# sourceMappingURL=base-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/base-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzD;;;GAGG;AACH,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAC1E,YAAW,cAAc,CAAC,CAAC,CAAC;IAG5B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEzC;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAI/C;;;;;OAKG;IACU,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAajF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC;IAQ3C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE7F;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAKtF;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5E;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAO7F;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAI3E;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;CAGtE"}
1
+ {"version":3,"file":"base-handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/message-handlers/base-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzD;;;GAGG;AACH,8BAAsB,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,CAC1E,YAAW,cAAc,CAAC,CAAC,CAAC;IAG5B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEzC;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAI/C;;;;;OAKG;IACU,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAajF;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC;IAQ3C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE7F;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAKtF;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAIhF;;OAEG;IACH,SAAS,CAAC,WAAW,CACnB,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IASP;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAC7B,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,eAAe,CAAC,GACjD,IAAI;IAIP;;OAEG;IACH,SAAS,CAAC,eAAe,CACvB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,SAAS,CAAC,GAC3C,IAAI;CAGR"}
@@ -62,7 +62,9 @@ class BaseMessageHandler {
62
62
  */
63
63
  sendWebhook(context, type, data, metadata) {
64
64
  // Fire and forget - don't block event emission
65
- context.sendWebhook(type, data, metadata).catch((error) => {
65
+ context
66
+ .sendWebhook(type, data, metadata)
67
+ .catch((error) => {
66
68
  context.logger.error(`Failed to send webhook for ${this.type}`, error);
67
69
  });
68
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/base-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH;;;GAGG;AACH,MAAsB,kBAAkB;IAOtC;;OAEG;IACI,SAAS,CAAC,OAAoB;QACnC,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,OAAoB,EAAE,OAAuB;QAC/D,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEzC,+BAA+B;YAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,UAAU,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACO,QAAQ,CAAC,OAAoB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,aAAa,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAOD;;OAEG;IACO,OAAO,CAAC,KAAc,EAAE,OAAoB,EAAE,OAAuB;QAC7E,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACO,IAAI,CAAC,OAAuB,EAAE,KAAa,EAAE,GAAG,IAAW;QACnE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,OAAuB,EAAE,IAAY,EAAE,IAAS,EAAE,QAAc;QACpF,+CAA+C;QAC/C,OAAO,CAAC,WAAW,CAAC,IAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,qBAAqB,CAAC,OAAuB,EAAE,MAAW;QAClE,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,OAAuB,EAAE,MAAW;QAC5D,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAvFD,gDAuFC"}
1
+ {"version":3,"file":"base-handler.js","sourceRoot":"","sources":["../../../src/handlers/message-handlers/base-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAMH;;;GAGG;AACH,MAAsB,kBAAkB;IAOtC;;OAEG;IACI,SAAS,CAAC,OAAoB;QACnC,OAAO,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,OAAoB,EAAE,OAAuB;QAC/D,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEzC,+BAA+B;YAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,IAAI,UAAU,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACO,QAAQ,CAAC,OAAoB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,aAAa,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IAOD;;OAEG;IACO,OAAO,CAAC,KAAc,EAAE,OAAoB,EAAE,OAAuB;QAC7E,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACO,IAAI,CAAC,OAAuB,EAAE,KAAa,EAAE,GAAG,IAAe;QACvE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACO,WAAW,CACnB,OAAuB,EACvB,IAAY,EACZ,IAA6B,EAC7B,QAAkC;QAElC,+CAA+C;QAC/C,OAAO;aACJ,WAAW,CAAC,IAAiD,EAAE,IAAI,EAAE,QAAQ,CAAC;aAC9E,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,qBAAqB,CAC7B,OAAuB,EACvB,MAAkD;QAElD,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACO,eAAe,CACvB,OAAuB,EACvB,MAA4C;QAE5C,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AApGD,gDAoGC"}