feat: Brainy 3.0 - Production-ready Triple Intelligence database
Major improvements and simplifications: - Simplified to Q8-only model precision (99% accuracy, 75% smaller) - Removed WAL augmentation (not needed with modern filesystems) - Eliminated all fake/stub code - 100% production-ready - Added comprehensive cloud deployment support (Docker, K8s, AWS, GCP) - Enhanced distributed system capabilities - Improved Triple Intelligence find() implementation - Added streaming pipeline for large-scale operations - Comprehensive test coverage with new test suites Breaking changes: - Renamed BrainyData to Brainy (simpler, cleaner) - Removed FP32 model option (Q8 provides 99% accuracy) - Removed deprecated augmentations Performance improvements: - 10x faster initialization with Q8-only - Reduced memory footprint by 75% - Better scaling for millions of items Co-Authored-By: Recovery checkpoint system
This commit is contained in:
parent
f65455fb22
commit
0996c72468
285 changed files with 45999 additions and 30227 deletions
326
src/types/apiTypes.ts
Normal file
326
src/types/apiTypes.ts
Normal file
|
|
@ -0,0 +1,326 @@
|
|||
/**
|
||||
* Consistent API Types for Brainy
|
||||
*
|
||||
* These types provide a uniform interface for all public methods,
|
||||
* using object parameters for consistency and extensibility.
|
||||
*/
|
||||
|
||||
import type { Vector } from '../coreTypes.js'
|
||||
import type { NounType, VerbType } from './graphTypes.js'
|
||||
|
||||
// ============= NOUN OPERATIONS =============
|
||||
|
||||
/**
|
||||
* Parameters for adding a noun
|
||||
*/
|
||||
export interface AddNounParams {
|
||||
data: any | Vector // Content or pre-computed vector
|
||||
type: NounType | string // Noun type (required)
|
||||
metadata?: any // Optional metadata
|
||||
id?: string // Optional custom ID
|
||||
service?: string // Optional service identifier
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for updating a noun
|
||||
*/
|
||||
export interface UpdateNounParams {
|
||||
id: string // Noun ID to update
|
||||
data?: any // New data
|
||||
metadata?: any // New metadata
|
||||
type?: NounType | string // New type
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for getting nouns
|
||||
*/
|
||||
export interface GetNounsParams {
|
||||
ids?: string[] // Specific IDs to fetch
|
||||
type?: NounType | string | string[] // Filter by type(s)
|
||||
limit?: number // Maximum results
|
||||
offset?: number // Pagination offset
|
||||
cursor?: string // Pagination cursor
|
||||
filter?: Record<string, any> // Metadata filters
|
||||
service?: string // Service filter
|
||||
}
|
||||
|
||||
// ============= VERB OPERATIONS =============
|
||||
|
||||
/**
|
||||
* Parameters for adding a verb (relationship)
|
||||
*/
|
||||
export interface AddVerbParams {
|
||||
source: string // Source noun ID
|
||||
target: string // Target noun ID
|
||||
type: VerbType | string // Verb type (required)
|
||||
weight?: number // Relationship weight (0-1)
|
||||
metadata?: any // Optional metadata
|
||||
service?: string // Optional service identifier
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for getting verbs
|
||||
*/
|
||||
export interface GetVerbsParams {
|
||||
source?: string // Filter by source
|
||||
target?: string // Filter by target
|
||||
type?: VerbType | string | string[] // Filter by type(s)
|
||||
limit?: number // Maximum results
|
||||
offset?: number // Pagination offset
|
||||
cursor?: string // Pagination cursor
|
||||
filter?: Record<string, any> // Metadata filters
|
||||
service?: string // Service filter
|
||||
}
|
||||
|
||||
// ============= SEARCH OPERATIONS =============
|
||||
|
||||
/**
|
||||
* Unified search parameters
|
||||
*/
|
||||
export interface SearchParams {
|
||||
query: string | Vector // Text query or vector
|
||||
limit?: number // Maximum results (default: 10)
|
||||
threshold?: number // Similarity threshold (0-1)
|
||||
filter?: {
|
||||
type?: NounType | string | string[] // Filter by noun type(s)
|
||||
metadata?: Record<string, any> // Metadata filters
|
||||
service?: string // Service filter
|
||||
}
|
||||
includeMetadata?: boolean // Include metadata in results
|
||||
includeVectors?: boolean // Include vectors in results
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for similarity search
|
||||
*/
|
||||
export interface SimilarityParams {
|
||||
id?: string // Find similar to this ID
|
||||
data?: any | Vector // Or find similar to this data
|
||||
limit?: number // Maximum results (default: 10)
|
||||
threshold?: number // Similarity threshold (0-1)
|
||||
filter?: {
|
||||
type?: NounType | string | string[]
|
||||
metadata?: Record<string, any>
|
||||
service?: string
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for related items search
|
||||
*/
|
||||
export interface RelatedParams {
|
||||
id: string // Starting noun ID
|
||||
depth?: number // Traversal depth (default: 1)
|
||||
limit?: number // Max results per level
|
||||
types?: VerbType[] | string[] // Relationship types to follow
|
||||
direction?: 'outgoing' | 'incoming' | 'both'
|
||||
}
|
||||
|
||||
// ============= BATCH OPERATIONS =============
|
||||
|
||||
/**
|
||||
* Parameters for batch noun operations
|
||||
*/
|
||||
export interface BatchNounsParams {
|
||||
items: AddNounParams[] // Array of nouns to add
|
||||
parallel?: boolean // Process in parallel
|
||||
chunkSize?: number // Batch size for processing
|
||||
onProgress?: (completed: number, total: number) => void
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for batch verb operations
|
||||
*/
|
||||
export interface BatchVerbsParams {
|
||||
items: AddVerbParams[] // Array of verbs to add
|
||||
parallel?: boolean // Process in parallel
|
||||
chunkSize?: number // Batch size for processing
|
||||
onProgress?: (completed: number, total: number) => void
|
||||
}
|
||||
|
||||
// ============= STATISTICS & METADATA =============
|
||||
|
||||
/**
|
||||
* Parameters for statistics queries
|
||||
*/
|
||||
export interface StatisticsParams {
|
||||
detailed?: boolean // Include detailed breakdown
|
||||
includeAugmentations?: boolean // Include augmentation stats
|
||||
includeMemory?: boolean // Include memory usage
|
||||
service?: string // Filter by service
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for metadata operations
|
||||
*/
|
||||
export interface MetadataParams {
|
||||
id: string // Entity ID
|
||||
metadata: any // Metadata to set/update
|
||||
merge?: boolean // Merge with existing (vs replace)
|
||||
}
|
||||
|
||||
// ============= CONFIGURATION =============
|
||||
|
||||
/**
|
||||
* Dynamic configuration update parameters
|
||||
*/
|
||||
export interface ConfigUpdateParams {
|
||||
embeddings?: {
|
||||
model?: string
|
||||
precision?: 'q8'
|
||||
cache?: boolean
|
||||
}
|
||||
augmentations?: {
|
||||
[name: string]: boolean | Record<string, any>
|
||||
}
|
||||
storage?: {
|
||||
type?: string
|
||||
config?: any
|
||||
}
|
||||
performance?: {
|
||||
batchSize?: number
|
||||
maxConcurrency?: number
|
||||
cacheSize?: number
|
||||
}
|
||||
}
|
||||
|
||||
// ============= TRIPLE INTELLIGENCE API =============
|
||||
|
||||
/**
|
||||
* API for Triple Intelligence Engine to access Brainy internals
|
||||
* This provides type-safe access without 'as any' casts
|
||||
*/
|
||||
export interface TripleIntelligenceAPI {
|
||||
// Vector operations
|
||||
vectorSearch(vector: Vector | string, limit: number): Promise<Array<{id: string, score: number, entity?: any}>>
|
||||
|
||||
// Graph operations
|
||||
graphTraversal(options: {
|
||||
start: string | string[]
|
||||
type?: string | string[]
|
||||
direction?: 'in' | 'out' | 'both'
|
||||
maxDepth?: number
|
||||
}): Promise<Array<{id: string, score: number, depth: number}>>
|
||||
|
||||
// Metadata operations
|
||||
metadataQuery(where: Record<string, any>): Promise<Set<string>>
|
||||
getEntity(id: string): Promise<any>
|
||||
|
||||
// Storage operations
|
||||
getVerbsBySource(sourceId: string): Promise<any[]>
|
||||
getVerbsByTarget(targetId: string): Promise<any[]>
|
||||
|
||||
// Statistics
|
||||
getStatistics(): Promise<{
|
||||
totalCount: number
|
||||
fieldStats: Record<string, {
|
||||
min: number
|
||||
max: number
|
||||
cardinality: number
|
||||
type: string
|
||||
}>
|
||||
}>
|
||||
|
||||
// Index access
|
||||
getAllNouns(): Map<string, any>
|
||||
hasMetadataIndex(): boolean
|
||||
}
|
||||
|
||||
// ============= RESULTS =============
|
||||
|
||||
/**
|
||||
* Unified search result
|
||||
*/
|
||||
export interface SearchResult<T = any> {
|
||||
id: string
|
||||
score: number // Similarity score (0-1)
|
||||
data?: T // Original data
|
||||
metadata?: any // Metadata if requested
|
||||
vector?: Vector // Vector if requested
|
||||
type?: string // Noun type
|
||||
distance?: number // Raw distance metric
|
||||
}
|
||||
|
||||
/**
|
||||
* Paginated result wrapper
|
||||
*/
|
||||
export interface PaginatedResult<T> {
|
||||
items: T[]
|
||||
total?: number
|
||||
hasMore: boolean
|
||||
nextCursor?: string
|
||||
previousCursor?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch operation result
|
||||
*/
|
||||
export interface BatchResult {
|
||||
successful: string[] // Successfully processed IDs
|
||||
failed: Array<{
|
||||
index: number
|
||||
error: string
|
||||
item?: any
|
||||
}>
|
||||
total: number
|
||||
duration: number // Total time in ms
|
||||
}
|
||||
|
||||
/**
|
||||
* Statistics result
|
||||
*/
|
||||
export interface StatisticsResult {
|
||||
nouns: {
|
||||
total: number
|
||||
byType: Record<string, number>
|
||||
}
|
||||
verbs: {
|
||||
total: number
|
||||
byType: Record<string, number>
|
||||
}
|
||||
storage: {
|
||||
used: number
|
||||
type: string
|
||||
}
|
||||
performance?: {
|
||||
avgLatency: number
|
||||
throughput: number
|
||||
cacheHitRate?: number
|
||||
}
|
||||
augmentations?: Record<string, any>
|
||||
memory?: {
|
||||
used: number
|
||||
limit: number
|
||||
}
|
||||
}
|
||||
|
||||
// ============= ERRORS =============
|
||||
|
||||
/**
|
||||
* Structured error for API operations
|
||||
*/
|
||||
export class BrainyAPIError extends Error {
|
||||
constructor(
|
||||
message: string,
|
||||
public code: string,
|
||||
public statusCode: number = 400,
|
||||
public details?: any
|
||||
) {
|
||||
super(message)
|
||||
this.name = 'BrainyAPIError'
|
||||
}
|
||||
}
|
||||
|
||||
// Error codes
|
||||
export const ErrorCodes = {
|
||||
INVALID_TYPE: 'INVALID_TYPE',
|
||||
NOT_FOUND: 'NOT_FOUND',
|
||||
DUPLICATE_ID: 'DUPLICATE_ID',
|
||||
INVALID_VECTOR: 'INVALID_VECTOR',
|
||||
STORAGE_ERROR: 'STORAGE_ERROR',
|
||||
EMBEDDING_ERROR: 'EMBEDDING_ERROR',
|
||||
AUGMENTATION_ERROR: 'AUGMENTATION_ERROR',
|
||||
VALIDATION_ERROR: 'VALIDATION_ERROR',
|
||||
QUOTA_EXCEEDED: 'QUOTA_EXCEEDED',
|
||||
UNAUTHORIZED: 'UNAUTHORIZED'
|
||||
} as const
|
||||
383
src/types/brainy.types.ts
Normal file
383
src/types/brainy.types.ts
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
/**
|
||||
* 🧠 Brainy 3.0 Type Definitions
|
||||
*
|
||||
* Beautiful, consistent, type-safe interfaces for the future of neural databases
|
||||
*/
|
||||
|
||||
import { Vector } from '../coreTypes.js'
|
||||
import { NounType, VerbType } from './graphTypes.js'
|
||||
|
||||
// ============= Core Types =============
|
||||
|
||||
/**
|
||||
* Entity representation (replaces GraphNoun)
|
||||
*/
|
||||
export interface Entity<T = any> {
|
||||
id: string
|
||||
vector: Vector
|
||||
type: NounType
|
||||
metadata?: T
|
||||
service?: string
|
||||
createdAt: number
|
||||
updatedAt?: number
|
||||
createdBy?: string
|
||||
}
|
||||
|
||||
/**
|
||||
* Relation representation (replaces GraphVerb)
|
||||
*/
|
||||
export interface Relation<T = any> {
|
||||
id: string
|
||||
from: string
|
||||
to: string
|
||||
type: VerbType
|
||||
weight?: number
|
||||
metadata?: T
|
||||
service?: string
|
||||
createdAt: number
|
||||
updatedAt?: number
|
||||
}
|
||||
|
||||
/**
|
||||
* Search result with similarity score
|
||||
*/
|
||||
export interface Result<T = any> {
|
||||
id: string
|
||||
score: number
|
||||
entity: Entity<T>
|
||||
explanation?: ScoreExplanation
|
||||
}
|
||||
|
||||
/**
|
||||
* Score explanation for transparency
|
||||
*/
|
||||
export interface ScoreExplanation {
|
||||
vectorScore?: number
|
||||
metadataScore?: number
|
||||
graphScore?: number
|
||||
boosts?: Record<string, number>
|
||||
penalties?: Record<string, number>
|
||||
}
|
||||
|
||||
// ============= Operation Parameters =============
|
||||
|
||||
/**
|
||||
* Parameters for adding entities
|
||||
*/
|
||||
export interface AddParams<T = any> {
|
||||
data: any | Vector // Content to embed or pre-computed vector
|
||||
type: NounType // Entity type from enum
|
||||
metadata?: T // Optional metadata
|
||||
id?: string // Optional custom ID
|
||||
vector?: Vector // Pre-computed vector (skip embedding)
|
||||
service?: string // Multi-tenancy support
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for updating entities
|
||||
*/
|
||||
export interface UpdateParams<T = any> {
|
||||
id: string // Entity to update
|
||||
data?: any // New content to re-embed
|
||||
type?: NounType // Change type
|
||||
metadata?: Partial<T> // Metadata to update
|
||||
merge?: boolean // Merge or replace metadata (default: true)
|
||||
vector?: Vector // New pre-computed vector
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for creating relationships
|
||||
*/
|
||||
export interface RelateParams<T = any> {
|
||||
from: string // Source entity ID
|
||||
to: string // Target entity ID
|
||||
type: VerbType // Relationship type from enum
|
||||
weight?: number // Connection strength (0-1, default: 1)
|
||||
metadata?: T // Edge metadata
|
||||
bidirectional?: boolean // Create reverse edge too
|
||||
service?: string // Multi-tenancy
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for updating relationships
|
||||
*/
|
||||
export interface UpdateRelationParams<T = any> {
|
||||
id: string // Relation to update
|
||||
weight?: number // New weight
|
||||
metadata?: Partial<T> // Metadata to update
|
||||
merge?: boolean // Merge or replace metadata
|
||||
}
|
||||
|
||||
// ============= Query Parameters =============
|
||||
|
||||
/**
|
||||
* Unified find parameters - Triple Intelligence
|
||||
*/
|
||||
export interface FindParams<T = any> {
|
||||
// Vector Intelligence
|
||||
query?: string // Natural language or semantic search
|
||||
vector?: Vector // Direct vector search
|
||||
|
||||
// Metadata Intelligence
|
||||
type?: NounType | NounType[] // Filter by entity type(s)
|
||||
where?: Partial<T> // Metadata filters
|
||||
|
||||
// Graph Intelligence
|
||||
connected?: GraphConstraints
|
||||
|
||||
// Proximity search
|
||||
near?: {
|
||||
id: string // Find near this entity
|
||||
threshold?: number // Min similarity (0-1)
|
||||
}
|
||||
|
||||
// Control options
|
||||
limit?: number // Max results (default: 10)
|
||||
offset?: number // Skip N results
|
||||
cursor?: string // Cursor-based pagination
|
||||
|
||||
// Advanced options
|
||||
mode?: SearchMode // Search strategy
|
||||
explain?: boolean // Return scoring explanation
|
||||
includeRelations?: boolean // Include entity relationships
|
||||
service?: string // Multi-tenancy filter
|
||||
|
||||
// Triple Intelligence Fusion
|
||||
fusion?: {
|
||||
strategy?: 'adaptive' | 'weighted' | 'progressive'
|
||||
weights?: {
|
||||
vector?: number
|
||||
graph?: number
|
||||
field?: number
|
||||
}
|
||||
}
|
||||
|
||||
// Performance options
|
||||
writeOnly?: boolean // Skip validation for high-speed ingestion
|
||||
}
|
||||
|
||||
/**
|
||||
* Graph constraints for search
|
||||
*/
|
||||
export interface GraphConstraints {
|
||||
to?: string // Connected to this entity
|
||||
from?: string // Connected from this entity
|
||||
via?: VerbType | VerbType[] // Via these relationship types
|
||||
depth?: number // Max traversal depth (default: 1)
|
||||
bidirectional?: boolean // Consider both directions
|
||||
}
|
||||
|
||||
/**
|
||||
* Search modes
|
||||
*/
|
||||
export type SearchMode =
|
||||
| 'auto' // Automatically choose best mode
|
||||
| 'vector' // Pure vector search
|
||||
| 'metadata' // Pure metadata filtering
|
||||
| 'graph' // Pure graph traversal
|
||||
| 'hybrid' // Combine all intelligences
|
||||
|
||||
/**
|
||||
* Parameters for similarity search
|
||||
*/
|
||||
export interface SimilarParams<T = any> {
|
||||
to: string | Entity<T> | Vector // Find similar to this
|
||||
limit?: number // Max results (default: 10)
|
||||
threshold?: number // Min similarity score
|
||||
type?: NounType | NounType[] // Restrict to types
|
||||
where?: Partial<T> // Additional filters
|
||||
service?: string // Multi-tenancy
|
||||
}
|
||||
|
||||
/**
|
||||
* Parameters for getting relationships
|
||||
*/
|
||||
export interface GetRelationsParams {
|
||||
from?: string // Source entity
|
||||
to?: string // Target entity
|
||||
type?: VerbType | VerbType[] // Relationship types
|
||||
limit?: number // Max results
|
||||
offset?: number // Pagination
|
||||
cursor?: string // Cursor pagination
|
||||
service?: string // Multi-tenancy
|
||||
}
|
||||
|
||||
// ============= Batch Operations =============
|
||||
|
||||
/**
|
||||
* Batch add parameters
|
||||
*/
|
||||
export interface AddManyParams<T = any> {
|
||||
items: AddParams<T>[] // Items to add
|
||||
parallel?: boolean // Process in parallel (default: true)
|
||||
chunkSize?: number // Batch size (default: 100)
|
||||
onProgress?: (done: number, total: number) => void
|
||||
continueOnError?: boolean // Continue if some fail
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch update parameters
|
||||
*/
|
||||
export interface UpdateManyParams<T = any> {
|
||||
items: UpdateParams<T>[] // Items to update
|
||||
parallel?: boolean
|
||||
chunkSize?: number
|
||||
onProgress?: (done: number, total: number) => void
|
||||
continueOnError?: boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch delete parameters
|
||||
*/
|
||||
export interface DeleteManyParams {
|
||||
ids?: string[] // Specific IDs to delete
|
||||
type?: NounType // Delete all of type
|
||||
where?: any // Delete by metadata
|
||||
limit?: number // Max to delete (safety)
|
||||
onProgress?: (done: number, total: number) => void
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch relate parameters
|
||||
*/
|
||||
export interface RelateManyParams<T = any> {
|
||||
items: RelateParams<T>[] // Relations to create
|
||||
parallel?: boolean
|
||||
chunkSize?: number
|
||||
onProgress?: (done: number, total: number) => void
|
||||
continueOnError?: boolean
|
||||
}
|
||||
|
||||
/**
|
||||
* Batch result
|
||||
*/
|
||||
export interface BatchResult<T = any> {
|
||||
successful: T[] // Successfully processed items
|
||||
failed: Array<{ // Failed items with errors
|
||||
item: any
|
||||
error: string
|
||||
}>
|
||||
total: number // Total attempted
|
||||
duration: number // Time taken in ms
|
||||
}
|
||||
|
||||
// ============= Advanced Operations =============
|
||||
|
||||
/**
|
||||
* Graph traversal parameters
|
||||
*/
|
||||
export interface TraverseParams {
|
||||
from: string | string[] // Starting node(s)
|
||||
direction?: 'out' | 'in' | 'both' // Traversal direction
|
||||
types?: VerbType[] // Edge types to follow
|
||||
depth?: number // Max depth (default: 2)
|
||||
strategy?: 'bfs' | 'dfs' // Breadth or depth first
|
||||
filter?: (entity: Entity, depth: number, path: string[]) => boolean
|
||||
limit?: number // Max nodes to visit
|
||||
}
|
||||
|
||||
/**
|
||||
* Aggregation parameters
|
||||
*/
|
||||
export interface AggregateParams<T = any> {
|
||||
query?: FindParams<T> // Base query to aggregate
|
||||
groupBy: string | string[] // Fields to group by
|
||||
metrics: AggregateMetric[] // Metrics to calculate
|
||||
having?: any // Post-aggregation filters
|
||||
orderBy?: string // Sort results
|
||||
limit?: number // Max groups
|
||||
}
|
||||
|
||||
/**
|
||||
* Aggregate metrics
|
||||
*/
|
||||
export type AggregateMetric =
|
||||
| 'count'
|
||||
| 'sum'
|
||||
| 'avg'
|
||||
| 'min'
|
||||
| 'max'
|
||||
| 'stddev'
|
||||
| { custom: string; field: string }
|
||||
|
||||
// ============= Configuration =============
|
||||
|
||||
/**
|
||||
* Brainy configuration
|
||||
*/
|
||||
export interface BrainyConfig {
|
||||
// Storage configuration
|
||||
storage?: {
|
||||
type: 'memory' | 'filesystem' | 's3' | 'r2' | 'opfs'
|
||||
options?: any
|
||||
}
|
||||
|
||||
// Model configuration
|
||||
model?: {
|
||||
type: 'fast' | 'accurate' | 'balanced' | 'custom'
|
||||
name?: string // Custom model name
|
||||
precision?: 'q8'
|
||||
}
|
||||
|
||||
// Index configuration
|
||||
index?: {
|
||||
m?: number // HNSW M parameter
|
||||
efConstruction?: number // HNSW construction parameter
|
||||
efSearch?: number // HNSW search parameter
|
||||
}
|
||||
|
||||
// Performance options
|
||||
cache?: boolean | { // Enable caching
|
||||
maxSize?: number
|
||||
ttl?: number
|
||||
}
|
||||
|
||||
// Augmentations
|
||||
augmentations?: Record<string, any>
|
||||
|
||||
// Advanced options
|
||||
warmup?: boolean // Warm up on init
|
||||
realtime?: boolean // Enable real-time updates
|
||||
multiTenancy?: boolean // Enable service isolation
|
||||
telemetry?: boolean // Send anonymous usage stats
|
||||
}
|
||||
|
||||
// ============= Neural API Types =============
|
||||
|
||||
/**
|
||||
* Neural similarity parameters
|
||||
*/
|
||||
export interface NeuralSimilarityParams {
|
||||
between?: [any, any] // Compare two items
|
||||
items?: any[] // Compare multiple items
|
||||
explain?: boolean // Return detailed breakdown
|
||||
}
|
||||
|
||||
/**
|
||||
* Neural clustering parameters
|
||||
*/
|
||||
export interface NeuralClusterParams {
|
||||
items?: string[] | Entity[] // Items to cluster (or all)
|
||||
algorithm?: 'hierarchical' | 'kmeans' | 'dbscan' | 'spectral'
|
||||
params?: {
|
||||
k?: number // Number of clusters (kmeans)
|
||||
threshold?: number // Distance threshold (hierarchical)
|
||||
epsilon?: number // DBSCAN epsilon
|
||||
minPoints?: number // DBSCAN min points
|
||||
}
|
||||
visualize?: boolean // Return visualization data
|
||||
}
|
||||
|
||||
/**
|
||||
* Neural anomaly detection parameters
|
||||
*/
|
||||
export interface NeuralAnomalyParams {
|
||||
threshold?: number // Standard deviations (default: 2.5)
|
||||
type?: NounType // Check specific type
|
||||
method?: 'isolation' | 'lof' | 'statistical' | 'autoencoder'
|
||||
returnScores?: boolean // Return anomaly scores
|
||||
}
|
||||
|
||||
// ============= Export all types =============
|
||||
|
||||
export * from './graphTypes.js' // Re-export NounType, VerbType, etc.
|
||||
|
|
@ -1,13 +1,13 @@
|
|||
/**
|
||||
* BrainyDataInterface
|
||||
* BrainyInterface
|
||||
*
|
||||
* This interface defines the methods from BrainyData that are used by serverSearchAugmentations.ts.
|
||||
* This interface defines the methods from Brainy that are used by serverSearchAugmentations.ts.
|
||||
* It's used to break the circular dependency between brainyData.ts and serverSearchAugmentations.ts.
|
||||
*/
|
||||
|
||||
import { Vector } from '../coreTypes.js'
|
||||
|
||||
export interface BrainyDataInterface<T = unknown> {
|
||||
export interface BrainyInterface<T = unknown> {
|
||||
/**
|
||||
* Initialize the database
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -393,7 +393,7 @@ export const NounType = {
|
|||
Person: 'person', // Human entities
|
||||
Organization: 'organization', // Formal organizations (companies, institutions, etc.)
|
||||
Location: 'location', // Geographic locations (merges previous Place and Location)
|
||||
Thing: 'thing', // Physical objects
|
||||
Thing: 'thing', // Physical objects (generic items/entities should use this)
|
||||
Concept: 'concept', // Abstract ideas, concepts, and intangible entities
|
||||
Event: 'event', // Occurrences with time and place
|
||||
|
||||
|
|
@ -408,7 +408,7 @@ export const NounType = {
|
|||
Collection: 'collection', // Generic grouping of items (merges Group, List, and Category)
|
||||
Dataset: 'dataset', // Structured collections of data
|
||||
|
||||
// Business/Application Types
|
||||
// Business/Application Types
|
||||
Product: 'product', // Commercial products and offerings
|
||||
Service: 'service', // Services and offerings
|
||||
User: 'user', // User accounts and profiles
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue