@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,511 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Webhook handler for Teneo Protocol SDK
|
|
4
|
+
* Manages webhook delivery with retries and error handling using Zod validation
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.WebhookHandler = void 0;
|
|
11
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
12
|
+
const eventemitter3_1 = require("eventemitter3");
|
|
13
|
+
const zod_1 = require("zod");
|
|
14
|
+
const ssrf_validator_1 = require("../utils/ssrf-validator");
|
|
15
|
+
const bounded_queue_1 = require("../utils/bounded-queue");
|
|
16
|
+
const circuit_breaker_1 = require("../utils/circuit-breaker");
|
|
17
|
+
const retry_policy_1 = require("../utils/retry-policy");
|
|
18
|
+
const types_1 = require("../types");
|
|
19
|
+
const events_1 = require("../types/events");
|
|
20
|
+
const constants_1 = require("../constants");
|
|
21
|
+
class WebhookHandler extends eventemitter3_1.EventEmitter {
|
|
22
|
+
constructor(config, logger) {
|
|
23
|
+
super();
|
|
24
|
+
this.isProcessing = false;
|
|
25
|
+
this.isDestroyed = false;
|
|
26
|
+
// Validate config and logger with Zod
|
|
27
|
+
this.config = types_1.SDKConfigSchema.parse(config);
|
|
28
|
+
this.logger = types_1.LoggerSchema.parse(logger);
|
|
29
|
+
// Initialize bounded queue to prevent unbounded memory growth (CB-1)
|
|
30
|
+
// Max 1000 webhooks, drop oldest on overflow
|
|
31
|
+
this.queue = new bounded_queue_1.BoundedQueue(1000, "drop-oldest");
|
|
32
|
+
// Initialize circuit breaker for fault tolerance (CB-3)
|
|
33
|
+
// Opens after 5 failures, closes after 2 successes, 60s timeout
|
|
34
|
+
this.circuitBreaker = new circuit_breaker_1.CircuitBreaker({
|
|
35
|
+
failureThreshold: 5,
|
|
36
|
+
successThreshold: 2,
|
|
37
|
+
timeout: 60000,
|
|
38
|
+
windowSize: 60000
|
|
39
|
+
});
|
|
40
|
+
// Initialize webhook retry policy (REL-3)
|
|
41
|
+
if (this.config.webhookRetryStrategy) {
|
|
42
|
+
// User provided custom strategy
|
|
43
|
+
this.retryPolicy = new retry_policy_1.RetryPolicy(this.config.webhookRetryStrategy);
|
|
44
|
+
this.logger.info("Custom webhook retry strategy configured", {
|
|
45
|
+
type: this.config.webhookRetryStrategy.type,
|
|
46
|
+
baseDelay: this.config.webhookRetryStrategy.baseDelay,
|
|
47
|
+
maxDelay: this.config.webhookRetryStrategy.maxDelay,
|
|
48
|
+
maxAttempts: this.config.webhookRetryStrategy.maxAttempts
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Use default exponential backoff matching previous hardcoded behavior
|
|
53
|
+
// Previous: RETRY.BASE_DELAY (1000ms) * 2^(attempt-1), max RETRY.MAX_WEBHOOK_DELAY (30000ms)
|
|
54
|
+
// Default retries: 3
|
|
55
|
+
this.retryPolicy = retry_policy_1.RetryPolicy.exponential(constants_1.RETRY.BASE_DELAY, // 1000ms base delay
|
|
56
|
+
constants_1.RETRY.MAX_WEBHOOK_DELAY, // 30000ms max delay
|
|
57
|
+
this.config.webhookRetries ?? 3, false // jitter disabled by default for webhooks
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
if (this.config.webhookUrl) {
|
|
61
|
+
// Create and validate webhook configuration
|
|
62
|
+
this.webhookConfig = types_1.WebhookConfigSchema.parse({
|
|
63
|
+
url: this.config.webhookUrl,
|
|
64
|
+
headers: this.config.webhookHeaders,
|
|
65
|
+
retries: this.config.webhookRetries ?? 3,
|
|
66
|
+
timeout: this.config.webhookTimeout ?? constants_1.TIMEOUTS.WEBHOOK_TIMEOUT,
|
|
67
|
+
events: ["message", "task_response", "agent_selected", "error"]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Configures or updates webhook settings with runtime validation.
|
|
73
|
+
* Validates the webhook URL for security (HTTPS requirement except localhost)
|
|
74
|
+
* and sets up retry logic, timeout, and event filtering.
|
|
75
|
+
*
|
|
76
|
+
* @param config - Webhook configuration object
|
|
77
|
+
* @param config.url - Webhook endpoint URL (must be HTTPS unless localhost)
|
|
78
|
+
* @param config.headers - Optional HTTP headers to include with requests
|
|
79
|
+
* @param config.retries - Maximum number of retry attempts for failed deliveries (default: 3)
|
|
80
|
+
* @param config.timeout - Request timeout in milliseconds (default: 30000)
|
|
81
|
+
* @param config.events - Array of event types to send webhooks for (default: all events)
|
|
82
|
+
* @throws {WebhookError} If URL is invalid, insecure, or points to private IP ranges
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* webhookHandler.configure({
|
|
87
|
+
* url: 'https://api.example.com/webhooks',
|
|
88
|
+
* headers: { 'Authorization': 'Bearer token' },
|
|
89
|
+
* retries: 5,
|
|
90
|
+
* timeout: 60000,
|
|
91
|
+
* events: ['message', 'agent_selected', 'error']
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
configure(config) {
|
|
96
|
+
// Validate configuration with Zod
|
|
97
|
+
const validatedConfig = types_1.WebhookConfigSchema.parse(config);
|
|
98
|
+
this.validateWebhookUrl(validatedConfig.url);
|
|
99
|
+
this.webhookConfig = {
|
|
100
|
+
...validatedConfig,
|
|
101
|
+
retries: validatedConfig.retries ?? 3,
|
|
102
|
+
timeout: validatedConfig.timeout ?? constants_1.TIMEOUTS.WEBHOOK_TIMEOUT,
|
|
103
|
+
events: validatedConfig.events ?? ["message", "task_response", "agent_selected", "error"]
|
|
104
|
+
};
|
|
105
|
+
this.logger.info("Webhook configured", {
|
|
106
|
+
url: validatedConfig.url,
|
|
107
|
+
events: this.webhookConfig.events
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Sends a webhook for a specific event type with payload validation.
|
|
112
|
+
* Validates event type and payload with Zod schemas before queueing.
|
|
113
|
+
* Webhooks are queued and delivered asynchronously with retry logic.
|
|
114
|
+
* Emits 'webhook:sent', 'webhook:success', or 'webhook:error' events.
|
|
115
|
+
*
|
|
116
|
+
* @param eventType - Type of event to send ('message', 'task_response', 'agent_selected', or 'error')
|
|
117
|
+
* @param data - Event-specific data payload (validated with Zod)
|
|
118
|
+
* @param metadata - Optional metadata to include with the event
|
|
119
|
+
* @returns Promise that resolves when webhook is queued (not when delivered)
|
|
120
|
+
* @throws {ValidationError} If eventType or data fail Zod validation
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* await webhookHandler.sendWebhook('agent_selected', {
|
|
125
|
+
* agent_id: 'weather-agent',
|
|
126
|
+
* agent_name: 'Weather Agent',
|
|
127
|
+
* capabilities: ['weather-forecast']
|
|
128
|
+
* }, {
|
|
129
|
+
* agentId: 'weather-agent',
|
|
130
|
+
* taskId: 'task-123'
|
|
131
|
+
* });
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
async sendWebhook(eventType, data, metadata) {
|
|
135
|
+
if (!this.webhookConfig || this.isDestroyed) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
// Validate event type
|
|
140
|
+
const validatedEventType = types_1.WebhookEventTypeSchema.parse(eventType);
|
|
141
|
+
// Check if this event type should trigger a webhook
|
|
142
|
+
if (this.webhookConfig.events && !this.webhookConfig.events.includes(validatedEventType)) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// Create and validate payload
|
|
146
|
+
const payload = types_1.WebhookPayloadSchema.parse({
|
|
147
|
+
event: validatedEventType,
|
|
148
|
+
timestamp: new Date().toISOString(),
|
|
149
|
+
data,
|
|
150
|
+
metadata
|
|
151
|
+
});
|
|
152
|
+
// Add to queue (bounded - will drop oldest if full)
|
|
153
|
+
const pushed = this.queue.push({
|
|
154
|
+
payload,
|
|
155
|
+
attempts: 0
|
|
156
|
+
});
|
|
157
|
+
if (!pushed) {
|
|
158
|
+
this.logger.warn("Webhook queue full - oldest webhook dropped", {
|
|
159
|
+
queueSize: this.queue.size()
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Process queue
|
|
163
|
+
this.processQueue();
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
167
|
+
this.logger.error("Invalid webhook payload", error);
|
|
168
|
+
throw new events_1.ValidationError("Invalid webhook payload", error);
|
|
169
|
+
}
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Sends a webhook specifically for message events with automatic event type detection.
|
|
175
|
+
* Filters out system messages (ping, pong, auth) and maps message types to webhook events.
|
|
176
|
+
* Validates message with Zod schema before sending.
|
|
177
|
+
*
|
|
178
|
+
* @param message - The message to send as a webhook
|
|
179
|
+
* @returns Promise that resolves when webhook is queued
|
|
180
|
+
* @throws {ValidationError} If message fails Zod validation
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const userMessage = createUserMessage('Hello', 'general', walletAddress);
|
|
185
|
+
* await webhookHandler.sendMessageWebhook(userMessage);
|
|
186
|
+
* // Webhook will be sent with event type 'message'
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
async sendMessageWebhook(message) {
|
|
190
|
+
if (!message)
|
|
191
|
+
return;
|
|
192
|
+
// Skip system messages that shouldn't be sent as webhooks
|
|
193
|
+
const skipMessageTypes = [
|
|
194
|
+
"agents",
|
|
195
|
+
"auth",
|
|
196
|
+
"auth_required",
|
|
197
|
+
"pong",
|
|
198
|
+
"ping",
|
|
199
|
+
"auth_success",
|
|
200
|
+
"auth_error",
|
|
201
|
+
"challenge",
|
|
202
|
+
"request_challenge"
|
|
203
|
+
];
|
|
204
|
+
if (skipMessageTypes.includes(message.type)) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
// Validate message with Zod
|
|
209
|
+
const validatedMessage = types_1.BaseMessageSchema.parse(message);
|
|
210
|
+
let eventType;
|
|
211
|
+
switch (validatedMessage.type) {
|
|
212
|
+
case "task_response":
|
|
213
|
+
eventType = "task_response";
|
|
214
|
+
break;
|
|
215
|
+
case "agent_selected":
|
|
216
|
+
eventType = "agent_selected";
|
|
217
|
+
break;
|
|
218
|
+
case "error":
|
|
219
|
+
eventType = "error";
|
|
220
|
+
break;
|
|
221
|
+
default:
|
|
222
|
+
eventType = "message";
|
|
223
|
+
}
|
|
224
|
+
const metadata = {
|
|
225
|
+
messageType: validatedMessage.type,
|
|
226
|
+
from: validatedMessage.from,
|
|
227
|
+
to: validatedMessage.to,
|
|
228
|
+
room: validatedMessage.room,
|
|
229
|
+
taskId: validatedMessage.task_id
|
|
230
|
+
};
|
|
231
|
+
await this.sendWebhook(eventType, validatedMessage, metadata);
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
235
|
+
this.logger.error("Invalid message for webhook", error);
|
|
236
|
+
throw new events_1.ValidationError("Invalid message for webhook", error);
|
|
237
|
+
}
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Process webhook queue
|
|
243
|
+
*/
|
|
244
|
+
async processQueue() {
|
|
245
|
+
if (this.isProcessing || this.queue.isEmpty() || this.isDestroyed) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
this.isProcessing = true;
|
|
249
|
+
while (!this.queue.isEmpty() && !this.isDestroyed) {
|
|
250
|
+
const item = this.queue.peek();
|
|
251
|
+
if (!item)
|
|
252
|
+
break; // Queue empty
|
|
253
|
+
// Check if we should retry
|
|
254
|
+
if (item.nextRetry && item.nextRetry > new Date()) {
|
|
255
|
+
// Wait until retry time
|
|
256
|
+
const delay = item.nextRetry.getTime() - Date.now();
|
|
257
|
+
this.processTimer = setTimeout(() => {
|
|
258
|
+
this.isProcessing = false;
|
|
259
|
+
this.processQueue();
|
|
260
|
+
}, delay);
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
try {
|
|
264
|
+
// Use circuit breaker for fault tolerance (CB-3)
|
|
265
|
+
await this.circuitBreaker.execute(async () => {
|
|
266
|
+
await this.deliverWebhook(item);
|
|
267
|
+
});
|
|
268
|
+
// Success - remove from queue
|
|
269
|
+
this.queue.shift();
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
// Check if circuit breaker is open
|
|
273
|
+
if (error instanceof circuit_breaker_1.CircuitBreakerError) {
|
|
274
|
+
this.logger.warn("Circuit breaker is OPEN, pausing webhook delivery", {
|
|
275
|
+
state: error.state
|
|
276
|
+
});
|
|
277
|
+
// Don't retry immediately when circuit is open
|
|
278
|
+
// Queue will be retried when circuit closes
|
|
279
|
+
this.isProcessing = false;
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
// Handle retry logic
|
|
283
|
+
item.attempts++;
|
|
284
|
+
item.lastAttempt = new Date();
|
|
285
|
+
item.error = error;
|
|
286
|
+
// Check if we should retry using the retry policy (REL-3)
|
|
287
|
+
if (!this.retryPolicy.shouldRetry(item.attempts)) {
|
|
288
|
+
// Max retries reached
|
|
289
|
+
this.logger.error("Webhook delivery failed after max retries", {
|
|
290
|
+
url: this.webhookConfig?.url,
|
|
291
|
+
attempts: item.attempts,
|
|
292
|
+
error: error
|
|
293
|
+
});
|
|
294
|
+
this.emit("webhook:error", error, this.webhookConfig?.url ?? "");
|
|
295
|
+
this.queue.shift();
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
// Schedule retry using configured strategy
|
|
299
|
+
const retryDelay = this.retryPolicy.calculateDelay(item.attempts);
|
|
300
|
+
item.nextRetry = new Date(Date.now() + retryDelay);
|
|
301
|
+
this.logger.warn(`Webhook delivery failed, retrying in ${retryDelay}ms`, {
|
|
302
|
+
url: this.webhookConfig?.url,
|
|
303
|
+
attempt: item.attempts,
|
|
304
|
+
error: error
|
|
305
|
+
});
|
|
306
|
+
this.emit("webhook:retry", item.attempts, this.webhookConfig?.url ?? "");
|
|
307
|
+
// Move to end of queue
|
|
308
|
+
const failedItem = this.queue.shift();
|
|
309
|
+
if (failedItem) {
|
|
310
|
+
this.queue.push(failedItem);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
this.isProcessing = false;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Deliver a webhook
|
|
319
|
+
*/
|
|
320
|
+
async deliverWebhook(item) {
|
|
321
|
+
if (!this.webhookConfig) {
|
|
322
|
+
throw new Error("Webhook not configured");
|
|
323
|
+
}
|
|
324
|
+
const controller = new AbortController();
|
|
325
|
+
const timeout = setTimeout(() => {
|
|
326
|
+
controller.abort();
|
|
327
|
+
}, this.webhookConfig.timeout);
|
|
328
|
+
try {
|
|
329
|
+
this.logger.debug("Delivering webhook", { url: this.webhookConfig.url });
|
|
330
|
+
const options = {
|
|
331
|
+
method: "POST",
|
|
332
|
+
headers: {
|
|
333
|
+
"Content-Type": "application/json",
|
|
334
|
+
...this.webhookConfig.headers
|
|
335
|
+
},
|
|
336
|
+
body: JSON.stringify(item.payload),
|
|
337
|
+
signal: controller.signal
|
|
338
|
+
};
|
|
339
|
+
const response = await (0, node_fetch_1.default)(this.webhookConfig.url, options);
|
|
340
|
+
if (!response.ok) {
|
|
341
|
+
throw new events_1.WebhookError(`Webhook returned status ${response.status}`, {
|
|
342
|
+
status: response.status,
|
|
343
|
+
statusText: response.statusText
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
const responseData = await response.text();
|
|
347
|
+
this.logger.debug("Webhook delivered successfully", {
|
|
348
|
+
url: this.webhookConfig.url,
|
|
349
|
+
status: response.status
|
|
350
|
+
});
|
|
351
|
+
this.emit("webhook:sent", item.payload, this.webhookConfig.url);
|
|
352
|
+
this.emit("webhook:success", responseData, this.webhookConfig.url);
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
if (error.name === "AbortError") {
|
|
356
|
+
throw new events_1.WebhookError("Webhook timeout", {
|
|
357
|
+
timeout: this.webhookConfig.timeout
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
throw new events_1.WebhookError(`Webhook delivery failed: ${error.message}`, error);
|
|
361
|
+
}
|
|
362
|
+
finally {
|
|
363
|
+
clearTimeout(timeout);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Validate webhook URL for SSRF vulnerabilities
|
|
368
|
+
* Uses comprehensive SSRF validator to block:
|
|
369
|
+
* - Private IP ranges (RFC1918)
|
|
370
|
+
* - Cloud metadata endpoints (AWS, GCP, Azure)
|
|
371
|
+
* - Kubernetes service discovery
|
|
372
|
+
* - Dangerous internal ports
|
|
373
|
+
* - Localhost (unless allowInsecureWebhooks is enabled)
|
|
374
|
+
*/
|
|
375
|
+
validateWebhookUrl(url) {
|
|
376
|
+
try {
|
|
377
|
+
// Use comprehensive SSRF validator
|
|
378
|
+
// allowInsecureWebhooks controls whether localhost/HTTP is allowed
|
|
379
|
+
(0, ssrf_validator_1.validateWebhookUrl)(url, this.config.allowInsecureWebhooks ?? false);
|
|
380
|
+
}
|
|
381
|
+
catch (error) {
|
|
382
|
+
throw new events_1.WebhookError(`Webhook URL validation failed: ${error.message}`, { url });
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Gets the current status of the webhook delivery queue.
|
|
387
|
+
* Useful for monitoring webhook health and detecting delivery issues.
|
|
388
|
+
*
|
|
389
|
+
* @returns Object containing queue statistics
|
|
390
|
+
* @returns {number} returns.pending - Total number of webhooks in queue (including failed)
|
|
391
|
+
* @returns {boolean} returns.processing - Whether queue is currently being processed
|
|
392
|
+
* @returns {number} returns.failed - Number of webhooks that have failed and are awaiting retry
|
|
393
|
+
*
|
|
394
|
+
* @example
|
|
395
|
+
* ```typescript
|
|
396
|
+
* const status = webhookHandler.getQueueStatus();
|
|
397
|
+
* console.log(`Queue: ${status.pending} pending, ${status.failed} failed`);
|
|
398
|
+
* if (status.failed > 10) {
|
|
399
|
+
* console.warn('High number of failed webhooks detected');
|
|
400
|
+
* }
|
|
401
|
+
* ```
|
|
402
|
+
*/
|
|
403
|
+
getQueueStatus() {
|
|
404
|
+
const circuitState = this.circuitBreaker.getState();
|
|
405
|
+
return {
|
|
406
|
+
pending: this.queue.size(),
|
|
407
|
+
processing: this.isProcessing,
|
|
408
|
+
failed: this.queue.toArray().filter((item) => item.error).length,
|
|
409
|
+
circuitState: circuitState.state
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Clears all pending and failed webhooks from the delivery queue.
|
|
414
|
+
* Warning: This permanently discards all queued webhooks.
|
|
415
|
+
* Use this to recover from queue issues or when webhooks are no longer relevant.
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* ```typescript
|
|
419
|
+
* webhookHandler.clearQueue();
|
|
420
|
+
* console.log('All pending webhooks cleared');
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
423
|
+
clearQueue() {
|
|
424
|
+
this.queue.clear();
|
|
425
|
+
this.logger.info("Webhook queue cleared");
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Retries all failed webhooks in the queue immediately.
|
|
429
|
+
* Resets attempt counters and error states for failed webhooks.
|
|
430
|
+
* Useful for recovering from temporary network or endpoint issues.
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```typescript
|
|
434
|
+
* const status = webhookHandler.getQueueStatus();
|
|
435
|
+
* if (status.failed > 0) {
|
|
436
|
+
* webhookHandler.retryFailed();
|
|
437
|
+
* console.log(`Retrying ${status.failed} failed webhooks`);
|
|
438
|
+
* }
|
|
439
|
+
* ```
|
|
440
|
+
*/
|
|
441
|
+
retryFailed() {
|
|
442
|
+
const failed = this.queue.toArray().filter((item) => item.error);
|
|
443
|
+
for (const item of failed) {
|
|
444
|
+
item.attempts = 0;
|
|
445
|
+
item.error = undefined;
|
|
446
|
+
item.nextRetry = undefined;
|
|
447
|
+
}
|
|
448
|
+
this.processQueue();
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Destroys the webhook handler and cleans up resources.
|
|
452
|
+
* Stops queue processing, clears all timers, removes event listeners,
|
|
453
|
+
* and discards all pending webhooks. After destruction, the handler cannot be reused.
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* ```typescript
|
|
457
|
+
* webhookHandler.destroy();
|
|
458
|
+
* console.log('Webhook handler destroyed');
|
|
459
|
+
* ```
|
|
460
|
+
*/
|
|
461
|
+
destroy() {
|
|
462
|
+
this.isDestroyed = true;
|
|
463
|
+
this.isProcessing = false;
|
|
464
|
+
if (this.processTimer) {
|
|
465
|
+
clearTimeout(this.processTimer);
|
|
466
|
+
this.processTimer = undefined;
|
|
467
|
+
}
|
|
468
|
+
this.clearQueue();
|
|
469
|
+
this.removeAllListeners();
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* Quick check for whether a webhook URL has been configured.
|
|
473
|
+
* Returns true if configure() has been called with a valid URL.
|
|
474
|
+
*
|
|
475
|
+
* @returns True if webhook is configured, false otherwise
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* ```typescript
|
|
479
|
+
* if (webhookHandler.isConfigured) {
|
|
480
|
+
* console.log('Webhooks are enabled');
|
|
481
|
+
* } else {
|
|
482
|
+
* console.log('Webhooks not configured');
|
|
483
|
+
* }
|
|
484
|
+
* ```
|
|
485
|
+
*/
|
|
486
|
+
get isConfigured() {
|
|
487
|
+
return !!this.webhookConfig;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Gets the current webhook configuration including URL, headers, and settings.
|
|
491
|
+
* Returns a defensive copy to prevent external modification of internal state.
|
|
492
|
+
* Returns undefined if webhook has not been configured.
|
|
493
|
+
*
|
|
494
|
+
* @returns Copy of current webhook configuration, or undefined if not configured
|
|
495
|
+
*
|
|
496
|
+
* @example
|
|
497
|
+
* ```typescript
|
|
498
|
+
* const config = webhookHandler.getConfig();
|
|
499
|
+
* if (config) {
|
|
500
|
+
* console.log(`Webhook URL: ${config.url}`);
|
|
501
|
+
* console.log(`Max retries: ${config.retries}`);
|
|
502
|
+
* console.log(`Timeout: ${config.timeout}ms`);
|
|
503
|
+
* }
|
|
504
|
+
* ```
|
|
505
|
+
*/
|
|
506
|
+
getConfig() {
|
|
507
|
+
return this.webhookConfig ? { ...this.webhookConfig } : undefined;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
exports.WebhookHandler = WebhookHandler;
|
|
511
|
+
//# sourceMappingURL=webhook-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-handler.js","sourceRoot":"","sources":["../../src/handlers/webhook-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Teneo Protocol SDK
|
|
3
|
+
* TypeScript SDK for external platforms to interact with Teneo agents
|
|
4
|
+
* Uses Zod for runtime validation and type safety
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Main SDK class for interacting with Teneo agents
|
|
10
|
+
* @see {@link TeneoSDK}
|
|
11
|
+
*/
|
|
12
|
+
export { TeneoSDK, SendMessageOptionsSchema, AgentCommandSchema } from "./teneo-sdk";
|
|
13
|
+
import { TeneoSDK } from "./teneo-sdk";
|
|
14
|
+
import { PartialSDKConfig } from "./types";
|
|
15
|
+
/**
|
|
16
|
+
* Configuration types, schemas, and builders
|
|
17
|
+
* Use SDKConfigBuilder for fluent configuration API
|
|
18
|
+
*/
|
|
19
|
+
export { LoggerSchema, LogLevelSchema, ResponseFormatSchema, WebhookEventTypeSchema, SDKConfigSchema, PartialSDKConfigSchema, ConnectionStateSchema, AuthenticationStateSchema, WebhookConfigSchema, WebhookPayloadSchema, SDKConfig, PartialSDKConfig, SDKConfigBuilder, Logger, LogLevel, ResponseFormat, ConnectionState, AuthenticationState, WebhookConfig, WebhookEventType, WebhookPayload, DEFAULT_CONFIG, validateConfig, safeParseConfig } from "./types/config";
|
|
20
|
+
/**
|
|
21
|
+
* Health monitoring types for SDK component status
|
|
22
|
+
* @see {@link TeneoSDK.getHealth}
|
|
23
|
+
*/
|
|
24
|
+
export { type HealthStatus } from "./types/health";
|
|
25
|
+
/**
|
|
26
|
+
* Message types, schemas, and utilities
|
|
27
|
+
* All WebSocket message types with Zod validation
|
|
28
|
+
*/
|
|
29
|
+
export { MessageTypeSchema, ContentTypeSchema, ClientTypeSchema, AgentTypeSchema, AgentStatusSchema, CapabilitySchema, CommandSchema, RoomSchema, AgentSchema, BaseMessageSchema, RequestChallengeMessageSchema, ChallengeMessageSchema, CheckCachedAuthMessageSchema, AuthMessageSchema, AuthSuccessMessageSchema, AuthErrorMessageSchema, RegisterMessageSchema, RegistrationSuccessMessageSchema, UserMessageSchema, TaskMessageSchema, TaskResponseMessageSchema, AgentSelectedMessageSchema, AgentsListMessageSchema, ErrorMessageSchema, PingMessageSchema, PongMessageSchema, SubscribeMessageSchema, UnsubscribeMessageSchema, ListRoomsMessageSchema, SubscribeResponseSchema, UnsubscribeResponseSchema, RoomInfoSchema, ListRoomsResponseSchema, AnyMessageSchema, MessageType, ContentType, ClientType, AgentType, AgentStatus, BaseMessage, RequestChallengeMessage, ChallengeMessage, CheckCachedAuthMessage, AuthMessage, AuthSuccessMessage, AuthErrorMessage, RegisterMessage, RegistrationSuccessMessage, UserMessage, TaskMessage, TaskResponseMessage, AgentSelectedMessage, AgentsListMessage, ErrorMessage, PingMessage, PongMessage, SubscribeMessage, UnsubscribeMessage, ListRoomsMessage, SubscribeResponse, UnsubscribeResponse, RoomInfo, ListRoomsResponse, AnyMessage, Room, Capability, Command, Agent, isAuthSuccess, isAuthError, isAuth, isChallenge, isAgentSelected, isTaskResponse, isError, isAgentsList, createRequestChallenge, createCheckCachedAuth, createAuth, createUserMessage, createPing, createSubscribe, createUnsubscribe, createListRooms, validateMessage, safeParseMessage } from "./types/messages";
|
|
30
|
+
/**
|
|
31
|
+
* Event types, error classes, and event handling utilities
|
|
32
|
+
* Comprehensive typed event system for SDK lifecycle
|
|
33
|
+
*/
|
|
34
|
+
export { AgentSelectedDataSchema, AgentResponseSchema, SDKErrorSchema, ConnectionErrorSchema, AuthenticationErrorSchema, MessageErrorSchema, WebhookErrorSchema, ValidationErrorSchema, TimeoutErrorSchema, RateLimitErrorSchema, SignatureVerificationErrorSchema, ConfigurationErrorSchema, EventMetadataSchema, SDKEvents, AgentSelectedData, AgentResponse, EventMetadata, EventHandler, EventMap, IEventEmitter, SDKError, ConnectionError, AuthenticationError, MessageError, WebhookError, ValidationError, TimeoutError, RateLimitError, SignatureVerificationError, ConfigurationError, validateEventData, safeValidateEventData, isRecoverableError } from "./types/events";
|
|
35
|
+
/**
|
|
36
|
+
* Response formatting utilities for agent responses
|
|
37
|
+
* Supports raw JSON, humanized text, or both formats
|
|
38
|
+
*/
|
|
39
|
+
export { FormatOptionSchema, ResponseMetadataSchema, FormattedResponseSchema, ResponseFormatter, FormattedResponse, ResponseMetadata, FormatOption } from "./formatters/response-formatter";
|
|
40
|
+
/**
|
|
41
|
+
* Security utilities for private key management
|
|
42
|
+
* SEC-3: In-memory encryption for private keys
|
|
43
|
+
*/
|
|
44
|
+
export { SecurePrivateKey } from "./utils/secure-private-key";
|
|
45
|
+
/**
|
|
46
|
+
* SDK version string
|
|
47
|
+
*/
|
|
48
|
+
export declare const VERSION = "1.0.0";
|
|
49
|
+
/**
|
|
50
|
+
* Convenience type re-exports for message operations
|
|
51
|
+
* @see {@link TeneoSDK.sendMessage}
|
|
52
|
+
* @see {@link TeneoSDK.sendDirectCommand}
|
|
53
|
+
*/
|
|
54
|
+
export type { SendMessageOptions, AgentCommand } from "./teneo-sdk";
|
|
55
|
+
/**
|
|
56
|
+
* Quick start function to create and connect SDK
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* import { createTeneoSDK } from '@teneo-protocol/sdk';
|
|
61
|
+
*
|
|
62
|
+
* const sdk = await createTeneoSDK({
|
|
63
|
+
* wsUrl: 'ws://localhost:8080/ws',
|
|
64
|
+
* privateKey: 'your-private-key',
|
|
65
|
+
* autoJoinRooms: ['general']
|
|
66
|
+
* });
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function createTeneoSDK(config: PartialSDKConfig): Promise<TeneoSDK>;
|
|
70
|
+
export default TeneoSDK;
|
|
71
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|