@teneo-protocol/sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/.dockerignore +14 -0
  2. package/.env.test.example +14 -0
  3. package/.eslintrc.json +26 -0
  4. package/.github/workflows/claude-code-review.yml +78 -0
  5. package/.github/workflows/claude-reviewer.yml +64 -0
  6. package/.github/workflows/publish-npm.yml +38 -0
  7. package/.github/workflows/push-to-main.yml +23 -0
  8. package/.node-version +1 -0
  9. package/.prettierrc +11 -0
  10. package/Dockerfile +25 -0
  11. package/LICENCE +661 -0
  12. package/README.md +709 -0
  13. package/dist/constants.d.ts +42 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +45 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/core/websocket-client.d.ts +261 -0
  18. package/dist/core/websocket-client.d.ts.map +1 -0
  19. package/dist/core/websocket-client.js +875 -0
  20. package/dist/core/websocket-client.js.map +1 -0
  21. package/dist/formatters/response-formatter.d.ts +354 -0
  22. package/dist/formatters/response-formatter.d.ts.map +1 -0
  23. package/dist/formatters/response-formatter.js +575 -0
  24. package/dist/formatters/response-formatter.js.map +1 -0
  25. package/dist/handlers/message-handler-registry.d.ts +155 -0
  26. package/dist/handlers/message-handler-registry.d.ts.map +1 -0
  27. package/dist/handlers/message-handler-registry.js +216 -0
  28. package/dist/handlers/message-handler-registry.js.map +1 -0
  29. package/dist/handlers/message-handlers/agent-selected-handler.d.ts +112 -0
  30. package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -0
  31. package/dist/handlers/message-handlers/agent-selected-handler.js +40 -0
  32. package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -0
  33. package/dist/handlers/message-handlers/agents-list-handler.d.ts +14 -0
  34. package/dist/handlers/message-handlers/agents-list-handler.d.ts.map +1 -0
  35. package/dist/handlers/message-handlers/agents-list-handler.js +25 -0
  36. package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -0
  37. package/dist/handlers/message-handlers/auth-error-handler.d.ts +71 -0
  38. package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -0
  39. package/dist/handlers/message-handlers/auth-error-handler.js +30 -0
  40. package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -0
  41. package/dist/handlers/message-handlers/auth-message-handler.d.ts +18 -0
  42. package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -0
  43. package/dist/handlers/message-handlers/auth-message-handler.js +60 -0
  44. package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -0
  45. package/dist/handlers/message-handlers/auth-required-handler.d.ts +76 -0
  46. package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -0
  47. package/dist/handlers/message-handlers/auth-required-handler.js +23 -0
  48. package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -0
  49. package/dist/handlers/message-handlers/auth-success-handler.d.ts +18 -0
  50. package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -0
  51. package/dist/handlers/message-handlers/auth-success-handler.js +51 -0
  52. package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -0
  53. package/dist/handlers/message-handlers/base-handler.d.ts +55 -0
  54. package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -0
  55. package/dist/handlers/message-handlers/base-handler.js +83 -0
  56. package/dist/handlers/message-handlers/base-handler.js.map +1 -0
  57. package/dist/handlers/message-handlers/challenge-handler.d.ts +73 -0
  58. package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -0
  59. package/dist/handlers/message-handlers/challenge-handler.js +47 -0
  60. package/dist/handlers/message-handlers/challenge-handler.js.map +1 -0
  61. package/dist/handlers/message-handlers/error-message-handler.d.ts +76 -0
  62. package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -0
  63. package/dist/handlers/message-handlers/error-message-handler.js +29 -0
  64. package/dist/handlers/message-handlers/error-message-handler.js.map +1 -0
  65. package/dist/handlers/message-handlers/index.d.ts +28 -0
  66. package/dist/handlers/message-handlers/index.d.ts.map +1 -0
  67. package/dist/handlers/message-handlers/index.js +100 -0
  68. package/dist/handlers/message-handlers/index.js.map +1 -0
  69. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +122 -0
  70. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -0
  71. package/dist/handlers/message-handlers/list-rooms-response-handler.js +30 -0
  72. package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -0
  73. package/dist/handlers/message-handlers/ping-pong-handler.d.ts +104 -0
  74. package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -0
  75. package/dist/handlers/message-handlers/ping-pong-handler.js +36 -0
  76. package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -0
  77. package/dist/handlers/message-handlers/regular-message-handler.d.ts +56 -0
  78. package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -0
  79. package/dist/handlers/message-handlers/regular-message-handler.js +59 -0
  80. package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -0
  81. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +81 -0
  82. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -0
  83. package/dist/handlers/message-handlers/subscribe-response-handler.js +48 -0
  84. package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -0
  85. package/dist/handlers/message-handlers/task-response-handler.d.ts +14 -0
  86. package/dist/handlers/message-handlers/task-response-handler.d.ts.map +1 -0
  87. package/dist/handlers/message-handlers/task-response-handler.js +44 -0
  88. package/dist/handlers/message-handlers/task-response-handler.js.map +1 -0
  89. package/dist/handlers/message-handlers/types.d.ts +51 -0
  90. package/dist/handlers/message-handlers/types.d.ts.map +1 -0
  91. package/dist/handlers/message-handlers/types.js +7 -0
  92. package/dist/handlers/message-handlers/types.js.map +1 -0
  93. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +81 -0
  94. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -0
  95. package/dist/handlers/message-handlers/unsubscribe-response-handler.js +48 -0
  96. package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -0
  97. package/dist/handlers/webhook-handler.d.ts +202 -0
  98. package/dist/handlers/webhook-handler.d.ts.map +1 -0
  99. package/dist/handlers/webhook-handler.js +511 -0
  100. package/dist/handlers/webhook-handler.js.map +1 -0
  101. package/dist/index.d.ts +71 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +217 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/managers/agent-registry.d.ts +173 -0
  106. package/dist/managers/agent-registry.d.ts.map +1 -0
  107. package/dist/managers/agent-registry.js +310 -0
  108. package/dist/managers/agent-registry.js.map +1 -0
  109. package/dist/managers/connection-manager.d.ts +134 -0
  110. package/dist/managers/connection-manager.d.ts.map +1 -0
  111. package/dist/managers/connection-manager.js +176 -0
  112. package/dist/managers/connection-manager.js.map +1 -0
  113. package/dist/managers/index.d.ts +9 -0
  114. package/dist/managers/index.d.ts.map +1 -0
  115. package/dist/managers/index.js +16 -0
  116. package/dist/managers/index.js.map +1 -0
  117. package/dist/managers/message-router.d.ts +112 -0
  118. package/dist/managers/message-router.d.ts.map +1 -0
  119. package/dist/managers/message-router.js +260 -0
  120. package/dist/managers/message-router.js.map +1 -0
  121. package/dist/managers/room-manager.d.ts +165 -0
  122. package/dist/managers/room-manager.d.ts.map +1 -0
  123. package/dist/managers/room-manager.js +227 -0
  124. package/dist/managers/room-manager.js.map +1 -0
  125. package/dist/teneo-sdk.d.ts +703 -0
  126. package/dist/teneo-sdk.d.ts.map +1 -0
  127. package/dist/teneo-sdk.js +907 -0
  128. package/dist/teneo-sdk.js.map +1 -0
  129. package/dist/types/config.d.ts +1047 -0
  130. package/dist/types/config.d.ts.map +1 -0
  131. package/dist/types/config.js +720 -0
  132. package/dist/types/config.js.map +1 -0
  133. package/dist/types/error-codes.d.ts +29 -0
  134. package/dist/types/error-codes.d.ts.map +1 -0
  135. package/dist/types/error-codes.js +41 -0
  136. package/dist/types/error-codes.js.map +1 -0
  137. package/dist/types/events.d.ts +616 -0
  138. package/dist/types/events.d.ts.map +1 -0
  139. package/dist/types/events.js +261 -0
  140. package/dist/types/events.js.map +1 -0
  141. package/dist/types/health.d.ts +40 -0
  142. package/dist/types/health.d.ts.map +1 -0
  143. package/dist/types/health.js +6 -0
  144. package/dist/types/health.js.map +1 -0
  145. package/dist/types/index.d.ts +10 -0
  146. package/dist/types/index.d.ts.map +1 -0
  147. package/dist/types/index.js +123 -0
  148. package/dist/types/index.js.map +1 -0
  149. package/dist/types/messages.d.ts +3734 -0
  150. package/dist/types/messages.d.ts.map +1 -0
  151. package/dist/types/messages.js +482 -0
  152. package/dist/types/messages.js.map +1 -0
  153. package/dist/types/validation.d.ts +81 -0
  154. package/dist/types/validation.d.ts.map +1 -0
  155. package/dist/types/validation.js +115 -0
  156. package/dist/types/validation.js.map +1 -0
  157. package/dist/utils/bounded-queue.d.ts +127 -0
  158. package/dist/utils/bounded-queue.d.ts.map +1 -0
  159. package/dist/utils/bounded-queue.js +181 -0
  160. package/dist/utils/bounded-queue.js.map +1 -0
  161. package/dist/utils/circuit-breaker.d.ts +141 -0
  162. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  163. package/dist/utils/circuit-breaker.js +215 -0
  164. package/dist/utils/circuit-breaker.js.map +1 -0
  165. package/dist/utils/deduplication-cache.d.ts +110 -0
  166. package/dist/utils/deduplication-cache.d.ts.map +1 -0
  167. package/dist/utils/deduplication-cache.js +177 -0
  168. package/dist/utils/deduplication-cache.js.map +1 -0
  169. package/dist/utils/event-waiter.d.ts +101 -0
  170. package/dist/utils/event-waiter.d.ts.map +1 -0
  171. package/dist/utils/event-waiter.js +118 -0
  172. package/dist/utils/event-waiter.js.map +1 -0
  173. package/dist/utils/index.d.ts +51 -0
  174. package/dist/utils/index.d.ts.map +1 -0
  175. package/dist/utils/index.js +72 -0
  176. package/dist/utils/index.js.map +1 -0
  177. package/dist/utils/logger.d.ts +22 -0
  178. package/dist/utils/logger.d.ts.map +1 -0
  179. package/dist/utils/logger.js +91 -0
  180. package/dist/utils/logger.js.map +1 -0
  181. package/dist/utils/rate-limiter.d.ts +122 -0
  182. package/dist/utils/rate-limiter.d.ts.map +1 -0
  183. package/dist/utils/rate-limiter.js +190 -0
  184. package/dist/utils/rate-limiter.js.map +1 -0
  185. package/dist/utils/retry-policy.d.ts +191 -0
  186. package/dist/utils/retry-policy.d.ts.map +1 -0
  187. package/dist/utils/retry-policy.js +225 -0
  188. package/dist/utils/retry-policy.js.map +1 -0
  189. package/dist/utils/secure-private-key.d.ts +113 -0
  190. package/dist/utils/secure-private-key.d.ts.map +1 -0
  191. package/dist/utils/secure-private-key.js +188 -0
  192. package/dist/utils/secure-private-key.js.map +1 -0
  193. package/dist/utils/signature-verifier.d.ts +143 -0
  194. package/dist/utils/signature-verifier.d.ts.map +1 -0
  195. package/dist/utils/signature-verifier.js +238 -0
  196. package/dist/utils/signature-verifier.js.map +1 -0
  197. package/dist/utils/ssrf-validator.d.ts +36 -0
  198. package/dist/utils/ssrf-validator.d.ts.map +1 -0
  199. package/dist/utils/ssrf-validator.js +195 -0
  200. package/dist/utils/ssrf-validator.js.map +1 -0
  201. package/examples/.env.example +17 -0
  202. package/examples/basic-usage.ts +211 -0
  203. package/examples/production-dashboard/.env.example +153 -0
  204. package/examples/production-dashboard/package.json +39 -0
  205. package/examples/production-dashboard/public/dashboard.html +642 -0
  206. package/examples/production-dashboard/server.ts +753 -0
  207. package/examples/webhook-integration.ts +239 -0
  208. package/examples/x-influencer-battle-redesign.html +1065 -0
  209. package/examples/x-influencer-battle-server.ts +217 -0
  210. package/examples/x-influencer-battle.html +787 -0
  211. package/package.json +65 -0
  212. package/src/constants.ts +43 -0
  213. package/src/core/websocket-client.test.ts +512 -0
  214. package/src/core/websocket-client.ts +1056 -0
  215. package/src/formatters/response-formatter.test.ts +571 -0
  216. package/src/formatters/response-formatter.ts +677 -0
  217. package/src/handlers/message-handler-registry.ts +239 -0
  218. package/src/handlers/message-handlers/agent-selected-handler.ts +40 -0
  219. package/src/handlers/message-handlers/agents-list-handler.ts +26 -0
  220. package/src/handlers/message-handlers/auth-error-handler.ts +31 -0
  221. package/src/handlers/message-handlers/auth-message-handler.ts +66 -0
  222. package/src/handlers/message-handlers/auth-required-handler.ts +23 -0
  223. package/src/handlers/message-handlers/auth-success-handler.ts +57 -0
  224. package/src/handlers/message-handlers/base-handler.ts +101 -0
  225. package/src/handlers/message-handlers/challenge-handler.ts +57 -0
  226. package/src/handlers/message-handlers/error-message-handler.ts +27 -0
  227. package/src/handlers/message-handlers/index.ts +77 -0
  228. package/src/handlers/message-handlers/list-rooms-response-handler.ts +28 -0
  229. package/src/handlers/message-handlers/ping-pong-handler.ts +30 -0
  230. package/src/handlers/message-handlers/regular-message-handler.ts +65 -0
  231. package/src/handlers/message-handlers/subscribe-response-handler.ts +47 -0
  232. package/src/handlers/message-handlers/task-response-handler.ts +45 -0
  233. package/src/handlers/message-handlers/types.ts +77 -0
  234. package/src/handlers/message-handlers/unsubscribe-response-handler.ts +47 -0
  235. package/src/handlers/webhook-handler.test.ts +789 -0
  236. package/src/handlers/webhook-handler.ts +576 -0
  237. package/src/index.ts +269 -0
  238. package/src/managers/agent-registry.test.ts +466 -0
  239. package/src/managers/agent-registry.ts +347 -0
  240. package/src/managers/connection-manager.ts +195 -0
  241. package/src/managers/index.ts +9 -0
  242. package/src/managers/message-router.ts +349 -0
  243. package/src/managers/room-manager.ts +248 -0
  244. package/src/teneo-sdk.ts +1022 -0
  245. package/src/types/config.test.ts +325 -0
  246. package/src/types/config.ts +799 -0
  247. package/src/types/error-codes.ts +44 -0
  248. package/src/types/events.test.ts +302 -0
  249. package/src/types/events.ts +382 -0
  250. package/src/types/health.ts +46 -0
  251. package/src/types/index.ts +199 -0
  252. package/src/types/messages.test.ts +660 -0
  253. package/src/types/messages.ts +570 -0
  254. package/src/types/validation.ts +123 -0
  255. package/src/utils/bounded-queue.test.ts +356 -0
  256. package/src/utils/bounded-queue.ts +205 -0
  257. package/src/utils/circuit-breaker.test.ts +394 -0
  258. package/src/utils/circuit-breaker.ts +262 -0
  259. package/src/utils/deduplication-cache.test.ts +380 -0
  260. package/src/utils/deduplication-cache.ts +198 -0
  261. package/src/utils/event-waiter.test.ts +381 -0
  262. package/src/utils/event-waiter.ts +172 -0
  263. package/src/utils/index.ts +74 -0
  264. package/src/utils/logger.ts +87 -0
  265. package/src/utils/rate-limiter.test.ts +341 -0
  266. package/src/utils/rate-limiter.ts +211 -0
  267. package/src/utils/retry-policy.test.ts +558 -0
  268. package/src/utils/retry-policy.ts +272 -0
  269. package/src/utils/secure-private-key.test.ts +356 -0
  270. package/src/utils/secure-private-key.ts +205 -0
  271. package/src/utils/signature-verifier.test.ts +464 -0
  272. package/src/utils/signature-verifier.ts +298 -0
  273. package/src/utils/ssrf-validator.test.ts +372 -0
  274. package/src/utils/ssrf-validator.ts +224 -0
  275. package/tests/integration/real-server.test.ts +740 -0
  276. package/tests/integration/websocket.test.ts +381 -0
  277. package/tests/integration-setup.ts +16 -0
  278. package/tests/setup.ts +34 -0
  279. package/tsconfig.json +32 -0
  280. package/vitest.config.ts +42 -0
  281. package/vitest.integration.config.ts +23 -0
