@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.
- package/.dockerignore +14 -0
- package/.env.test.example +14 -0
- package/.eslintrc.json +26 -0
- package/.github/workflows/claude-code-review.yml +78 -0
- package/.github/workflows/claude-reviewer.yml +64 -0
- package/.github/workflows/publish-npm.yml +38 -0
- package/.github/workflows/push-to-main.yml +23 -0
- package/.node-version +1 -0
- package/.prettierrc +11 -0
- package/Dockerfile +25 -0
- package/LICENCE +661 -0
- package/README.md +709 -0
- package/dist/constants.d.ts +42 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +45 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/websocket-client.d.ts +261 -0
- package/dist/core/websocket-client.d.ts.map +1 -0
- package/dist/core/websocket-client.js +875 -0
- package/dist/core/websocket-client.js.map +1 -0
- package/dist/formatters/response-formatter.d.ts +354 -0
- package/dist/formatters/response-formatter.d.ts.map +1 -0
- package/dist/formatters/response-formatter.js +575 -0
- package/dist/formatters/response-formatter.js.map +1 -0
- package/dist/handlers/message-handler-registry.d.ts +155 -0
- package/dist/handlers/message-handler-registry.d.ts.map +1 -0
- package/dist/handlers/message-handler-registry.js +216 -0
- package/dist/handlers/message-handler-registry.js.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts +112 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.js +40 -0
- package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agents-list-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/agents-list-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agents-list-handler.js +25 -0
- package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts +71 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.js +30 -0
- package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts +18 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-message-handler.js +60 -0
- package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-required-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-required-handler.js +23 -0
- package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts +18 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-success-handler.js +51 -0
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -0
- package/dist/handlers/message-handlers/base-handler.d.ts +55 -0
- package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/base-handler.js +83 -0
- package/dist/handlers/message-handlers/base-handler.js.map +1 -0
- package/dist/handlers/message-handlers/challenge-handler.d.ts +73 -0
- package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/challenge-handler.js +47 -0
- package/dist/handlers/message-handlers/challenge-handler.js.map +1 -0
- package/dist/handlers/message-handlers/error-message-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/error-message-handler.js +29 -0
- package/dist/handlers/message-handlers/error-message-handler.js.map +1 -0
- package/dist/handlers/message-handlers/index.d.ts +28 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -0
- package/dist/handlers/message-handlers/index.js +100 -0
- package/dist/handlers/message-handlers/index.js.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +122 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.js +30 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts +104 -0
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/ping-pong-handler.js +36 -0
- package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -0
- package/dist/handlers/message-handlers/regular-message-handler.d.ts +56 -0
- package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/regular-message-handler.js +59 -0
- package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +81 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.js +48 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/task-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.js +44 -0
- package/dist/handlers/message-handlers/task-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/types.d.ts +51 -0
- package/dist/handlers/message-handlers/types.d.ts.map +1 -0
- package/dist/handlers/message-handlers/types.js +7 -0
- package/dist/handlers/message-handlers/types.js.map +1 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +81 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js +48 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -0
- package/dist/handlers/webhook-handler.d.ts +202 -0
- package/dist/handlers/webhook-handler.d.ts.map +1 -0
- package/dist/handlers/webhook-handler.js +511 -0
- package/dist/handlers/webhook-handler.js.map +1 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +217 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/agent-registry.d.ts +173 -0
- package/dist/managers/agent-registry.d.ts.map +1 -0
- package/dist/managers/agent-registry.js +310 -0
- package/dist/managers/agent-registry.js.map +1 -0
- package/dist/managers/connection-manager.d.ts +134 -0
- package/dist/managers/connection-manager.d.ts.map +1 -0
- package/dist/managers/connection-manager.js +176 -0
- package/dist/managers/connection-manager.js.map +1 -0
- package/dist/managers/index.d.ts +9 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/managers/index.js +16 -0
- package/dist/managers/index.js.map +1 -0
- package/dist/managers/message-router.d.ts +112 -0
- package/dist/managers/message-router.d.ts.map +1 -0
- package/dist/managers/message-router.js +260 -0
- package/dist/managers/message-router.js.map +1 -0
- package/dist/managers/room-manager.d.ts +165 -0
- package/dist/managers/room-manager.d.ts.map +1 -0
- package/dist/managers/room-manager.js +227 -0
- package/dist/managers/room-manager.js.map +1 -0
- package/dist/teneo-sdk.d.ts +703 -0
- package/dist/teneo-sdk.d.ts.map +1 -0
- package/dist/teneo-sdk.js +907 -0
- package/dist/teneo-sdk.js.map +1 -0
- package/dist/types/config.d.ts +1047 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +720 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/error-codes.d.ts +29 -0
- package/dist/types/error-codes.d.ts.map +1 -0
- package/dist/types/error-codes.js +41 -0
- package/dist/types/error-codes.js.map +1 -0
- package/dist/types/events.d.ts +616 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +261 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/health.d.ts +40 -0
- package/dist/types/health.d.ts.map +1 -0
- package/dist/types/health.js +6 -0
- package/dist/types/health.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +123 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/messages.d.ts +3734 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +482 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/validation.d.ts +81 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +115 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/utils/bounded-queue.d.ts +127 -0
- package/dist/utils/bounded-queue.d.ts.map +1 -0
- package/dist/utils/bounded-queue.js +181 -0
- package/dist/utils/bounded-queue.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +141 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +215 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/deduplication-cache.d.ts +110 -0
- package/dist/utils/deduplication-cache.d.ts.map +1 -0
- package/dist/utils/deduplication-cache.js +177 -0
- package/dist/utils/deduplication-cache.js.map +1 -0
- package/dist/utils/event-waiter.d.ts +101 -0
- package/dist/utils/event-waiter.d.ts.map +1 -0
- package/dist/utils/event-waiter.js +118 -0
- package/dist/utils/event-waiter.js.map +1 -0
- package/dist/utils/index.d.ts +51 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +72 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +91 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +122 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +190 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/retry-policy.d.ts +191 -0
- package/dist/utils/retry-policy.d.ts.map +1 -0
- package/dist/utils/retry-policy.js +225 -0
- package/dist/utils/retry-policy.js.map +1 -0
- package/dist/utils/secure-private-key.d.ts +113 -0
- package/dist/utils/secure-private-key.d.ts.map +1 -0
- package/dist/utils/secure-private-key.js +188 -0
- package/dist/utils/secure-private-key.js.map +1 -0
- package/dist/utils/signature-verifier.d.ts +143 -0
- package/dist/utils/signature-verifier.d.ts.map +1 -0
- package/dist/utils/signature-verifier.js +238 -0
- package/dist/utils/signature-verifier.js.map +1 -0
- package/dist/utils/ssrf-validator.d.ts +36 -0
- package/dist/utils/ssrf-validator.d.ts.map +1 -0
- package/dist/utils/ssrf-validator.js +195 -0
- package/dist/utils/ssrf-validator.js.map +1 -0
- package/examples/.env.example +17 -0
- package/examples/basic-usage.ts +211 -0
- package/examples/production-dashboard/.env.example +153 -0
- package/examples/production-dashboard/package.json +39 -0
- package/examples/production-dashboard/public/dashboard.html +642 -0
- package/examples/production-dashboard/server.ts +753 -0
- package/examples/webhook-integration.ts +239 -0
- package/examples/x-influencer-battle-redesign.html +1065 -0
- package/examples/x-influencer-battle-server.ts +217 -0
- package/examples/x-influencer-battle.html +787 -0
- package/package.json +65 -0
- package/src/constants.ts +43 -0
- package/src/core/websocket-client.test.ts +512 -0
- package/src/core/websocket-client.ts +1056 -0
- package/src/formatters/response-formatter.test.ts +571 -0
- package/src/formatters/response-formatter.ts +677 -0
- package/src/handlers/message-handler-registry.ts +239 -0
- package/src/handlers/message-handlers/agent-selected-handler.ts +40 -0
- package/src/handlers/message-handlers/agents-list-handler.ts +26 -0
- package/src/handlers/message-handlers/auth-error-handler.ts +31 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +66 -0
- package/src/handlers/message-handlers/auth-required-handler.ts +23 -0
- package/src/handlers/message-handlers/auth-success-handler.ts +57 -0
- package/src/handlers/message-handlers/base-handler.ts +101 -0
- package/src/handlers/message-handlers/challenge-handler.ts +57 -0
- package/src/handlers/message-handlers/error-message-handler.ts +27 -0
- package/src/handlers/message-handlers/index.ts +77 -0
- package/src/handlers/message-handlers/list-rooms-response-handler.ts +28 -0
- package/src/handlers/message-handlers/ping-pong-handler.ts +30 -0
- package/src/handlers/message-handlers/regular-message-handler.ts +65 -0
- package/src/handlers/message-handlers/subscribe-response-handler.ts +47 -0
- package/src/handlers/message-handlers/task-response-handler.ts +45 -0
- package/src/handlers/message-handlers/types.ts +77 -0
- package/src/handlers/message-handlers/unsubscribe-response-handler.ts +47 -0
- package/src/handlers/webhook-handler.test.ts +789 -0
- package/src/handlers/webhook-handler.ts +576 -0
- package/src/index.ts +269 -0
- package/src/managers/agent-registry.test.ts +466 -0
- package/src/managers/agent-registry.ts +347 -0
- package/src/managers/connection-manager.ts +195 -0
- package/src/managers/index.ts +9 -0
- package/src/managers/message-router.ts +349 -0
- package/src/managers/room-manager.ts +248 -0
- package/src/teneo-sdk.ts +1022 -0
- package/src/types/config.test.ts +325 -0
- package/src/types/config.ts +799 -0
- package/src/types/error-codes.ts +44 -0
- package/src/types/events.test.ts +302 -0
- package/src/types/events.ts +382 -0
- package/src/types/health.ts +46 -0
- package/src/types/index.ts +199 -0
- package/src/types/messages.test.ts +660 -0
- package/src/types/messages.ts +570 -0
- package/src/types/validation.ts +123 -0
- package/src/utils/bounded-queue.test.ts +356 -0
- package/src/utils/bounded-queue.ts +205 -0
- package/src/utils/circuit-breaker.test.ts +394 -0
- package/src/utils/circuit-breaker.ts +262 -0
- package/src/utils/deduplication-cache.test.ts +380 -0
- package/src/utils/deduplication-cache.ts +198 -0
- package/src/utils/event-waiter.test.ts +381 -0
- package/src/utils/event-waiter.ts +172 -0
- package/src/utils/index.ts +74 -0
- package/src/utils/logger.ts +87 -0
- package/src/utils/rate-limiter.test.ts +341 -0
- package/src/utils/rate-limiter.ts +211 -0
- package/src/utils/retry-policy.test.ts +558 -0
- package/src/utils/retry-policy.ts +272 -0
- package/src/utils/secure-private-key.test.ts +356 -0
- package/src/utils/secure-private-key.ts +205 -0
- package/src/utils/signature-verifier.test.ts +464 -0
- package/src/utils/signature-verifier.ts +298 -0
- package/src/utils/ssrf-validator.test.ts +372 -0
- package/src/utils/ssrf-validator.ts +224 -0
- package/tests/integration/real-server.test.ts +740 -0
- package/tests/integration/websocket.test.ts +381 -0
- package/tests/integration-setup.ts +16 -0
- package/tests/setup.ts +34 -0
- package/tsconfig.json +32 -0
- package/vitest.config.ts +42 -0
- 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
|