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
TypeScript
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;
}