UNPKG

askexperts

Version:

AskExperts SDK: build and use AI experts - ask them questions and pay with bitcoin on an open protocol

182 lines (181 loc) 5.16 kB
import { DocStorePerms } from "./interfaces.js"; /** * Error codes for WebSocket responses */ export declare enum ErrorCode { INVALID_REQUEST = "invalid_request", METHOD_NOT_FOUND = "method_not_found", INVALID_PARAMS = "invalid_params", DOCSTORE_NOT_FOUND = "docstore_not_found", DOCUMENT_NOT_FOUND = "document_not_found", INTERNAL_ERROR = "internal_error", PERMISSION_DENIED = "permission_denied", UNAUTHORIZED = "unauthorized" } /** * DocStoreSQLiteServer class that exposes DocStoreSQLite functionality via WebSocket */ /** * Configuration options for DocStoreSQLiteServer */ export interface DocStoreSQLiteServerOptions { /** Path to the SQLite database file */ dbPath: string; /** Port to listen on */ port?: number; /** Host to bind to */ host?: string; /** Server origin for auth token validation (e.g. 'https://yourdomain.com') */ origin?: string; /** Optional permissions interface for authentication and authorization */ perms?: DocStorePerms; } export declare class DocStoreSQLiteServer { private wss; private server; private docStore; private subscriptions; private clients; private perms?; private serverOrigin; private port; private host; /** * Creates a new DocStoreSQLiteServer * @param options - Configuration options */ constructor(options: DocStoreSQLiteServerOptions); /** * Start the server and begin listening for connections */ start(): void; /** * Set up WebSocket server event handlers */ private setupWebSocketServer; /** * Handle incoming WebSocket messages * @param ws - WebSocket connection * @param message - Parsed message */ /** * Handle authentication message * @param ws - WebSocket connection * @param message - Auth message */ private handleAuthMessage; private handleMessage; /** * Handle request messages * @param ws - WebSocket connection * @param message - Request message */ private handleRequestMessage; /** * Handle subscription messages * @param ws - WebSocket connection * @param message - Subscription message */ private handleSubscriptionMessage; /** * Handle end messages * @param ws - WebSocket connection * @param message - End message */ private handleEndMessage; /** * Handle upsert method * @param ws - WebSocket connection * @param message - Request message */ /** * Convert regular arrays to Float32Array for embeddings * @param doc - Document with potentially regular array embeddings * @returns Document with Float32Array embeddings */ private prepareDocForUpsert; /** * Convert Float32Array to regular arrays for serialization * @param doc - Document with Float32Array embeddings * @returns Document with regular array embeddings for serialization */ private prepareDocForSerialization; private handleUpsert; /** * Handle get method * @param ws - WebSocket connection * @param message - Request message */ private handleGet; /** * Handle delete method * @param ws - WebSocket connection * @param message - Request message */ private handleDelete; /** * Handle createDocstore method * @param ws - WebSocket connection * @param message - Request message */ private handleCreateDocstore; /** * Handle getDocstore method * @param ws - WebSocket connection * @param message - Request message */ private handleGetDocstore; /** * Handle listDocstores method * @param ws - WebSocket connection * @param message - Request message */ private handleListDocstores; /** * Handle deleteDocstore method * @param ws - WebSocket connection * @param message - Request message */ private handleDeleteDocstore; /** * Handle countDocs method * @param ws - WebSocket connection * @param message - Request message */ private handleCountDocs; /** * Handle subscribe method * @param ws - WebSocket connection * @param message - Subscription message */ private handleSubscribe; /** * Handle end subscription message * @param ws - WebSocket connection * @param message - End message */ private handleEndSubscription; /** * Clean up subscriptions associated with a WebSocket connection * @param ws - WebSocket connection */ private cleanupClientSubscriptions; /** * Send a response message * @param ws - WebSocket connection * @param message - Response message */ private sendResponse; /** * Send an error response * @param ws - WebSocket connection * @param originalMessage - Original message that caused the error * @param code - Error code * @param message - Error message */ private sendErrorResponse; /** * Close the server and release resources */ close(): void; }