The 3.0 native engine ships as @soulcraft/cor (brainy 8.x <-> cor 3.x are a version-matched pair); the old @soulcraft/cortex package stays on the 2.x/7.x line. Public docs and .d.ts-visible comments now name the correct package. Historical 2.x contract references (e.g. the 2.3.1 read-side fallback) keep the old name deliberately.
544 lines
12 KiB
TypeScript
544 lines
12 KiB
TypeScript
/**
|
|
* Brainy 8.0 - Your AI-Powered Second Brain
|
|
* 🧠⚛️ A multi-dimensional database with vector, graph, and relational storage
|
|
*
|
|
* Core Components:
|
|
* - Brainy: The unified database with Triple Intelligence
|
|
* - Triple Intelligence: Seamless fusion of vector + graph + field search
|
|
* - Db: Immutable, generation-pinned database values (now/transact/asOf/with)
|
|
* - Plugins: Extensible plugin system (cor, storage adapters)
|
|
* - Neural Import: AI-powered entity extraction & smart data import
|
|
*/
|
|
|
|
// Export main Brainy class
|
|
import { Brainy } from './brainy.js'
|
|
|
|
export { Brainy }
|
|
|
|
// Export diagnostics result type
|
|
export type { DiagnosticsResult } from './brainy.js'
|
|
|
|
// Export Brainy configuration and types
|
|
export type {
|
|
BrainyConfig,
|
|
Entity,
|
|
Relation,
|
|
Result,
|
|
AddParams,
|
|
UpdateParams,
|
|
RelateParams,
|
|
UpdateRelationParams,
|
|
FindParams,
|
|
SimilarParams,
|
|
GetOptions,
|
|
RelatedParams,
|
|
AddManyParams,
|
|
UpdateManyParams,
|
|
RemoveManyParams,
|
|
RelateManyParams,
|
|
BatchResult,
|
|
SubtypeRegistry,
|
|
FillSubtypeRule,
|
|
FillSubtypeRules,
|
|
FillSubtypesResult,
|
|
AggregateDefinition,
|
|
AggregateMetricDef,
|
|
AggregateSource,
|
|
AggregateQueryParams,
|
|
AggregateResult,
|
|
AggregateGroupState,
|
|
MetricState,
|
|
AggregationOp,
|
|
TimeWindowGranularity,
|
|
GroupByDimension,
|
|
AggregationProvider
|
|
} from './types/brainy.types.js'
|
|
|
|
// Reserved-field contract — the canonical list of Brainy-owned field names
|
|
// that may never appear inside a `metadata` bag (see docs/concepts/consistency-model.md)
|
|
export {
|
|
RESERVED_ENTITY_FIELDS,
|
|
RESERVED_RELATION_FIELDS,
|
|
splitNounMetadataRecord,
|
|
splitVerbMetadataRecord
|
|
} from './types/reservedFields.js'
|
|
export type {
|
|
ReservedEntityField,
|
|
ReservedRelationField,
|
|
EntityMetadataInput,
|
|
EntityMetadataPatch,
|
|
RelationMetadataInput,
|
|
RelationMetadataPatch,
|
|
NoReservedEntityKeys,
|
|
NoReservedRelationKeys,
|
|
SplitMetadataRecord
|
|
} from './types/reservedFields.js'
|
|
|
|
// Export Aggregation Engine
|
|
export { AggregationIndex, AggregateMaterializer, bucketTimestamp, parseBucketRange } from './aggregation/index.js'
|
|
|
|
// Export Neural Import (AI data understanding)
|
|
export { NeuralImport } from './neural/neuralImport.js'
|
|
export type {
|
|
NeuralAnalysisResult,
|
|
DetectedEntity,
|
|
DetectedRelationship,
|
|
NeuralInsight,
|
|
NeuralImportOptions
|
|
} from './neural/neuralImport.js'
|
|
|
|
// Export Neural Entity Extraction
|
|
export { NeuralEntityExtractor } from './neural/entityExtractor.js'
|
|
export { SmartExtractor } from './neural/SmartExtractor.js'
|
|
export { SmartRelationshipExtractor } from './neural/SmartRelationshipExtractor.js'
|
|
export type {
|
|
ExtractedEntity
|
|
} from './neural/entityExtractor.js'
|
|
export type {
|
|
ExtractionResult,
|
|
SmartExtractorOptions,
|
|
FormatContext
|
|
} from './neural/SmartExtractor.js'
|
|
export type {
|
|
RelationshipExtractionResult,
|
|
SmartRelationshipExtractorOptions
|
|
} from './neural/SmartRelationshipExtractor.js'
|
|
|
|
// Export distance functions for convenience
|
|
import {
|
|
euclideanDistance,
|
|
cosineDistance,
|
|
manhattanDistance,
|
|
dotProductDistance
|
|
} from './utils/index.js'
|
|
|
|
export {
|
|
euclideanDistance,
|
|
cosineDistance,
|
|
manhattanDistance,
|
|
dotProductDistance
|
|
}
|
|
|
|
// Export version utilities
|
|
export { getBrainyVersion } from './utils/version.js'
|
|
|
|
// Export plugin system
|
|
export type { BrainyPlugin, BrainyPluginContext, StorageAdapterFactory } from './plugin.js'
|
|
export { PluginRegistry } from './plugin.js'
|
|
|
|
// Export migration system
|
|
export { MigrationRunner, MIGRATIONS } from './migration/index.js'
|
|
export type { Migration, MigrationState, MigrationPreview, MigrationResult, MigrateOptions, MigrationError } from './migration/index.js'
|
|
|
|
// Export optimistic-concurrency types (7.31.0)
|
|
export { RevisionConflictError } from './transaction/RevisionConflictError.js'
|
|
|
|
// Named not-found errors — thrown by update/relate/updateRelation/similar/
|
|
// transact/with() when a referenced entity or relation does not exist.
|
|
export { EntityNotFoundError, RelationNotFoundError } from './errors/notFound.js'
|
|
|
|
// Base error + typed migration-lock error — thrown by any data-plane call while a
|
|
// brain runs its one-time 7.x→8.0 upgrade; catch to answer HTTP 503 + Retry-After.
|
|
export { BrainyError, MigrationInProgressError, GraphIndexNotReadyError, MetadataIndexNotReadyError } from './errors/brainyError.js'
|
|
export type { BrainyErrorType } from './errors/brainyError.js'
|
|
|
|
// ============= 8.0 Db API — generational MVCC =============
|
|
// Immutable database values: brain.now() / brain.transact() / brain.asOf() /
|
|
// db.with() / db.persist() / Brainy.load(). See src/db/ for the record layer.
|
|
export { Db } from './db/db.js'
|
|
|
|
// Portable graph export/import — db.export() / brain.export() / brain.import()
|
|
// (PortableGraph v1; identical wire format to the 7.x line).
|
|
export { isPortableGraph, validatePortableGraph } from './db/portableGraph.js'
|
|
export type {
|
|
PortableGraph,
|
|
PortableGraphEntity,
|
|
PortableGraphRelation,
|
|
ExportSelector,
|
|
ExportOptions,
|
|
ImportOptions,
|
|
ImportResult,
|
|
PortableGraphValidation
|
|
} from './db/portableGraph.js'
|
|
export {
|
|
GenerationConflictError,
|
|
SpeculativeOverlayError,
|
|
GenerationCompactedError
|
|
} from './db/errors.js'
|
|
export type {
|
|
TxOperation,
|
|
TxAddOperation,
|
|
TxUpdateOperation,
|
|
TxRemoveOperation,
|
|
TxRelateOperation,
|
|
TxUnrelateOperation,
|
|
TransactOptions,
|
|
TransactReceipt,
|
|
TxLogEntry,
|
|
CompactHistoryOptions,
|
|
CompactHistoryResult,
|
|
ChangedIds,
|
|
DiffResult,
|
|
HistoryVersion,
|
|
EntityHistory
|
|
} from './db/types.js'
|
|
// Optional provider capability for generation-aware native indexes
|
|
export { isVersionedIndexProvider } from './plugin.js'
|
|
export type { VersionedIndexProvider } from './plugin.js'
|
|
// Optional native graph-acceleration engine (cor 3.0) — the published provider
|
|
// contract + its columnar wire types. Brainy feature-detects an implementation
|
|
// and falls back to its pure-TS adjacency when absent.
|
|
export type {
|
|
GraphAccelerationProvider,
|
|
Subgraph,
|
|
OpaqueIdSet,
|
|
GraphTraversalDirection,
|
|
TraverseOptions,
|
|
EdgesForNodeOptions,
|
|
GraphCursorHandle,
|
|
GraphCursorOptions,
|
|
GraphCursorChunk,
|
|
GraphScores,
|
|
GraphCommunities,
|
|
GraphPath,
|
|
RankOptions,
|
|
CommunitiesOptions,
|
|
PathOptions,
|
|
SampleOptions,
|
|
MostConnectedOptions
|
|
} from './plugin.js'
|
|
|
|
// Export embedding functionality
|
|
import {
|
|
UniversalSentenceEncoder,
|
|
TransformerEmbedding,
|
|
createEmbeddingFunction,
|
|
defaultEmbeddingFunction,
|
|
batchEmbed,
|
|
embeddingFunctions
|
|
} from './utils/embedding.js'
|
|
|
|
// Export logging utilities
|
|
import {
|
|
logger,
|
|
LogLevel,
|
|
configureLogger,
|
|
createModuleLogger
|
|
} from './utils/logger.js'
|
|
|
|
// Chat system removed - was returning fake responses
|
|
|
|
|
|
// Export performance and optimization utilities
|
|
import {
|
|
getGlobalBackpressure,
|
|
AdaptiveBackpressure
|
|
} from './utils/adaptiveBackpressure.js'
|
|
|
|
import {
|
|
getGlobalPerformanceMonitor,
|
|
PerformanceMonitor
|
|
} from './utils/performanceMonitor.js'
|
|
|
|
// Export environment utilities
|
|
import { isNode } from './utils/environment.js'
|
|
|
|
export {
|
|
UniversalSentenceEncoder,
|
|
TransformerEmbedding,
|
|
createEmbeddingFunction,
|
|
defaultEmbeddingFunction,
|
|
batchEmbed,
|
|
embeddingFunctions,
|
|
|
|
// Environment utilities
|
|
isNode,
|
|
|
|
// Logging utilities
|
|
logger,
|
|
LogLevel,
|
|
configureLogger,
|
|
createModuleLogger,
|
|
|
|
// Performance and optimization utilities
|
|
getGlobalBackpressure,
|
|
AdaptiveBackpressure,
|
|
getGlobalPerformanceMonitor,
|
|
PerformanceMonitor
|
|
}
|
|
|
|
// Export storage adapters (Brainy 8.0 — filesystem + memory only).
|
|
import { MemoryStorage, createStorage } from './storage/storageFactory.js'
|
|
|
|
export { MemoryStorage, createStorage }
|
|
|
|
// FileSystemStorage is exported separately to avoid browser build issues.
|
|
export { FileSystemStorage } from './storage/adapters/fileSystemStorage.js'
|
|
|
|
// Export types
|
|
import type {
|
|
Vector,
|
|
VectorDocument,
|
|
SearchResult,
|
|
DistanceFunction,
|
|
EmbeddingFunction,
|
|
EmbeddingModel,
|
|
HNSWNoun,
|
|
HNSWVerb,
|
|
HNSWConfig,
|
|
StorageAdapter
|
|
} from './coreTypes.js'
|
|
|
|
// Export vector index implementation (the JS HNSW path)
|
|
import { JsHnswVectorIndex } from './hnsw/hnswIndex.js'
|
|
|
|
export { JsHnswVectorIndex }
|
|
|
|
export type {
|
|
Vector,
|
|
VectorDocument,
|
|
SearchResult,
|
|
DistanceFunction,
|
|
EmbeddingFunction,
|
|
EmbeddingModel,
|
|
HNSWNoun,
|
|
HNSWVerb,
|
|
HNSWConfig,
|
|
StorageAdapter
|
|
}
|
|
|
|
// Export graph types
|
|
import type {
|
|
GraphNoun,
|
|
GraphVerb,
|
|
EmbeddedGraphVerb,
|
|
Person,
|
|
Organization,
|
|
Location,
|
|
Thing,
|
|
Concept,
|
|
Event,
|
|
Agent,
|
|
Organism,
|
|
Substance,
|
|
Quality,
|
|
TimeInterval,
|
|
Function,
|
|
Proposition,
|
|
Document,
|
|
Media,
|
|
File,
|
|
Message,
|
|
Collection,
|
|
Dataset,
|
|
Product,
|
|
Service,
|
|
Task,
|
|
Project,
|
|
Process,
|
|
State,
|
|
Role,
|
|
Language,
|
|
Currency,
|
|
Measurement,
|
|
Hypothesis,
|
|
Experiment,
|
|
Contract,
|
|
Regulation,
|
|
Interface,
|
|
Resource,
|
|
Custom,
|
|
SocialGroup,
|
|
Institution,
|
|
Norm,
|
|
InformationContent,
|
|
InformationBearer,
|
|
Relationship
|
|
} from './types/graphTypes.js'
|
|
import { NounType, VerbType } from './types/graphTypes.js'
|
|
|
|
export type {
|
|
GraphNoun,
|
|
GraphVerb,
|
|
EmbeddedGraphVerb,
|
|
Person,
|
|
Organization,
|
|
Location,
|
|
Thing,
|
|
Concept,
|
|
Event,
|
|
Agent,
|
|
Organism,
|
|
Substance,
|
|
Quality,
|
|
TimeInterval,
|
|
Function,
|
|
Proposition,
|
|
Document,
|
|
Media,
|
|
File,
|
|
Message,
|
|
Collection,
|
|
Dataset,
|
|
Product,
|
|
Service,
|
|
Task,
|
|
Project,
|
|
Process,
|
|
State,
|
|
Role,
|
|
Language,
|
|
Currency,
|
|
Measurement,
|
|
Hypothesis,
|
|
Experiment,
|
|
Contract,
|
|
Regulation,
|
|
Interface,
|
|
Resource,
|
|
Custom,
|
|
SocialGroup,
|
|
Institution,
|
|
Norm,
|
|
InformationContent,
|
|
InformationBearer,
|
|
Relationship
|
|
}
|
|
// Export type utility functions
|
|
import { getNounTypes, getVerbTypes, getNounTypeMap, getVerbTypeMap } from './utils/typeUtils.js'
|
|
|
|
// Export BrainyTypes for type validation and lookup
|
|
import { BrainyTypes } from './utils/brainyTypes.js'
|
|
|
|
export {
|
|
NounType,
|
|
VerbType,
|
|
getNounTypes,
|
|
getVerbTypes,
|
|
getNounTypeMap,
|
|
getVerbTypeMap,
|
|
// BrainyTypes - type validation and lookup
|
|
BrainyTypes
|
|
}
|
|
|
|
// Export MCP (Model Control Protocol) components
|
|
import {
|
|
BrainyMCPAdapter,
|
|
BrainyMCPService
|
|
} from './mcp/index.js' // Import from mcp/index.js
|
|
import {
|
|
MCPRequest,
|
|
MCPResponse,
|
|
MCPDataAccessRequest,
|
|
MCPToolExecutionRequest,
|
|
MCPSystemInfoRequest,
|
|
MCPAuthenticationRequest,
|
|
MCPRequestType,
|
|
MCPServiceOptions,
|
|
MCPTool,
|
|
MCP_VERSION
|
|
} from './types/mcpTypes.js'
|
|
|
|
export {
|
|
// MCP classes
|
|
BrainyMCPAdapter,
|
|
BrainyMCPService,
|
|
|
|
// MCP types
|
|
MCPRequestType,
|
|
MCP_VERSION
|
|
}
|
|
|
|
export type {
|
|
MCPRequest,
|
|
MCPResponse,
|
|
MCPDataAccessRequest,
|
|
MCPToolExecutionRequest,
|
|
MCPSystemInfoRequest,
|
|
MCPAuthenticationRequest,
|
|
MCPServiceOptions,
|
|
MCPTool
|
|
}
|
|
|
|
// ============= Integration Hub =============
|
|
// Connect Brainy to Excel, Power BI, Google Sheets, and more
|
|
// Enable with: new Brainy({ integrations: true })
|
|
|
|
// Hub class (used internally by brain.hub, also available for advanced use)
|
|
export {
|
|
IntegrationHub,
|
|
createIntegrationHub
|
|
} from './integrations/index.js'
|
|
|
|
export type {
|
|
IntegrationHubConfig,
|
|
IntegrationRequest,
|
|
IntegrationResponse
|
|
} from './integrations/index.js'
|
|
|
|
// Re-export IntegrationsConfig from types (for TypeScript users)
|
|
export type { IntegrationsConfig } from './types/brainy.types.js'
|
|
|
|
// Core infrastructure
|
|
export {
|
|
EventBus,
|
|
TabularExporter,
|
|
IntegrationBase,
|
|
IntegrationLoader,
|
|
createIntegrationLoader,
|
|
detectEnvironment,
|
|
INTEGRATION_CATALOG
|
|
} from './integrations/index.js'
|
|
|
|
// Integration types
|
|
export type {
|
|
BrainyEvent,
|
|
EventFilter,
|
|
EventHandler,
|
|
EventSubscription,
|
|
TabularRow,
|
|
RelationTabularRow,
|
|
TabularExporterConfig,
|
|
IntegrationConfig,
|
|
IntegrationHealthStatus,
|
|
HTTPIntegration,
|
|
StreamingIntegration,
|
|
IntegrationType,
|
|
RuntimeEnvironment,
|
|
IntegrationInfo,
|
|
IntegrationLoaderConfig,
|
|
ODataQueryOptions,
|
|
WebhookRegistration,
|
|
WebhookDeliveryResult
|
|
} from './integrations/index.js'
|
|
|
|
// Concrete integrations
|
|
export {
|
|
GoogleSheetsIntegration,
|
|
ODataIntegration,
|
|
SSEIntegration,
|
|
WebhookIntegration
|
|
} from './integrations/index.js'
|
|
|
|
export type {
|
|
GoogleSheetsConfig,
|
|
ODataConfig,
|
|
SSEConfig,
|
|
WebhookConfig
|
|
} from './integrations/index.js'
|
|
|
|
// OData utilities (advanced)
|
|
export {
|
|
parseODataQuery,
|
|
parseFilter,
|
|
parseOrderBy,
|
|
parseSelect,
|
|
odataToFindParams,
|
|
applyFilter,
|
|
applySelect,
|
|
applyOrderBy,
|
|
applyPagination,
|
|
generateEdmx,
|
|
generateMetadataJson,
|
|
generateServiceDocument
|
|
} from './integrations/index.js'
|