brainy/dist/augmentations/serverSearchAugmentations.d.ts
David Snelling f8c45f2d8d Initial commit: Brainy - Multi-Dimensional AI Database
Open source vector database with HNSW indexing, graph relationships,
and metadata facets. Features CLI with professional augmentation registry
integration for discovering extensions and capabilities.
2025-08-18 17:35:06 -07:00

167 lines
6.1 KiB
TypeScript

/**
* Server Search Augmentations
*
* This file implements conduit and activation augmentations for browser-server search functionality.
* It allows Brainy to search a server-hosted instance and store results locally.
*/
import { AugmentationType, IActivationAugmentation, AugmentationResponse, WebSocketConnection } from '../types/augmentations.js';
import { WebSocketConduitAugmentation } from './conduitAugmentations.js';
import { BrainyDataInterface } from '../types/brainyDataInterface.js';
/**
* ServerSearchConduitAugmentation
*
* A specialized conduit augmentation that provides functionality for searching
* a server-hosted Brainy instance and storing results locally.
*/
export declare class ServerSearchConduitAugmentation extends WebSocketConduitAugmentation {
private localDb;
constructor(name?: string);
/**
* Initialize the augmentation
*/
initialize(): Promise<void>;
/**
* Set the local Brainy instance
* @param db The Brainy instance to use for local storage
*/
setLocalDb(db: BrainyDataInterface): void;
/**
* Get the local Brainy instance
* @returns The local Brainy instance
*/
getLocalDb(): BrainyDataInterface | null;
/**
* Search the server-hosted Brainy instance and store results locally
* @param connectionId The ID of the established connection
* @param query The search query
* @param limit Maximum number of results to return
* @returns Search results
*/
searchServer(connectionId: string, query: string, limit?: number): Promise<AugmentationResponse<unknown>>;
/**
* Search the local Brainy instance
* @param query The search query
* @param limit Maximum number of results to return
* @returns Search results
*/
searchLocal(query: string, limit?: number): Promise<AugmentationResponse<unknown>>;
/**
* Search both server and local instances, combine results, and store server results locally
* @param connectionId The ID of the established connection
* @param query The search query
* @param limit Maximum number of results to return
* @returns Combined search results
*/
searchCombined(connectionId: string, query: string, limit?: number): Promise<AugmentationResponse<unknown>>;
/**
* Add data to both local and server instances
* @param connectionId The ID of the established connection
* @param data Text or vector to add
* @param metadata Metadata for the data
* @returns ID of the added data
*/
addToBoth(connectionId: string, data: string | any[], metadata?: any): Promise<AugmentationResponse<string>>;
}
/**
* ServerSearchActivationAugmentation
*
* An activation augmentation that provides actions for server search functionality.
*/
export declare class ServerSearchActivationAugmentation implements IActivationAugmentation {
readonly name: string;
readonly description: string;
enabled: boolean;
private isInitialized;
private conduitAugmentation;
private connections;
constructor(name?: string);
getType(): AugmentationType;
/**
* Initialize the augmentation
*/
initialize(): Promise<void>;
/**
* Shut down the augmentation
*/
shutDown(): Promise<void>;
/**
* Get the status of the augmentation
*/
getStatus(): Promise<'active' | 'inactive' | 'error'>;
/**
* Set the conduit augmentation to use for server search
* @param conduit The ServerSearchConduitAugmentation to use
*/
setConduitAugmentation(conduit: ServerSearchConduitAugmentation): void;
/**
* Store a connection for later use
* @param connectionId The ID to use for the connection
* @param connection The WebSocket connection
*/
storeConnection(connectionId: string, connection: WebSocketConnection): void;
/**
* Get a stored connection
* @param connectionId The ID of the connection to retrieve
* @returns The WebSocket connection
*/
getConnection(connectionId: string): WebSocketConnection | undefined;
/**
* Trigger an action based on a processed command or internal state
* @param actionName The name of the action to trigger
* @param parameters Optional parameters for the action
*/
triggerAction(actionName: string, parameters?: Record<string, unknown>): AugmentationResponse<unknown>;
/**
* Handle the connectToServer action
* @param parameters Action parameters
*/
private handleConnectToServer;
/**
* Handle the searchServer action
* @param parameters Action parameters
*/
private handleSearchServer;
/**
* Handle the searchLocal action
* @param parameters Action parameters
*/
private handleSearchLocal;
/**
* Handle the searchCombined action
* @param parameters Action parameters
*/
private handleSearchCombined;
/**
* Handle the addToBoth action
* @param parameters Action parameters
*/
private handleAddToBoth;
/**
* Generates an expressive output or response from Brainy
* @param knowledgeId The identifier of the knowledge to express
* @param format The desired output format (e.g., 'text', 'json')
*/
generateOutput(knowledgeId: string, format: string): AugmentationResponse<string | Record<string, unknown>>;
/**
* Interacts with an external system or API
* @param systemId The identifier of the external system
* @param payload The data to send to the external system
*/
interactExternal(systemId: string, payload: Record<string, unknown>): AugmentationResponse<unknown>;
}
/**
* Factory function to create server search augmentations
* @param serverUrl The URL of the server to connect to
* @param options Additional options
* @returns An object containing the created augmentations
*/
export declare function createServerSearchAugmentations(serverUrl: string, options?: {
conduitName?: string;
activationName?: string;
protocols?: string | string[];
localDb?: BrainyDataInterface;
}): Promise<{
conduit: ServerSearchConduitAugmentation;
activation: ServerSearchActivationAugmentation;
connection: WebSocketConnection;
}>;