@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
@@ -0,0 +1,1047 @@
1
+ /**
2
+ * Configuration schemas for Teneo Protocol SDK using Zod
3
+ * Provides runtime validation and TypeScript type inference
4
+ */
5
+ import { z } from "zod";
6
+ import { MessageType } from "./messages";
7
+ import { type RetryStrategy } from "../utils/retry-policy";
8
+ import type { SecurePrivateKey } from "../utils/secure-private-key";
9
+ export interface Logger {
10
+ debug: (message: string, data?: any) => void;
11
+ info: (message: string, data?: any) => void;
12
+ warn: (message: string, data?: any) => void;
13
+ error: (message: string, data?: any) => void;
14
+ }
15
+ export declare const LoggerSchema: z.ZodType<Logger>;
16
+ export declare const LogLevelSchema: z.ZodEnum<["debug", "info", "warn", "error", "silent"]>;
17
+ export declare const ResponseFormatSchema: z.ZodEnum<["raw", "humanized", "both"]>;
18
+ export declare const WebhookEventTypeSchema: z.ZodEnum<["message", "task", "task_response", "agent_selected", "error", "connection_state", "auth_state"]>;
19
+ export declare const SDKConfigSchema: z.ZodObject<{
20
+ wsUrl: z.ZodEffects<z.ZodString, string, string>;
21
+ privateKey: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<SecurePrivateKey, z.ZodTypeDef, SecurePrivateKey>]>>;
22
+ walletAddress: z.ZodOptional<z.ZodString>;
23
+ clientType: z.ZodOptional<z.ZodEnum<["user", "agent", "coordinator"]>>;
24
+ clientName: z.ZodOptional<z.ZodString>;
25
+ autoJoinRooms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
26
+ webhookUrl: z.ZodOptional<z.ZodString>;
27
+ webhookHeaders: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
28
+ webhookRetries: z.ZodOptional<z.ZodNumber>;
29
+ webhookTimeout: z.ZodOptional<z.ZodNumber>;
30
+ webhookRetryStrategy: z.ZodOptional<z.ZodObject<{
31
+ type: z.ZodEnum<["exponential", "linear", "constant"]>;
32
+ baseDelay: z.ZodNumber;
33
+ maxDelay: z.ZodNumber;
34
+ maxAttempts: z.ZodNumber;
35
+ jitter: z.ZodBoolean;
36
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ type: "exponential" | "linear" | "constant";
39
+ baseDelay: number;
40
+ maxDelay: number;
41
+ maxAttempts: number;
42
+ jitter: boolean;
43
+ backoffMultiplier?: number | undefined;
44
+ }, {
45
+ type: "exponential" | "linear" | "constant";
46
+ baseDelay: number;
47
+ maxDelay: number;
48
+ maxAttempts: number;
49
+ jitter: boolean;
50
+ backoffMultiplier?: number | undefined;
51
+ }>>;
52
+ reconnect: z.ZodOptional<z.ZodBoolean>;
53
+ reconnectDelay: z.ZodOptional<z.ZodNumber>;
54
+ maxReconnectAttempts: z.ZodOptional<z.ZodNumber>;
55
+ connectionTimeout: z.ZodOptional<z.ZodNumber>;
56
+ reconnectStrategy: z.ZodOptional<z.ZodObject<{
57
+ type: z.ZodEnum<["exponential", "linear", "constant"]>;
58
+ baseDelay: z.ZodNumber;
59
+ maxDelay: z.ZodNumber;
60
+ maxAttempts: z.ZodNumber;
61
+ jitter: z.ZodBoolean;
62
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
63
+ }, "strip", z.ZodTypeAny, {
64
+ type: "exponential" | "linear" | "constant";
65
+ baseDelay: number;
66
+ maxDelay: number;
67
+ maxAttempts: number;
68
+ jitter: boolean;
69
+ backoffMultiplier?: number | undefined;
70
+ }, {
71
+ type: "exponential" | "linear" | "constant";
72
+ baseDelay: number;
73
+ maxDelay: number;
74
+ maxAttempts: number;
75
+ jitter: boolean;
76
+ backoffMultiplier?: number | undefined;
77
+ }>>;
78
+ messageTimeout: z.ZodOptional<z.ZodNumber>;
79
+ maxMessageSize: z.ZodOptional<z.ZodNumber>;
80
+ maxMessagesPerSecond: z.ZodOptional<z.ZodNumber>;
81
+ responseFormat: z.ZodOptional<z.ZodEnum<["raw", "humanized", "both"]>>;
82
+ includeMetadata: z.ZodOptional<z.ZodBoolean>;
83
+ logLevel: z.ZodOptional<z.ZodEnum<["debug", "info", "warn", "error", "silent"]>>;
84
+ logger: z.ZodOptional<z.ZodType<Logger, z.ZodTypeDef, Logger>>;
85
+ enableCache: z.ZodOptional<z.ZodBoolean>;
86
+ cacheTimeout: z.ZodOptional<z.ZodNumber>;
87
+ maxCacheSize: z.ZodOptional<z.ZodNumber>;
88
+ validateSignatures: z.ZodOptional<z.ZodBoolean>;
89
+ trustedAgentAddresses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
90
+ requireSignaturesFor: z.ZodOptional<z.ZodArray<z.ZodEnum<["request_challenge", "challenge", "check_cached_auth", "auth", "auth_required", "auth_success", "auth_error", "register", "registration_success", "message", "task", "task_response", "agent_selected", "agents", "error", "ping", "pong", "capabilities", "subscribe", "unsubscribe", "list_rooms"]>, "many">>;
91
+ strictSignatureValidation: z.ZodOptional<z.ZodBoolean>;
92
+ allowInsecureWebhooks: z.ZodOptional<z.ZodBoolean>;
93
+ enableMessageDeduplication: z.ZodOptional<z.ZodBoolean>;
94
+ messageDedupeTtl: z.ZodOptional<z.ZodNumber>;
95
+ messageDedupMaxSize: z.ZodOptional<z.ZodNumber>;
96
+ }, "strip", z.ZodTypeAny, {
97
+ wsUrl: string;
98
+ webhookUrl?: string | undefined;
99
+ privateKey?: string | SecurePrivateKey | undefined;
100
+ walletAddress?: string | undefined;
101
+ clientType?: "user" | "agent" | "coordinator" | undefined;
102
+ clientName?: string | undefined;
103
+ autoJoinRooms?: string[] | undefined;
104
+ webhookHeaders?: Record<string, string> | undefined;
105
+ webhookRetries?: number | undefined;
106
+ webhookTimeout?: number | undefined;
107
+ webhookRetryStrategy?: {
108
+ type: "exponential" | "linear" | "constant";
109
+ baseDelay: number;
110
+ maxDelay: number;
111
+ maxAttempts: number;
112
+ jitter: boolean;
113
+ backoffMultiplier?: number | undefined;
114
+ } | undefined;
115
+ reconnect?: boolean | undefined;
116
+ reconnectDelay?: number | undefined;
117
+ maxReconnectAttempts?: number | undefined;
118
+ connectionTimeout?: number | undefined;
119
+ reconnectStrategy?: {
120
+ type: "exponential" | "linear" | "constant";
121
+ baseDelay: number;
122
+ maxDelay: number;
123
+ maxAttempts: number;
124
+ jitter: boolean;
125
+ backoffMultiplier?: number | undefined;
126
+ } | undefined;
127
+ messageTimeout?: number | undefined;
128
+ maxMessageSize?: number | undefined;
129
+ maxMessagesPerSecond?: number | undefined;
130
+ responseFormat?: "raw" | "humanized" | "both" | undefined;
131
+ includeMetadata?: boolean | undefined;
132
+ logLevel?: "error" | "debug" | "info" | "warn" | "silent" | undefined;
133
+ logger?: Logger | undefined;
134
+ enableCache?: boolean | undefined;
135
+ cacheTimeout?: number | undefined;
136
+ maxCacheSize?: number | undefined;
137
+ validateSignatures?: boolean | undefined;
138
+ trustedAgentAddresses?: string[] | undefined;
139
+ requireSignaturesFor?: ("message" | "request_challenge" | "challenge" | "check_cached_auth" | "auth" | "auth_required" | "auth_success" | "auth_error" | "register" | "registration_success" | "task" | "task_response" | "agent_selected" | "agents" | "error" | "ping" | "pong" | "capabilities" | "subscribe" | "unsubscribe" | "list_rooms")[] | undefined;
140
+ strictSignatureValidation?: boolean | undefined;
141
+ allowInsecureWebhooks?: boolean | undefined;
142
+ enableMessageDeduplication?: boolean | undefined;
143
+ messageDedupeTtl?: number | undefined;
144
+ messageDedupMaxSize?: number | undefined;
145
+ }, {
146
+ wsUrl: string;
147
+ webhookUrl?: string | undefined;
148
+ privateKey?: string | SecurePrivateKey | undefined;
149
+ walletAddress?: string | undefined;
150
+ clientType?: "user" | "agent" | "coordinator" | undefined;
151
+ clientName?: string | undefined;
152
+ autoJoinRooms?: string[] | undefined;
153
+ webhookHeaders?: Record<string, string> | undefined;
154
+ webhookRetries?: number | undefined;
155
+ webhookTimeout?: number | undefined;
156
+ webhookRetryStrategy?: {
157
+ type: "exponential" | "linear" | "constant";
158
+ baseDelay: number;
159
+ maxDelay: number;
160
+ maxAttempts: number;
161
+ jitter: boolean;
162
+ backoffMultiplier?: number | undefined;
163
+ } | undefined;
164
+ reconnect?: boolean | undefined;
165
+ reconnectDelay?: number | undefined;
166
+ maxReconnectAttempts?: number | undefined;
167
+ connectionTimeout?: number | undefined;
168
+ reconnectStrategy?: {
169
+ type: "exponential" | "linear" | "constant";
170
+ baseDelay: number;
171
+ maxDelay: number;
172
+ maxAttempts: number;
173
+ jitter: boolean;
174
+ backoffMultiplier?: number | undefined;
175
+ } | undefined;
176
+ messageTimeout?: number | undefined;
177
+ maxMessageSize?: number | undefined;
178
+ maxMessagesPerSecond?: number | undefined;
179
+ responseFormat?: "raw" | "humanized" | "both" | undefined;
180
+ includeMetadata?: boolean | undefined;
181
+ logLevel?: "error" | "debug" | "info" | "warn" | "silent" | undefined;
182
+ logger?: Logger | undefined;
183
+ enableCache?: boolean | undefined;
184
+ cacheTimeout?: number | undefined;
185
+ maxCacheSize?: number | undefined;
186
+ validateSignatures?: boolean | undefined;
187
+ trustedAgentAddresses?: string[] | undefined;
188
+ requireSignaturesFor?: ("message" | "request_challenge" | "challenge" | "check_cached_auth" | "auth" | "auth_required" | "auth_success" | "auth_error" | "register" | "registration_success" | "task" | "task_response" | "agent_selected" | "agents" | "error" | "ping" | "pong" | "capabilities" | "subscribe" | "unsubscribe" | "list_rooms")[] | undefined;
189
+ strictSignatureValidation?: boolean | undefined;
190
+ allowInsecureWebhooks?: boolean | undefined;
191
+ enableMessageDeduplication?: boolean | undefined;
192
+ messageDedupeTtl?: number | undefined;
193
+ messageDedupMaxSize?: number | undefined;
194
+ }>;
195
+ export declare const PartialSDKConfigSchema: z.ZodEffects<z.ZodObject<{
196
+ wsUrl: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
197
+ privateKey: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodType<SecurePrivateKey, z.ZodTypeDef, SecurePrivateKey>]>>>;
198
+ walletAddress: z.ZodOptional<z.ZodOptional<z.ZodString>>;
199
+ clientType: z.ZodOptional<z.ZodOptional<z.ZodEnum<["user", "agent", "coordinator"]>>>;
200
+ clientName: z.ZodOptional<z.ZodOptional<z.ZodString>>;
201
+ autoJoinRooms: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
202
+ webhookUrl: z.ZodOptional<z.ZodOptional<z.ZodString>>;
203
+ webhookHeaders: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
204
+ webhookRetries: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
205
+ webhookTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
206
+ webhookRetryStrategy: z.ZodOptional<z.ZodOptional<z.ZodObject<{
207
+ type: z.ZodEnum<["exponential", "linear", "constant"]>;
208
+ baseDelay: z.ZodNumber;
209
+ maxDelay: z.ZodNumber;
210
+ maxAttempts: z.ZodNumber;
211
+ jitter: z.ZodBoolean;
212
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
213
+ }, "strip", z.ZodTypeAny, {
214
+ type: "exponential" | "linear" | "constant";
215
+ baseDelay: number;
216
+ maxDelay: number;
217
+ maxAttempts: number;
218
+ jitter: boolean;
219
+ backoffMultiplier?: number | undefined;
220
+ }, {
221
+ type: "exponential" | "linear" | "constant";
222
+ baseDelay: number;
223
+ maxDelay: number;
224
+ maxAttempts: number;
225
+ jitter: boolean;
226
+ backoffMultiplier?: number | undefined;
227
+ }>>>;
228
+ reconnect: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
229
+ reconnectDelay: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
230
+ maxReconnectAttempts: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
231
+ connectionTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
232
+ reconnectStrategy: z.ZodOptional<z.ZodOptional<z.ZodObject<{
233
+ type: z.ZodEnum<["exponential", "linear", "constant"]>;
234
+ baseDelay: z.ZodNumber;
235
+ maxDelay: z.ZodNumber;
236
+ maxAttempts: z.ZodNumber;
237
+ jitter: z.ZodBoolean;
238
+ backoffMultiplier: z.ZodOptional<z.ZodNumber>;
239
+ }, "strip", z.ZodTypeAny, {
240
+ type: "exponential" | "linear" | "constant";
241
+ baseDelay: number;
242
+ maxDelay: number;
243
+ maxAttempts: number;
244
+ jitter: boolean;
245
+ backoffMultiplier?: number | undefined;
246
+ }, {
247
+ type: "exponential" | "linear" | "constant";
248
+ baseDelay: number;
249
+ maxDelay: number;
250
+ maxAttempts: number;
251
+ jitter: boolean;
252
+ backoffMultiplier?: number | undefined;
253
+ }>>>;
254
+ messageTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
255
+ maxMessageSize: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
256
+ maxMessagesPerSecond: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
257
+ responseFormat: z.ZodOptional<z.ZodOptional<z.ZodEnum<["raw", "humanized", "both"]>>>;
258
+ includeMetadata: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
259
+ logLevel: z.ZodOptional<z.ZodOptional<z.ZodEnum<["debug", "info", "warn", "error", "silent"]>>>;
260
+ logger: z.ZodOptional<z.ZodOptional<z.ZodType<Logger, z.ZodTypeDef, Logger>>>;
261
+ enableCache: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
262
+ cacheTimeout: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
263
+ maxCacheSize: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
264
+ validateSignatures: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
265
+ trustedAgentAddresses: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
266
+ requireSignaturesFor: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodEnum<["request_challenge", "challenge", "check_cached_auth", "auth", "auth_required", "auth_success", "auth_error", "register", "registration_success", "message", "task", "task_response", "agent_selected", "agents", "error", "ping", "pong", "capabilities", "subscribe", "unsubscribe", "list_rooms"]>, "many">>>;
267
+ strictSignatureValidation: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
268
+ allowInsecureWebhooks: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
269
+ enableMessageDeduplication: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
270
+ messageDedupeTtl: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
271
+ messageDedupMaxSize: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
272
+ }, "strip", z.ZodTypeAny, {
273
+ webhookUrl?: string | undefined;
274
+ wsUrl?: string | undefined;
275
+ privateKey?: string | SecurePrivateKey | undefined;
276
+ walletAddress?: string | undefined;
277
+ clientType?: "user" | "agent" | "coordinator" | undefined;
278
+ clientName?: string | undefined;
279
+ autoJoinRooms?: string[] | undefined;
280
+ webhookHeaders?: Record<string, string> | undefined;
281
+ webhookRetries?: number | undefined;
282
+ webhookTimeout?: number | undefined;
283
+ webhookRetryStrategy?: {
284
+ type: "exponential" | "linear" | "constant";
285
+ baseDelay: number;
286
+ maxDelay: number;
287
+ maxAttempts: number;
288
+ jitter: boolean;
289
+ backoffMultiplier?: number | undefined;
290
+ } | undefined;
291
+ reconnect?: boolean | undefined;
292
+ reconnectDelay?: number | undefined;
293
+ maxReconnectAttempts?: number | undefined;
294
+ connectionTimeout?: number | undefined;
295
+ reconnectStrategy?: {
296
+ type: "exponential" | "linear" | "constant";
297
+ baseDelay: number;
298
+ maxDelay: number;
299
+ maxAttempts: number;
300
+ jitter: boolean;
301
+ backoffMultiplier?: number | undefined;
302
+ } | undefined;
303
+ messageTimeout?: number | undefined;
304
+ maxMessageSize?: number | undefined;
305
+ maxMessagesPerSecond?: number | undefined;
306
+ responseFormat?: "raw" | "humanized" | "both" | undefined;
307
+ includeMetadata?: boolean | undefined;
308
+ logLevel?: "error" | "debug" | "info" | "warn" | "silent" | undefined;
309
+ logger?: Logger | undefined;
310
+ enableCache?: boolean | undefined;
311
+ cacheTimeout?: number | undefined;
312
+ maxCacheSize?: number | undefined;
313
+ validateSignatures?: boolean | undefined;
314
+ trustedAgentAddresses?: string[] | undefined;
315
+ requireSignaturesFor?: ("message" | "request_challenge" | "challenge" | "check_cached_auth" | "auth" | "auth_required" | "auth_success" | "auth_error" | "register" | "registration_success" | "task" | "task_response" | "agent_selected" | "agents" | "error" | "ping" | "pong" | "capabilities" | "subscribe" | "unsubscribe" | "list_rooms")[] | undefined;
316
+ strictSignatureValidation?: boolean | undefined;
317
+ allowInsecureWebhooks?: boolean | undefined;
318
+ enableMessageDeduplication?: boolean | undefined;
319
+ messageDedupeTtl?: number | undefined;
320
+ messageDedupMaxSize?: number | undefined;
321
+ }, {
322
+ webhookUrl?: string | undefined;
323
+ wsUrl?: string | undefined;
324
+ privateKey?: string | SecurePrivateKey | undefined;
325
+ walletAddress?: string | undefined;
326
+ clientType?: "user" | "agent" | "coordinator" | undefined;
327
+ clientName?: string | undefined;
328
+ autoJoinRooms?: string[] | undefined;
329
+ webhookHeaders?: Record<string, string> | undefined;
330
+ webhookRetries?: number | undefined;
331
+ webhookTimeout?: number | undefined;
332
+ webhookRetryStrategy?: {
333
+ type: "exponential" | "linear" | "constant";
334
+ baseDelay: number;
335
+ maxDelay: number;
336
+ maxAttempts: number;
337
+ jitter: boolean;
338
+ backoffMultiplier?: number | undefined;
339
+ } | undefined;
340
+ reconnect?: boolean | undefined;
341
+ reconnectDelay?: number | undefined;
342
+ maxReconnectAttempts?: number | undefined;
343
+ connectionTimeout?: number | undefined;
344
+ reconnectStrategy?: {
345
+ type: "exponential" | "linear" | "constant";
346
+ baseDelay: number;
347
+ maxDelay: number;
348
+ maxAttempts: number;
349
+ jitter: boolean;
350
+ backoffMultiplier?: number | undefined;
351
+ } | undefined;
352
+ messageTimeout?: number | undefined;
353
+ maxMessageSize?: number | undefined;
354
+ maxMessagesPerSecond?: number | undefined;
355
+ responseFormat?: "raw" | "humanized" | "both" | undefined;
356
+ includeMetadata?: boolean | undefined;
357
+ logLevel?: "error" | "debug" | "info" | "warn" | "silent" | undefined;
358
+ logger?: Logger | undefined;
359
+ enableCache?: boolean | undefined;
360
+ cacheTimeout?: number | undefined;
361
+ maxCacheSize?: number | undefined;
362
+ validateSignatures?: boolean | undefined;
363
+ trustedAgentAddresses?: string[] | undefined;
364
+ requireSignaturesFor?: ("message" | "request_challenge" | "challenge" | "check_cached_auth" | "auth" | "auth_required" | "auth_success" | "auth_error" | "register" | "registration_success" | "task" | "task_response" | "agent_selected" | "agents" | "error" | "ping" | "pong" | "capabilities" | "subscribe" | "unsubscribe" | "list_rooms")[] | undefined;
365
+ strictSignatureValidation?: boolean | undefined;
366
+ allowInsecureWebhooks?: boolean | undefined;
367
+ enableMessageDeduplication?: boolean | undefined;
368
+ messageDedupeTtl?: number | undefined;
369
+ messageDedupMaxSize?: number | undefined;
370
+ }>, {
371
+ webhookUrl?: string | undefined;
372
+ wsUrl?: string | undefined;
373
+ privateKey?: string | SecurePrivateKey | undefined;
374
+ walletAddress?: string | undefined;
375
+ clientType?: "user" | "agent" | "coordinator" | undefined;
376
+ clientName?: string | undefined;
377
+ autoJoinRooms?: string[] | undefined;
378
+ webhookHeaders?: Record<string, string> | undefined;
379
+ webhookRetries?: number | undefined;
380
+ webhookTimeout?: number | undefined;
381
+ webhookRetryStrategy?: {
382
+ type: "exponential" | "linear" | "constant";
383
+ baseDelay: number;
384
+ maxDelay: number;
385
+ maxAttempts: number;
386
+ jitter: boolean;
387
+ backoffMultiplier?: number | undefined;
388
+ } | undefined;
389
+ reconnect?: boolean | undefined;
390
+ reconnectDelay?: number | undefined;
391
+ maxReconnectAttempts?: number | undefined;
392
+ connectionTimeout?: number | undefined;
393
+ reconnectStrategy?: {
394
+ type: "exponential" | "linear" | "constant";
395
+ baseDelay: number;
396
+ maxDelay: number;
397
+ maxAttempts: number;
398
+ jitter: boolean;
399
+ backoffMultiplier?: number | undefined;
400
+ } | undefined;
401
+ messageTimeout?: number | undefined;
402
+ maxMessageSize?: number | undefined;
403
+ maxMessagesPerSecond?: number | undefined;
404
+ responseFormat?: "raw" | "humanized" | "both" | undefined;
405
+ includeMetadata?: boolean | undefined;
406
+ logLevel?: "error" | "debug" | "info" | "warn" | "silent" | undefined;
407
+ logger?: Logger | undefined;
408
+ enableCache?: boolean | undefined;
409
+ cacheTimeout?: number | undefined;
410
+ maxCacheSize?: number | undefined;
411
+ validateSignatures?: boolean | undefined;
412
+ trustedAgentAddresses?: string[] | undefined;
413
+ requireSignaturesFor?: ("message" | "request_challenge" | "challenge" | "check_cached_auth" | "auth" | "auth_required" | "auth_success" | "auth_error" | "register" | "registration_success" | "task" | "task_response" | "agent_selected" | "agents" | "error" | "ping" | "pong" | "capabilities" | "subscribe" | "unsubscribe" | "list_rooms")[] | undefined;
414
+ strictSignatureValidation?: boolean | undefined;
415
+ allowInsecureWebhooks?: boolean | undefined;
416
+ enableMessageDeduplication?: boolean | undefined;
417
+ messageDedupeTtl?: number | undefined;
418
+ messageDedupMaxSize?: number | undefined;
419
+ }, {
420
+ webhookUrl?: string | undefined;
421
+ wsUrl?: string | undefined;
422
+ privateKey?: string | SecurePrivateKey | undefined;
423
+ walletAddress?: string | undefined;
424
+ clientType?: "user" | "agent" | "coordinator" | undefined;
425
+ clientName?: string | undefined;
426
+ autoJoinRooms?: string[] | undefined;
427
+ webhookHeaders?: Record<string, string> | undefined;
428
+ webhookRetries?: number | undefined;
429
+ webhookTimeout?: number | undefined;
430
+ webhookRetryStrategy?: {
431
+ type: "exponential" | "linear" | "constant";
432
+ baseDelay: number;
433
+ maxDelay: number;
434
+ maxAttempts: number;
435
+ jitter: boolean;
436
+ backoffMultiplier?: number | undefined;
437
+ } | undefined;
438
+ reconnect?: boolean | undefined;
439
+ reconnectDelay?: number | undefined;
440
+ maxReconnectAttempts?: number | undefined;
441
+ connectionTimeout?: number | undefined;
442
+ reconnectStrategy?: {
443
+ type: "exponential" | "linear" | "constant";
444
+ baseDelay: number;
445
+ maxDelay: number;
446
+ maxAttempts: number;
447
+ jitter: boolean;
448
+ backoffMultiplier?: number | undefined;
449
+ } | undefined;
450
+ messageTimeout?: number | undefined;
451
+ maxMessageSize?: number | undefined;
452
+ maxMessagesPerSecond?: number | undefined;
453
+ responseFormat?: "raw" | "humanized" | "both" | undefined;
454
+ includeMetadata?: boolean | undefined;
455
+ logLevel?: "error" | "debug" | "info" | "warn" | "silent" | undefined;
456
+ logger?: Logger | undefined;
457
+ enableCache?: boolean | undefined;
458
+ cacheTimeout?: number | undefined;
459
+ maxCacheSize?: number | undefined;
460
+ validateSignatures?: boolean | undefined;
461
+ trustedAgentAddresses?: string[] | undefined;
462
+ requireSignaturesFor?: ("message" | "request_challenge" | "challenge" | "check_cached_auth" | "auth" | "auth_required" | "auth_success" | "auth_error" | "register" | "registration_success" | "task" | "task_response" | "agent_selected" | "agents" | "error" | "ping" | "pong" | "capabilities" | "subscribe" | "unsubscribe" | "list_rooms")[] | undefined;
463
+ strictSignatureValidation?: boolean | undefined;
464
+ allowInsecureWebhooks?: boolean | undefined;
465
+ enableMessageDeduplication?: boolean | undefined;
466
+ messageDedupeTtl?: number | undefined;
467
+ messageDedupMaxSize?: number | undefined;
468
+ }>;
469
+ export declare const ConnectionStateSchema: z.ZodObject<{
470
+ connected: z.ZodBoolean;
471
+ authenticated: z.ZodBoolean;
472
+ reconnecting: z.ZodBoolean;
473
+ reconnectAttempts: z.ZodNumber;
474
+ lastError: z.ZodOptional<z.ZodType<Error, z.ZodTypeDef, Error>>;
475
+ lastConnectedAt: z.ZodOptional<z.ZodDate>;
476
+ lastDisconnectedAt: z.ZodOptional<z.ZodDate>;
477
+ }, "strip", z.ZodTypeAny, {
478
+ connected: boolean;
479
+ authenticated: boolean;
480
+ reconnecting: boolean;
481
+ reconnectAttempts: number;
482
+ lastError?: Error | undefined;
483
+ lastConnectedAt?: Date | undefined;
484
+ lastDisconnectedAt?: Date | undefined;
485
+ }, {
486
+ connected: boolean;
487
+ authenticated: boolean;
488
+ reconnecting: boolean;
489
+ reconnectAttempts: number;
490
+ lastError?: Error | undefined;
491
+ lastConnectedAt?: Date | undefined;
492
+ lastDisconnectedAt?: Date | undefined;
493
+ }>;
494
+ export declare const AuthenticationStateSchema: z.ZodObject<{
495
+ authenticated: z.ZodBoolean;
496
+ clientId: z.ZodOptional<z.ZodString>;
497
+ walletAddress: z.ZodOptional<z.ZodString>;
498
+ isWhitelisted: z.ZodOptional<z.ZodBoolean>;
499
+ isAdmin: z.ZodOptional<z.ZodBoolean>;
500
+ nftVerified: z.ZodOptional<z.ZodBoolean>;
501
+ rooms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
502
+ roomObjects: z.ZodOptional<z.ZodArray<z.ZodObject<{
503
+ id: z.ZodString;
504
+ name: z.ZodString;
505
+ description: z.ZodOptional<z.ZodString>;
506
+ is_public: z.ZodPipeline<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodString, boolean, string>]>, z.ZodBoolean>;
507
+ is_active: z.ZodPipeline<z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodString, boolean, string>]>, z.ZodBoolean>;
508
+ created_by: z.ZodString;
509
+ created_at: z.ZodString;
510
+ updated_at: z.ZodString;
511
+ }, "strip", z.ZodTypeAny, {
512
+ name: string;
513
+ id: string;
514
+ is_public: boolean;
515
+ is_active: boolean;
516
+ created_by: string;
517
+ created_at: string;
518
+ updated_at: string;
519
+ description?: string | undefined;
520
+ }, {
521
+ name: string;
522
+ id: string;
523
+ is_public: string | boolean;
524
+ is_active: string | boolean;
525
+ created_by: string;
526
+ created_at: string;
527
+ updated_at: string;
528
+ description?: string | undefined;
529
+ }>, "many">>;
530
+ privateRoomId: z.ZodOptional<z.ZodString>;
531
+ challenge: z.ZodOptional<z.ZodString>;
532
+ challengeTimestamp: z.ZodOptional<z.ZodNumber>;
533
+ }, "strip", z.ZodTypeAny, {
534
+ authenticated: boolean;
535
+ challenge?: string | undefined;
536
+ rooms?: string[] | undefined;
537
+ walletAddress?: string | undefined;
538
+ clientId?: string | undefined;
539
+ isWhitelisted?: boolean | undefined;
540
+ isAdmin?: boolean | undefined;
541
+ nftVerified?: boolean | undefined;
542
+ roomObjects?: {
543
+ name: string;
544
+ id: string;
545
+ is_public: boolean;
546
+ is_active: boolean;
547
+ created_by: string;
548
+ created_at: string;
549
+ updated_at: string;
550
+ description?: string | undefined;
551
+ }[] | undefined;
552
+ privateRoomId?: string | undefined;
553
+ challengeTimestamp?: number | undefined;
554
+ }, {
555
+ authenticated: boolean;
556
+ challenge?: string | undefined;
557
+ rooms?: string[] | undefined;
558
+ walletAddress?: string | undefined;
559
+ clientId?: string | undefined;
560
+ isWhitelisted?: boolean | undefined;
561
+ isAdmin?: boolean | undefined;
562
+ nftVerified?: boolean | undefined;
563
+ roomObjects?: {
564
+ name: string;
565
+ id: string;
566
+ is_public: string | boolean;
567
+ is_active: string | boolean;
568
+ created_by: string;
569
+ created_at: string;
570
+ updated_at: string;
571
+ description?: string | undefined;
572
+ }[] | undefined;
573
+ privateRoomId?: string | undefined;
574
+ challengeTimestamp?: number | undefined;
575
+ }>;
576
+ export declare const WebhookConfigSchema: z.ZodObject<{
577
+ url: z.ZodString;
578
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
579
+ retries: z.ZodOptional<z.ZodNumber>;
580
+ timeout: z.ZodOptional<z.ZodNumber>;
581
+ events: z.ZodOptional<z.ZodArray<z.ZodEnum<["message", "task", "task_response", "agent_selected", "error", "connection_state", "auth_state"]>, "many">>;
582
+ }, "strip", z.ZodTypeAny, {
583
+ url: string;
584
+ headers?: Record<string, string> | undefined;
585
+ retries?: number | undefined;
586
+ timeout?: number | undefined;
587
+ events?: ("message" | "task" | "task_response" | "agent_selected" | "error" | "connection_state" | "auth_state")[] | undefined;
588
+ }, {
589
+ url: string;
590
+ headers?: Record<string, string> | undefined;
591
+ retries?: number | undefined;
592
+ timeout?: number | undefined;
593
+ events?: ("message" | "task" | "task_response" | "agent_selected" | "error" | "connection_state" | "auth_state")[] | undefined;
594
+ }>;
595
+ export declare const WebhookPayloadSchema: z.ZodObject<{
596
+ event: z.ZodEnum<["message", "task", "task_response", "agent_selected", "error", "connection_state", "auth_state"]>;
597
+ timestamp: z.ZodString;
598
+ data: z.ZodAny;
599
+ metadata: z.ZodOptional<z.ZodObject<{
600
+ clientId: z.ZodOptional<z.ZodString>;
601
+ roomId: z.ZodOptional<z.ZodString>;
602
+ agentId: z.ZodOptional<z.ZodString>;
603
+ taskId: z.ZodOptional<z.ZodString>;
604
+ }, "strip", z.ZodTypeAny, {
605
+ clientId?: string | undefined;
606
+ roomId?: string | undefined;
607
+ agentId?: string | undefined;
608
+ taskId?: string | undefined;
609
+ }, {
610
+ clientId?: string | undefined;
611
+ roomId?: string | undefined;
612
+ agentId?: string | undefined;
613
+ taskId?: string | undefined;
614
+ }>>;
615
+ }, "strip", z.ZodTypeAny, {
616
+ timestamp: string;
617
+ event: "message" | "task" | "task_response" | "agent_selected" | "error" | "connection_state" | "auth_state";
618
+ data?: any;
619
+ metadata?: {
620
+ clientId?: string | undefined;
621
+ roomId?: string | undefined;
622
+ agentId?: string | undefined;
623
+ taskId?: string | undefined;
624
+ } | undefined;
625
+ }, {
626
+ timestamp: string;
627
+ event: "message" | "task" | "task_response" | "agent_selected" | "error" | "connection_state" | "auth_state";
628
+ data?: any;
629
+ metadata?: {
630
+ clientId?: string | undefined;
631
+ roomId?: string | undefined;
632
+ agentId?: string | undefined;
633
+ taskId?: string | undefined;
634
+ } | undefined;
635
+ }>;
636
+ export type LogLevel = z.infer<typeof LogLevelSchema>;
637
+ export type ResponseFormat = z.infer<typeof ResponseFormatSchema>;
638
+ export type WebhookEventType = z.infer<typeof WebhookEventTypeSchema>;
639
+ export type SDKConfig = z.infer<typeof SDKConfigSchema>;
640
+ export type PartialSDKConfig = z.infer<typeof PartialSDKConfigSchema>;
641
+ export type ConnectionState = z.infer<typeof ConnectionStateSchema>;
642
+ export type AuthenticationState = z.infer<typeof AuthenticationStateSchema>;
643
+ export type WebhookConfig = z.infer<typeof WebhookConfigSchema>;
644
+ export type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;
645
+ export type { RetryStrategy };
646
+ export declare const DEFAULT_CONFIG: PartialSDKConfig;
647
+ export declare function validateConfig(config: unknown): SDKConfig;
648
+ export declare function safeParseConfig(config: unknown): {
649
+ success: boolean;
650
+ data?: SDKConfig;
651
+ error?: z.ZodError | Error;
652
+ };
653
+ /**
654
+ * Fluent API builder for creating Teneo SDK configurations with validation.
655
+ * Provides a chainable interface for configuring the SDK with runtime validation
656
+ * at each step. Call `.build()` to create the final validated configuration.
657
+ *
658
+ * This is the recommended way to configure the SDK for complex setups, as it provides
659
+ * better IDE intellisense, method chaining, and validates each configuration option
660
+ * as you set it.
661
+ *
662
+ * @example
663
+ * ```typescript
664
+ * // Basic configuration
665
+ * const config = new SDKConfigBuilder()
666
+ * .withWebSocketUrl('wss://teneo.example.com')
667
+ * .withAuthentication('0x...')
668
+ * .build();
669
+ *
670
+ * const sdk = new TeneoSDK(config);
671
+ *
672
+ * // Full configuration with all options
673
+ * const config = new SDKConfigBuilder()
674
+ * .withWebSocketUrl('wss://teneo.example.com')
675
+ * .withAuthentication('0x...', '0xYourWalletAddress')
676
+ * .withAutoJoinRooms(['general', 'announcements'])
677
+ * .withWebhook('https://api.example.com/webhooks', {
678
+ * 'Authorization': 'Bearer token'
679
+ * })
680
+ * .withReconnection(true, 5000, 10)
681
+ * .withResponseFormat({ format: 'both', includeMetadata: true })
682
+ * .withLogging('debug')
683
+ * .withCache(true, 300000, 100)
684
+ * .build();
685
+ *
686
+ * const sdk = new TeneoSDK(config);
687
+ *
688
+ * // Using via TeneoSDK.builder() (recommended)
689
+ * const sdk = TeneoSDK.builder()
690
+ * .withWebSocketUrl('wss://teneo.example.com')
691
+ * .withAuthentication('0x...')
692
+ * .withAutoJoinRooms(['general'])
693
+ * .build();
694
+ * ```
695
+ *
696
+ * @see {@link TeneoSDK} for the main SDK class
697
+ * @see {@link TeneoSDK.builder} for creating a builder instance
698
+ */
699
+ export declare class SDKConfigBuilder {
700
+ private config;
701
+ /**
702
+ * Sets the WebSocket URL for connecting to the Teneo network.
703
+ * URL must start with 'ws://' or 'wss://'. HTTPS (wss://) is recommended for production.
704
+ *
705
+ * @param url - WebSocket URL (e.g., 'wss://teneo.example.com')
706
+ * @returns this builder for method chaining
707
+ * @throws {z.ZodError} If URL is invalid or doesn't start with ws:// or wss://
708
+ *
709
+ * @example
710
+ * ```typescript
711
+ * builder.withWebSocketUrl('wss://teneo.example.com')
712
+ * ```
713
+ */
714
+ withWebSocketUrl(url: string): this;
715
+ /**
716
+ * Configures Ethereum wallet-based authentication credentials.
717
+ * Private key is used to sign authentication challenges from the server.
718
+ * Wallet address is optional and will be derived from the private key if not provided.
719
+ *
720
+ * For enhanced security (SEC-3), you can pass a SecurePrivateKey instance to keep
721
+ * the private key encrypted in memory from the start.
722
+ *
723
+ * @param privateKey - Ethereum private key (hex string starting with 0x) or SecurePrivateKey instance
724
+ * @param walletAddress - Optional wallet address (will be derived if not provided)
725
+ * @returns this builder for method chaining
726
+ * @throws {z.ZodError} If privateKey or walletAddress is invalid
727
+ *
728
+ * @example
729
+ * ```typescript
730
+ * // With private key string only (address derived automatically)
731
+ * builder.withAuthentication('0x...')
732
+ *
733
+ * // With explicit wallet address
734
+ * builder.withAuthentication('0x...privatekey', '0x...address')
735
+ *
736
+ * // With SecurePrivateKey for enhanced security (SEC-3)
737
+ * const secureKey = new SecurePrivateKey('0x...');
738
+ * builder.withAuthentication(secureKey, '0x...address')
739
+ * ```
740
+ */
741
+ withAuthentication(privateKey: string | SecurePrivateKey, walletAddress?: string): this;
742
+ /**
743
+ * Configures webhook URL and optional HTTP headers for receiving real-time event notifications.
744
+ * Webhook URL must use HTTPS for non-localhost endpoints (security requirement).
745
+ * Events are sent via HTTP POST requests with JSON payloads.
746
+ *
747
+ * @param url - Webhook endpoint URL (must be HTTPS unless localhost)
748
+ * @param headers - Optional HTTP headers to include with webhook requests (e.g., Authorization)
749
+ * @returns this builder for method chaining
750
+ * @throws {z.ZodError} If URL is invalid
751
+ *
752
+ * @example
753
+ * ```typescript
754
+ * // Basic webhook
755
+ * builder.withWebhook('https://api.example.com/webhooks/teneo')
756
+ *
757
+ * // With authentication headers
758
+ * builder.withWebhook('https://api.example.com/webhooks', {
759
+ * 'Authorization': 'Bearer your-token',
760
+ * 'X-Custom-Header': 'value'
761
+ * })
762
+ * ```
763
+ */
764
+ withWebhook(url: string, headers?: Record<string, string>): this;
765
+ /**
766
+ * Configures rooms to automatically subscribe to after authentication.
767
+ * These rooms will be subscribed to automatically when connection is established.
768
+ *
769
+ * @param rooms - Array of room IDs to auto-subscribe to on connection
770
+ * @returns this builder for method chaining
771
+ * @throws {z.ZodError} If room IDs are invalid
772
+ *
773
+ * @example
774
+ * ```typescript
775
+ * builder.withAutoJoinRooms(['general', 'announcements', 'support'])
776
+ * ```
777
+ */
778
+ withAutoJoinRooms(rooms: string[]): this;
779
+ /**
780
+ * Configures automatic reconnection behavior for WebSocket connections.
781
+ * When enabled, SDK will automatically attempt to reconnect on disconnection.
782
+ * Uses exponential backoff strategy for reconnection attempts.
783
+ *
784
+ * @param optionsOrEnabled - Reconnection configuration options object, or boolean for backwards compatibility
785
+ * @param delay - (Deprecated positional arg) Delay between reconnection attempts in ms
786
+ * @param maxAttempts - (Deprecated positional arg) Maximum reconnection attempts
787
+ * @returns this builder for method chaining
788
+ * @throws {z.ZodError} If options are out of valid range
789
+ *
790
+ * @example
791
+ * ```typescript
792
+ * // New API with object (recommended)
793
+ * builder.withReconnection({ enabled: true })
794
+ * builder.withReconnection({
795
+ * enabled: true,
796
+ * delay: 3000,
797
+ * maxAttempts: 5
798
+ * })
799
+ *
800
+ * // Old API with positional args (backwards compatible)
801
+ * builder.withReconnection(true, 3000, 5)
802
+ * ```
803
+ */
804
+ withReconnection(optionsOrEnabled: {
805
+ enabled?: boolean;
806
+ delay?: number;
807
+ maxAttempts?: number;
808
+ } | boolean, delay?: number, maxAttempts?: number): this;
809
+ /**
810
+ * Configures how agent responses are formatted when received.
811
+ * Choose between raw JSON, human-readable text, or both formats.
812
+ * Metadata includes timestamps, agent info, and other contextual data.
813
+ *
814
+ * @param optionsOrFormat - Response format configuration object, or format string for backwards compatibility
815
+ * @param includeMetadata - (Deprecated positional arg) Include metadata in responses
816
+ * @returns this builder for method chaining
817
+ * @throws {z.ZodError} If format is invalid
818
+ *
819
+ * @example
820
+ * ```typescript
821
+ * // New API with object (recommended)
822
+ * builder.withResponseFormat({ format: 'humanized' })
823
+ * builder.withResponseFormat({
824
+ * format: 'both',
825
+ * includeMetadata: true
826
+ * })
827
+ *
828
+ * // Old API with positional args (backwards compatible)
829
+ * builder.withResponseFormat('humanized', true)
830
+ * ```
831
+ */
832
+ withResponseFormat(optionsOrFormat: {
833
+ format?: ResponseFormat;
834
+ includeMetadata?: boolean;
835
+ } | ResponseFormat, includeMetadata?: boolean): this;
836
+ /**
837
+ * Configures logging level and optionally provides a custom logger implementation.
838
+ * Default logger uses pino with pretty printing in development and JSON in production.
839
+ * Custom logger must implement the Logger interface (debug, info, warn, error methods).
840
+ *
841
+ * @param level - Log level: 'debug', 'info', 'warn', 'error', or 'silent' (default: 'info')
842
+ * @param logger - Optional custom logger implementation
843
+ * @returns this builder for method chaining
844
+ * @throws {z.ZodError} If level is invalid or logger doesn't implement required interface
845
+ *
846
+ * @example
847
+ * ```typescript
848
+ * // Set log level only (uses default pino logger)
849
+ * builder.withLogging('debug')
850
+ *
851
+ * // With custom logger
852
+ * const customLogger = {
853
+ * debug: (msg, data) => console.debug(msg, data),
854
+ * info: (msg, data) => console.info(msg, data),
855
+ * warn: (msg, data) => console.warn(msg, data),
856
+ * error: (msg, data) => console.error(msg, data)
857
+ * };
858
+ * builder.withLogging('info', customLogger)
859
+ *
860
+ * // Silent mode (no logs)
861
+ * builder.withLogging('silent')
862
+ * ```
863
+ */
864
+ withLogging(level: LogLevel, logger?: Logger): this;
865
+ /**
866
+ * Configures agent caching for improved performance.
867
+ * Cache stores agent information to reduce lookup overhead.
868
+ * Automatically invalidates stale entries based on timeout.
869
+ *
870
+ * @param enabled - Enable/disable agent caching (default: true)
871
+ * @param timeout - Cache entry timeout in ms (default: 300000 / 5 minutes, range: 1000-3600000)
872
+ * @param maxSize - Maximum cache size (default: 100, range: 1-10000)
873
+ * @returns this builder for method chaining
874
+ * @throws {z.ZodError} If timeout or maxSize are out of valid range
875
+ *
876
+ * @example
877
+ * ```typescript
878
+ * // Enable with defaults
879
+ * builder.withCache(true)
880
+ *
881
+ * // Custom cache settings
882
+ * builder.withCache(true, 600000, 500) // 10 minutes, 500 entries
883
+ *
884
+ * // Disable caching
885
+ * builder.withCache(false)
886
+ * ```
887
+ */
888
+ withCache(enabled: boolean, timeout?: number, maxSize?: number): this;
889
+ /**
890
+ * Configures message signature verification for security (SEC-2).
891
+ * Verifies Ethereum ECDSA signatures on incoming messages to prevent spoofing attacks.
892
+ * Disabled by default for backwards compatibility.
893
+ *
894
+ * @param options - Signature verification configuration
895
+ * @param options.enabled - Enable/disable signature verification (default: false)
896
+ * @param options.trustedAddresses - Whitelist of trusted agent addresses (empty = allow all)
897
+ * @param options.requireFor - Message types that require signatures (default: ['task_response', 'agent_selected'])
898
+ * @param options.strictMode - Reject all unsigned messages vs just critical ones (default: false)
899
+ * @returns this builder for method chaining
900
+ * @throws {z.ZodError} If options are invalid
901
+ *
902
+ * @example
903
+ * ```typescript
904
+ * // Enable with defaults (verify but allow unsigned non-critical messages)
905
+ * builder.withSignatureVerification({ enabled: true })
906
+ *
907
+ * // Enable with trusted address whitelist
908
+ * builder.withSignatureVerification({
909
+ * enabled: true,
910
+ * trustedAddresses: ['0xAgent1...', '0xAgent2...']
911
+ * })
912
+ *
913
+ * // Strict mode (reject all unsigned messages)
914
+ * builder.withSignatureVerification({
915
+ * enabled: true,
916
+ * strictMode: true,
917
+ * requireFor: ['task_response', 'agent_selected', 'message']
918
+ * })
919
+ * ```
920
+ */
921
+ withSignatureVerification(options: {
922
+ enabled?: boolean;
923
+ trustedAddresses?: string[];
924
+ requireFor?: MessageType[];
925
+ strictMode?: boolean;
926
+ }): this;
927
+ /**
928
+ * Configures WebSocket reconnection retry strategy (REL-3).
929
+ * Allows full control over retry behavior: exponential, linear, or constant backoff.
930
+ * If not specified, uses exponential backoff with default parameters for backward compatibility.
931
+ *
932
+ * @param strategy - Partial retry strategy configuration (unspecified fields use defaults)
933
+ * @returns this builder for method chaining
934
+ * @throws {z.ZodError} If strategy parameters are invalid
935
+ *
936
+ * @example
937
+ * ```typescript
938
+ * // Exponential backoff with aggressive multiplier
939
+ * builder.withReconnectionStrategy({
940
+ * type: 'exponential',
941
+ * baseDelay: 3000,
942
+ * maxDelay: 120000,
943
+ * maxAttempts: 20,
944
+ * jitter: true,
945
+ * backoffMultiplier: 3
946
+ * })
947
+ *
948
+ * // Linear backoff for predictable delays
949
+ * builder.withReconnectionStrategy({
950
+ * type: 'linear',
951
+ * baseDelay: 5000,
952
+ * maxDelay: 60000,
953
+ * maxAttempts: 10,
954
+ * jitter: false
955
+ * })
956
+ *
957
+ * // Constant delay (useful for testing)
958
+ * builder.withReconnectionStrategy({
959
+ * type: 'constant',
960
+ * baseDelay: 10000,
961
+ * maxDelay: 10000,
962
+ * maxAttempts: 5,
963
+ * jitter: false
964
+ * })
965
+ * ```
966
+ */
967
+ withReconnectionStrategy(strategy: Partial<RetryStrategy>): this;
968
+ /**
969
+ * Configures webhook delivery retry strategy (REL-3).
970
+ * Allows full control over retry behavior: exponential, linear, or constant backoff.
971
+ * If not specified, uses exponential backoff with default parameters for backward compatibility.
972
+ *
973
+ * @param strategy - Partial retry strategy configuration (unspecified fields use defaults)
974
+ * @returns this builder for method chaining
975
+ * @throws {z.ZodError} If strategy parameters are invalid
976
+ *
977
+ * @example
978
+ * ```typescript
979
+ * // Exponential backoff without jitter
980
+ * builder.withWebhookRetryStrategy({
981
+ * type: 'exponential',
982
+ * baseDelay: 1000,
983
+ * maxDelay: 30000,
984
+ * maxAttempts: 5,
985
+ * jitter: false,
986
+ * backoffMultiplier: 2
987
+ * })
988
+ *
989
+ * // Linear backoff with jitter to spread load
990
+ * builder.withWebhookRetryStrategy({
991
+ * type: 'linear',
992
+ * baseDelay: 2000,
993
+ * maxDelay: 20000,
994
+ * maxAttempts: 3,
995
+ * jitter: true
996
+ * })
997
+ * ```
998
+ */
999
+ withWebhookRetryStrategy(strategy: Partial<RetryStrategy>): this;
1000
+ /**
1001
+ * Configures message deduplication to prevent duplicate processing (CB-4).
1002
+ * Uses TTL-based cache to track recently processed message IDs.
1003
+ * Automatically expires entries to prevent unbounded memory growth.
1004
+ * Enabled by default with sensible limits for most use cases.
1005
+ *
1006
+ * @param enabled - Enable/disable message deduplication (default: true)
1007
+ * @param ttl - How long to remember message IDs in milliseconds (default: 60000 / 1 minute, range: 1000-3600000)
1008
+ * @param maxSize - Maximum cache size (default: 10000, range: 1-100000)
1009
+ * @returns this builder for method chaining
1010
+ * @throws {z.ZodError} If ttl or maxSize are out of valid range
1011
+ *
1012
+ * @example
1013
+ * ```typescript
1014
+ * // Enable with defaults (60s TTL, 10k cache)
1015
+ * builder.withMessageDeduplication(true)
1016
+ *
1017
+ * // Custom settings for high-volume scenarios
1018
+ * builder.withMessageDeduplication(true, 120000, 50000) // 2 minutes, 50k entries
1019
+ *
1020
+ * // Disable deduplication (not recommended for production)
1021
+ * builder.withMessageDeduplication(false)
1022
+ * ```
1023
+ */
1024
+ withMessageDeduplication(enabled: boolean, ttl?: number, maxSize?: number): this;
1025
+ /**
1026
+ * Builds and validates the final SDK configuration.
1027
+ * Performs comprehensive validation including custom refinements (e.g., webhook security).
1028
+ * Must be called after setting all desired configuration options.
1029
+ *
1030
+ * @returns Validated SDK configuration ready to pass to TeneoSDK constructor
1031
+ * @throws {Error} If configuration is invalid or fails validation
1032
+ * @throws {z.ZodError} If required fields are missing or values are out of range
1033
+ *
1034
+ * @example
1035
+ * ```typescript
1036
+ * const config = new SDKConfigBuilder()
1037
+ * .withWebSocketUrl('wss://teneo.example.com')
1038
+ * .withAuthentication('0x...')
1039
+ * .withAutoJoinRooms(['general'])
1040
+ * .build(); // Validates and returns final config
1041
+ *
1042
+ * const sdk = new TeneoSDK(config);
1043
+ * ```
1044
+ */
1045
+ build(): SDKConfig;
1046
+ }
1047
+ //# sourceMappingURL=config.d.ts.map