package/dist/index.js ADDED
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /**
3
+ * Teneo Protocol SDK
4
+ * TypeScript SDK for external platforms to interact with Teneo agents
5
+ * Uses Zod for runtime validation and type safety
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.ListRoomsResponseSchema = exports.RoomInfoSchema = exports.UnsubscribeResponseSchema = exports.SubscribeResponseSchema = exports.ListRoomsMessageSchema = exports.UnsubscribeMessageSchema = exports.SubscribeMessageSchema = exports.PongMessageSchema = exports.PingMessageSchema = exports.ErrorMessageSchema = exports.AgentsListMessageSchema = exports.AgentSelectedMessageSchema = exports.TaskResponseMessageSchema = exports.TaskMessageSchema = exports.UserMessageSchema = exports.RegistrationSuccessMessageSchema = exports.RegisterMessageSchema = exports.AuthErrorMessageSchema = exports.AuthSuccessMessageSchema = exports.AuthMessageSchema = exports.CheckCachedAuthMessageSchema = exports.ChallengeMessageSchema = exports.RequestChallengeMessageSchema = exports.BaseMessageSchema = exports.AgentSchema = exports.RoomSchema = exports.CommandSchema = exports.CapabilitySchema = exports.AgentStatusSchema = exports.AgentTypeSchema = exports.ClientTypeSchema = exports.ContentTypeSchema = exports.MessageTypeSchema = exports.safeParseConfig = exports.validateConfig = exports.DEFAULT_CONFIG = exports.SDKConfigBuilder = exports.WebhookPayloadSchema = exports.WebhookConfigSchema = exports.AuthenticationStateSchema = exports.ConnectionStateSchema = exports.PartialSDKConfigSchema = exports.SDKConfigSchema = exports.WebhookEventTypeSchema = exports.ResponseFormatSchema = exports.LogLevelSchema = exports.LoggerSchema = exports.AgentCommandSchema = exports.SendMessageOptionsSchema = exports.TeneoSDK = void 0;
44
+ exports.SecurePrivateKey = exports.ResponseFormatter = exports.FormattedResponseSchema = exports.ResponseMetadataSchema = exports.FormatOptionSchema = exports.isRecoverableError = exports.safeValidateEventData = exports.validateEventData = exports.ConfigurationError = exports.SignatureVerificationError = exports.RateLimitError = exports.TimeoutError = exports.ValidationError = exports.WebhookError = exports.MessageError = exports.AuthenticationError = exports.ConnectionError = exports.SDKError = exports.EventMetadataSchema = exports.ConfigurationErrorSchema = exports.SignatureVerificationErrorSchema = exports.RateLimitErrorSchema = exports.TimeoutErrorSchema = exports.ValidationErrorSchema = exports.WebhookErrorSchema = exports.MessageErrorSchema = exports.AuthenticationErrorSchema = exports.ConnectionErrorSchema = exports.SDKErrorSchema = exports.AgentResponseSchema = exports.AgentSelectedDataSchema = exports.safeParseMessage = exports.validateMessage = exports.createListRooms = exports.createUnsubscribe = exports.createSubscribe = exports.createPing = exports.createUserMessage = exports.createAuth = exports.createCheckCachedAuth = exports.createRequestChallenge = exports.isAgentsList = exports.isError = exports.isTaskResponse = exports.isAgentSelected = exports.isChallenge = exports.isAuth = exports.isAuthError = exports.isAuthSuccess = exports.AnyMessageSchema = void 0;
45
+ exports.VERSION = void 0;
46
+ exports.createTeneoSDK = createTeneoSDK;
47
+ /**
48
+ * Main SDK class for interacting with Teneo agents
49
+ * @see {@link TeneoSDK}
50
+ */
51
+ var teneo_sdk_1 = require("./teneo-sdk");
52
+ Object.defineProperty(exports, "TeneoSDK", { enumerable: true, get: function () { return teneo_sdk_1.TeneoSDK; } });
53
+ Object.defineProperty(exports, "SendMessageOptionsSchema", { enumerable: true, get: function () { return teneo_sdk_1.SendMessageOptionsSchema; } });
54
+ Object.defineProperty(exports, "AgentCommandSchema", { enumerable: true, get: function () { return teneo_sdk_1.AgentCommandSchema; } });
55
+ const teneo_sdk_2 = require("./teneo-sdk");
56
+ /**
57
+ * Configuration types, schemas, and builders
58
+ * Use SDKConfigBuilder for fluent configuration API
59
+ */
60
+ var config_1 = require("./types/config");
61
+ // Schemas
62
+ Object.defineProperty(exports, "LoggerSchema", { enumerable: true, get: function () { return config_1.LoggerSchema; } });
63
+ Object.defineProperty(exports, "LogLevelSchema", { enumerable: true, get: function () { return config_1.LogLevelSchema; } });
64
+ Object.defineProperty(exports, "ResponseFormatSchema", { enumerable: true, get: function () { return config_1.ResponseFormatSchema; } });
65
+ Object.defineProperty(exports, "WebhookEventTypeSchema", { enumerable: true, get: function () { return config_1.WebhookEventTypeSchema; } });
66
+ Object.defineProperty(exports, "SDKConfigSchema", { enumerable: true, get: function () { return config_1.SDKConfigSchema; } });
67
+ Object.defineProperty(exports, "PartialSDKConfigSchema", { enumerable: true, get: function () { return config_1.PartialSDKConfigSchema; } });
68
+ Object.defineProperty(exports, "ConnectionStateSchema", { enumerable: true, get: function () { return config_1.ConnectionStateSchema; } });
69
+ Object.defineProperty(exports, "AuthenticationStateSchema", { enumerable: true, get: function () { return config_1.AuthenticationStateSchema; } });
70
+ Object.defineProperty(exports, "WebhookConfigSchema", { enumerable: true, get: function () { return config_1.WebhookConfigSchema; } });
71
+ Object.defineProperty(exports, "WebhookPayloadSchema", { enumerable: true, get: function () { return config_1.WebhookPayloadSchema; } });
72
+ Object.defineProperty(exports, "SDKConfigBuilder", { enumerable: true, get: function () { return config_1.SDKConfigBuilder; } });
73
+ // Utilities
74
+ Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return config_1.DEFAULT_CONFIG; } });
75
+ Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return config_1.validateConfig; } });
76
+ Object.defineProperty(exports, "safeParseConfig", { enumerable: true, get: function () { return config_1.safeParseConfig; } });
77
+ /**
78
+ * Message types, schemas, and utilities
79
+ * All WebSocket message types with Zod validation
80
+ */
81
+ var messages_1 = require("./types/messages");
82
+ // Enum schemas
83
+ Object.defineProperty(exports, "MessageTypeSchema", { enumerable: true, get: function () { return messages_1.MessageTypeSchema; } });
84
+ Object.defineProperty(exports, "ContentTypeSchema", { enumerable: true, get: function () { return messages_1.ContentTypeSchema; } });
85
+ Object.defineProperty(exports, "ClientTypeSchema", { enumerable: true, get: function () { return messages_1.ClientTypeSchema; } });
86
+ Object.defineProperty(exports, "AgentTypeSchema", { enumerable: true, get: function () { return messages_1.AgentTypeSchema; } });
87
+ Object.defineProperty(exports, "AgentStatusSchema", { enumerable: true, get: function () { return messages_1.AgentStatusSchema; } });
88
+ // Supporting schemas
89
+ Object.defineProperty(exports, "CapabilitySchema", { enumerable: true, get: function () { return messages_1.CapabilitySchema; } });
90
+ Object.defineProperty(exports, "CommandSchema", { enumerable: true, get: function () { return messages_1.CommandSchema; } });
91
+ Object.defineProperty(exports, "RoomSchema", { enumerable: true, get: function () { return messages_1.RoomSchema; } });
92
+ Object.defineProperty(exports, "AgentSchema", { enumerable: true, get: function () { return messages_1.AgentSchema; } });
93
+ // Message schemas
94
+ Object.defineProperty(exports, "BaseMessageSchema", { enumerable: true, get: function () { return messages_1.BaseMessageSchema; } });
95
+ Object.defineProperty(exports, "RequestChallengeMessageSchema", { enumerable: true, get: function () { return messages_1.RequestChallengeMessageSchema; } });
96
+ Object.defineProperty(exports, "ChallengeMessageSchema", { enumerable: true, get: function () { return messages_1.ChallengeMessageSchema; } });
97
+ Object.defineProperty(exports, "CheckCachedAuthMessageSchema", { enumerable: true, get: function () { return messages_1.CheckCachedAuthMessageSchema; } });
98
+ Object.defineProperty(exports, "AuthMessageSchema", { enumerable: true, get: function () { return messages_1.AuthMessageSchema; } });
99
+ Object.defineProperty(exports, "AuthSuccessMessageSchema", { enumerable: true, get: function () { return messages_1.AuthSuccessMessageSchema; } });
100
+ Object.defineProperty(exports, "AuthErrorMessageSchema", { enumerable: true, get: function () { return messages_1.AuthErrorMessageSchema; } });
101
+ Object.defineProperty(exports, "RegisterMessageSchema", { enumerable: true, get: function () { return messages_1.RegisterMessageSchema; } });
102
+ Object.defineProperty(exports, "RegistrationSuccessMessageSchema", { enumerable: true, get: function () { return messages_1.RegistrationSuccessMessageSchema; } });
103
+ Object.defineProperty(exports, "UserMessageSchema", { enumerable: true, get: function () { return messages_1.UserMessageSchema; } });
104
+ Object.defineProperty(exports, "TaskMessageSchema", { enumerable: true, get: function () { return messages_1.TaskMessageSchema; } });
105
+ Object.defineProperty(exports, "TaskResponseMessageSchema", { enumerable: true, get: function () { return messages_1.TaskResponseMessageSchema; } });
106
+ Object.defineProperty(exports, "AgentSelectedMessageSchema", { enumerable: true, get: function () { return messages_1.AgentSelectedMessageSchema; } });
107
+ Object.defineProperty(exports, "AgentsListMessageSchema", { enumerable: true, get: function () { return messages_1.AgentsListMessageSchema; } });
108
+ Object.defineProperty(exports, "ErrorMessageSchema", { enumerable: true, get: function () { return messages_1.ErrorMessageSchema; } });
109
+ Object.defineProperty(exports, "PingMessageSchema", { enumerable: true, get: function () { return messages_1.PingMessageSchema; } });
110
+ Object.defineProperty(exports, "PongMessageSchema", { enumerable: true, get: function () { return messages_1.PongMessageSchema; } });
111
+ Object.defineProperty(exports, "SubscribeMessageSchema", { enumerable: true, get: function () { return messages_1.SubscribeMessageSchema; } });
112
+ Object.defineProperty(exports, "UnsubscribeMessageSchema", { enumerable: true, get: function () { return messages_1.UnsubscribeMessageSchema; } });
113
+ Object.defineProperty(exports, "ListRoomsMessageSchema", { enumerable: true, get: function () { return messages_1.ListRoomsMessageSchema; } });
114
+ Object.defineProperty(exports, "SubscribeResponseSchema", { enumerable: true, get: function () { return messages_1.SubscribeResponseSchema; } });
115
+ Object.defineProperty(exports, "UnsubscribeResponseSchema", { enumerable: true, get: function () { return messages_1.UnsubscribeResponseSchema; } });
116
+ Object.defineProperty(exports, "RoomInfoSchema", { enumerable: true, get: function () { return messages_1.RoomInfoSchema; } });
117
+ Object.defineProperty(exports, "ListRoomsResponseSchema", { enumerable: true, get: function () { return messages_1.ListRoomsResponseSchema; } });
118
+ Object.defineProperty(exports, "AnyMessageSchema", { enumerable: true, get: function () { return messages_1.AnyMessageSchema; } });
119
+ // Type guards
120
+ Object.defineProperty(exports, "isAuthSuccess", { enumerable: true, get: function () { return messages_1.isAuthSuccess; } });
121
+ Object.defineProperty(exports, "isAuthError", { enumerable: true, get: function () { return messages_1.isAuthError; } });
122
+ Object.defineProperty(exports, "isAuth", { enumerable: true, get: function () { return messages_1.isAuth; } });
123
+ Object.defineProperty(exports, "isChallenge", { enumerable: true, get: function () { return messages_1.isChallenge; } });
124
+ Object.defineProperty(exports, "isAgentSelected", { enumerable: true, get: function () { return messages_1.isAgentSelected; } });
125
+ Object.defineProperty(exports, "isTaskResponse", { enumerable: true, get: function () { return messages_1.isTaskResponse; } });
126
+ Object.defineProperty(exports, "isError", { enumerable: true, get: function () { return messages_1.isError; } });
127
+ Object.defineProperty(exports, "isAgentsList", { enumerable: true, get: function () { return messages_1.isAgentsList; } });
128
+ // Message factories
129
+ Object.defineProperty(exports, "createRequestChallenge", { enumerable: true, get: function () { return messages_1.createRequestChallenge; } });
130
+ Object.defineProperty(exports, "createCheckCachedAuth", { enumerable: true, get: function () { return messages_1.createCheckCachedAuth; } });
131
+ Object.defineProperty(exports, "createAuth", { enumerable: true, get: function () { return messages_1.createAuth; } });
132
+ Object.defineProperty(exports, "createUserMessage", { enumerable: true, get: function () { return messages_1.createUserMessage; } });
133
+ Object.defineProperty(exports, "createPing", { enumerable: true, get: function () { return messages_1.createPing; } });
134
+ Object.defineProperty(exports, "createSubscribe", { enumerable: true, get: function () { return messages_1.createSubscribe; } });
135
+ Object.defineProperty(exports, "createUnsubscribe", { enumerable: true, get: function () { return messages_1.createUnsubscribe; } });
136
+ Object.defineProperty(exports, "createListRooms", { enumerable: true, get: function () { return messages_1.createListRooms; } });
137
+ // Validation helpers
138
+ Object.defineProperty(exports, "validateMessage", { enumerable: true, get: function () { return messages_1.validateMessage; } });
139
+ Object.defineProperty(exports, "safeParseMessage", { enumerable: true, get: function () { return messages_1.safeParseMessage; } });
140
+ /**
141
+ * Event types, error classes, and event handling utilities
142
+ * Comprehensive typed event system for SDK lifecycle
143
+ */
144
+ var events_1 = require("./types/events");
145
+ // Schemas
146
+ Object.defineProperty(exports, "AgentSelectedDataSchema", { enumerable: true, get: function () { return events_1.AgentSelectedDataSchema; } });
147
+ Object.defineProperty(exports, "AgentResponseSchema", { enumerable: true, get: function () { return events_1.AgentResponseSchema; } });
148
+ Object.defineProperty(exports, "SDKErrorSchema", { enumerable: true, get: function () { return events_1.SDKErrorSchema; } });
149
+ Object.defineProperty(exports, "ConnectionErrorSchema", { enumerable: true, get: function () { return events_1.ConnectionErrorSchema; } });
150
+ Object.defineProperty(exports, "AuthenticationErrorSchema", { enumerable: true, get: function () { return events_1.AuthenticationErrorSchema; } });
151
+ Object.defineProperty(exports, "MessageErrorSchema", { enumerable: true, get: function () { return events_1.MessageErrorSchema; } });
152
+ Object.defineProperty(exports, "WebhookErrorSchema", { enumerable: true, get: function () { return events_1.WebhookErrorSchema; } });
153
+ Object.defineProperty(exports, "ValidationErrorSchema", { enumerable: true, get: function () { return events_1.ValidationErrorSchema; } });
154
+ Object.defineProperty(exports, "TimeoutErrorSchema", { enumerable: true, get: function () { return events_1.TimeoutErrorSchema; } });
155
+ Object.defineProperty(exports, "RateLimitErrorSchema", { enumerable: true, get: function () { return events_1.RateLimitErrorSchema; } });
156
+ Object.defineProperty(exports, "SignatureVerificationErrorSchema", { enumerable: true, get: function () { return events_1.SignatureVerificationErrorSchema; } });
157
+ Object.defineProperty(exports, "ConfigurationErrorSchema", { enumerable: true, get: function () { return events_1.ConfigurationErrorSchema; } });
158
+ Object.defineProperty(exports, "EventMetadataSchema", { enumerable: true, get: function () { return events_1.EventMetadataSchema; } });
159
+ // Error classes
160
+ Object.defineProperty(exports, "SDKError", { enumerable: true, get: function () { return events_1.SDKError; } });
161
+ Object.defineProperty(exports, "ConnectionError", { enumerable: true, get: function () { return events_1.ConnectionError; } });
162
+ Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return events_1.AuthenticationError; } });
163
+ Object.defineProperty(exports, "MessageError", { enumerable: true, get: function () { return events_1.MessageError; } });
164
+ Object.defineProperty(exports, "WebhookError", { enumerable: true, get: function () { return events_1.WebhookError; } });
165
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return events_1.ValidationError; } });
166
+ Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return events_1.TimeoutError; } });
167
+ Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return events_1.RateLimitError; } });
168
+ Object.defineProperty(exports, "SignatureVerificationError", { enumerable: true, get: function () { return events_1.SignatureVerificationError; } });
169
+ Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return events_1.ConfigurationError; } });
170
+ // Validation helpers
171
+ Object.defineProperty(exports, "validateEventData", { enumerable: true, get: function () { return events_1.validateEventData; } });
172
+ Object.defineProperty(exports, "safeValidateEventData", { enumerable: true, get: function () { return events_1.safeValidateEventData; } });
173
+ Object.defineProperty(exports, "isRecoverableError", { enumerable: true, get: function () { return events_1.isRecoverableError; } });
174
+ /**
175
+ * Response formatting utilities for agent responses
176
+ * Supports raw JSON, humanized text, or both formats
177
+ */
178
+ var response_formatter_1 = require("./formatters/response-formatter");
179
+ // Schemas
180
+ Object.defineProperty(exports, "FormatOptionSchema", { enumerable: true, get: function () { return response_formatter_1.FormatOptionSchema; } });
181
+ Object.defineProperty(exports, "ResponseMetadataSchema", { enumerable: true, get: function () { return response_formatter_1.ResponseMetadataSchema; } });
182
+ Object.defineProperty(exports, "FormattedResponseSchema", { enumerable: true, get: function () { return response_formatter_1.FormattedResponseSchema; } });
183
+ // Types and classes
184
+ Object.defineProperty(exports, "ResponseFormatter", { enumerable: true, get: function () { return response_formatter_1.ResponseFormatter; } });
185
+ /**
186
+ * Security utilities for private key management
187
+ * SEC-3: In-memory encryption for private keys
188
+ */
189
+ var secure_private_key_1 = require("./utils/secure-private-key");
190
+ Object.defineProperty(exports, "SecurePrivateKey", { enumerable: true, get: function () { return secure_private_key_1.SecurePrivateKey; } });
191
+ /**
192
+ * SDK version string
193
+ */
194
+ exports.VERSION = "1.0.0";
195
+ /**
196
+ * Quick start function to create and connect SDK
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * import { createTeneoSDK } from '@teneo-protocol/sdk';
201
+ *
202
+ * const sdk = await createTeneoSDK({
203
+ * wsUrl: 'ws://localhost:8080/ws',
204
+ * privateKey: 'your-private-key',
205
+ * autoJoinRooms: ['general']
206
+ * });
207
+ * ```
208
+ */
209
+ async function createTeneoSDK(config) {
210
+ const { TeneoSDK } = await Promise.resolve().then(() => __importStar(require("./teneo-sdk")));
211
+ const sdk = new TeneoSDK(config);
212
+ await sdk.connect();
213
+ return sdk;
214
+ }
215
+ // Default export for convenience
216
+ exports.default = teneo_sdk_2.TeneoSDK;
217
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * AgentRegistry - Manages agent state and lookup
3
+ * Handles agent caching and queries
4
+ */
5
+ import { EventEmitter } from "eventemitter3";
6
+ import { Agent, Logger } from "../types";
7
+ import { SDKEvents } from "../types/events";
8
+ export declare class AgentRegistry extends EventEmitter<SDKEvents> {
9
+ private readonly logger;
10
+ private readonly agents;
11
+ private cachedAgents?;
12
+ private isAgentsCacheDirty;
13
+ private capabilityIndex;
14
+ private nameTokenIndex;
15
+ private statusIndex;
16
+ constructor(logger: Logger);
17
+ /**
18
+ * Gets a cached list of all available agents in the network.
19
+ * Uses lazy caching with dirty flag for optimal performance.
20
+ * Returns a read-only array with defensive copies to prevent external modification.
21
+ *
22
+ * @returns Read-only array of agent copies
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const agents = agentRegistry.getAgents();
27
+ * console.log(`${agents.length} agents available`);
28
+ * agents.forEach(agent => console.log(agent.name));
29
+ * ```
30
+ */
31
+ getAgents(): ReadonlyArray<Readonly<Agent>>;
32
+ /**
33
+ * Gets a specific agent by its unique identifier.
34
+ * Performs O(1) lookup using internal Map structure.
35
+ * Returns a defensive copy to prevent external modification of agent state.
36
+ *
37
+ * @param agentId - The unique identifier of the agent
38
+ * @returns Copy of the agent object if found, undefined otherwise
39
+ * @throws {ValidationError} If agentId is invalid
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const agent = agentRegistry.getAgent('weather-agent-001');
44
+ * if (agent) {
45
+ * console.log(`Found: ${agent.name}`);
46
+ * console.log(`Capabilities: ${agent.capabilities?.length}`);
47
+ * }
48
+ * ```
49
+ */
50
+ getAgent(agentId: string): Readonly<Agent> | undefined;
51
+ /**
52
+ * Finds all agents that have a specific capability.
53
+ * PERF-3: Uses O(1) capability index lookup instead of O(n) filtering.
54
+ *
55
+ * @param capabilityName - The name of the capability to search for (case-insensitive)
56
+ * @returns Read-only array of agents with the specified capability
57
+ * @throws {ValidationError} If capabilityName is invalid
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const weatherAgents = agentRegistry.findByCapability('weather-forecast');
62
+ * console.log(`Found ${weatherAgents.length} agents with weather-forecast capability`);
63
+ * ```
64
+ */
65
+ findByCapability(capabilityName: string): ReadonlyArray<Agent>;
66
+ /**
67
+ * Finds agents by name using case-insensitive partial matching.
68
+ * PERF-3: Uses O(k) token index lookups instead of O(n) substring search,
69
+ * where k is the number of tokens in the search query.
70
+ *
71
+ * @param name - The name or partial name to search for (case-insensitive)
72
+ * @returns Read-only array of agents matching the name search
73
+ * @throws {ValidationError} If name is invalid
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * // Find all agents with "weather" in their name
78
+ * const weatherAgents = agentRegistry.findByName('weather');
79
+ * weatherAgents.forEach(agent => console.log(agent.name));
80
+ * ```
81
+ */
82
+ findByName(name: string): ReadonlyArray<Agent>;
83
+ /**
84
+ * Finds all agents with a specific status.
85
+ * PERF-3: Uses O(1) status index lookup instead of O(n) filtering.
86
+ *
87
+ * @param status - The status to search for: 'online' or 'offline' (case-insensitive)
88
+ * @returns Read-only array of agents with the specified status
89
+ * @throws {ValidationError} If status is invalid
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const onlineAgents = agentRegistry.findByStatus('online');
94
+ * console.log(`Found ${onlineAgents.length} online agents`);
95
+ * ```
96
+ */
97
+ findByStatus(status: string): ReadonlyArray<Agent>;
98
+ /**
99
+ * Updates the registry with a new list of agents.
100
+ * Merges with existing agents and marks cache as dirty.
101
+ * Emits 'agent:list' event with the new agents.
102
+ *
103
+ * @internal This method is for internal SDK use
104
+ * @param agents - Array of agents to add or update in the registry
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * // Internal SDK usage
109
+ * agentRegistry.updateAgents(newAgentList);
110
+ * ```
111
+ */
112
+ updateAgents(agents: Agent[]): void;
113
+ /**
114
+ * Updates a single agent in the registry.
115
+ * Adds new agent or updates existing one, then marks cache as dirty.
116
+ *
117
+ * @internal This method is for internal SDK use
118
+ * @param agent - The agent to add or update
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * // Internal SDK usage
123
+ * agentRegistry.updateAgent(updatedAgent);
124
+ * ```
125
+ */
126
+ updateAgent(agent: Agent): void;
127
+ /**
128
+ * Clears all agents from the registry.
129
+ * Removes all cached agents and marks cache as dirty.
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * agentRegistry.clear();
134
+ * console.log('All agents cleared');
135
+ * ```
136
+ */
137
+ clear(): void;
138
+ /**
139
+ * Destroys the agent registry and cleans up resources.
140
+ * Clears all agents and removes all event listeners.
141
+ * After destruction, the registry cannot be reused.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * agentRegistry.destroy();
146
+ * console.log('Agent registry destroyed');
147
+ * ```
148
+ */
149
+ destroy(): void;
150
+ /**
151
+ * Rebuilds the agent cache and all search indices.
152
+ * This is called automatically when the cache becomes dirty.
153
+ * PERF-3: Builds capability, name token, and status indices for O(1) lookups.
154
+ *
155
+ * @private
156
+ */
157
+ private rebuildCache;
158
+ /**
159
+ * Tokenizes a string into searchable tokens.
160
+ * Splits on whitespace and special characters, converts to lowercase.
161
+ *
162
+ * @param str - String to tokenize
163
+ * @returns Array of lowercase tokens
164
+ * @private
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * tokenizeString("Weather API v2.0") => ["weather", "api", "v2", "0"]
169
+ * ```
170
+ */
171
+ private tokenizeString;
172
+ }
173
+ //# sourceMappingURL=agent-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-registry.d.ts","sourceRoot":"","sources":["../../src/managers/agent-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,qBAAa,aAAc,SAAQ,YAAY,CAAC,SAAS,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,kBAAkB,CAAQ;IAGlC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,WAAW,CAAkC;gBAEzC,MAAM,EAAE,MAAM;IAK1B;;;;;;;;;;;;;OAaG;IACI,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAOlD;;;;;;;;;;;;;;;;;OAiBG;IACI,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,SAAS;IAQ7D;;;;;;;;;;;;;OAaG;IACI,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;IAwBrE;;;;;;;;;;;;;;;OAeG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;IAqCrD;;;;;;;;;;;;;OAaG;IACI,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;IAwBzD;;;;;;;;;;;;;OAaG;IACI,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAW1C;;;;;;;;;;;;OAYG;IACI,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAMtC;;;;;;;;;OASG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;;;;;;;OAUG;IACI,OAAO,IAAI,IAAI;IAMtB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IA0CpB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc;CAMvB"}