@utaba/deep-memory 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,14 +1,14 @@
1
- import { G as GovernanceConfig, M as MemoryVocabulary, x as ResolvedVocabulary, C as CreateEntityInput, U as UpdateEntityInput, y as CreateRelationshipInput, z as EntityTypeDefinition, A as VocabularyProposal, F as VocabularyProposalResult, H as ProvenanceContext, J as Provenance, E as Entity, D as DetailLevel, a as EntitySummary, b as EntityBrief, K as FindEntitiesQuery, e as PaginatedResult, L as ReembedResult, N as Relationship, P as PropertyFilter, R as RelationshipSummary, O as GraphResult, Q as ExploreOptions, T as Neighborhood, W as PathOptions, X as PathResult, Y as ConceptSearchOptions, Z as ScoredEntity, _ as TimelineOptions, $ as TimelineResult, i as RepositoryStats, a0 as RepositoryConfig, d as RepositoryFilter, a1 as RepositorySummary, g as RepositoryUpdate, c as StoredRepository, a2 as ExportOptions, a3 as ExportArchive, a4 as ImportOptions, a5 as ImportResult, a6 as ExportStreamItem, a7 as ImportStreamHeader, I as ImportChunk, k as StoredEntity, S as StorageRepositoryConfig, f as StoredRepositorySummary, h as DeleteProgressCallback, j as PaginationOptions, V as VocabularyChangeRecord, l as StoredEntityUpdate, m as StorageFindQuery, n as StoredRelationship, o as RelationshipQueryOptions, p as StorageExploreOptions, q as StorageNeighborhood, r as StoragePathOptions, s as StoragePathResult, t as StorageTimelineOptions, u as StorageTimelineResult, v as ExportChunk, B as BulkImportOptions, w as BulkImportResult, a8 as SearchOptions, a9 as SearchHit } from './portability-B-8J4nQQ.cjs';
2
- export { aa as EnrichedRelationship, ab as EntityMap, ac as EntityTypeInput, ad as ExportLegalMetadata, ae as ExportManifest, af as ExportPipelineMetadata, ag as GetEntitiesOptions, ah as GetEntityOptions, ai as GovernanceMode, aj as ImportWarning, ak as NeighborhoodCenter, al as NeighborhoodGroup, am as NeighborhoodLayer, an as Path, ao as PropertySchema, ap as PropertyType, aq as ProvenanceFilter, ar as RelationshipDirection, as as RelationshipTypeDefinition, at as RelationshipTypeInput, au as RepositoryMetadata, av as StorageNeighborhoodGroup, aw as StorageNeighborhoodLayer, ax as StoragePath, ay as StorageTimelineEvent, az as TimelineEntityRef, aA as TimelineEvent, aB as TimelineRelationshipDetail, aC as VocabularyInput } from './portability-B-8J4nQQ.cjs';
1
+ import { G as GovernanceConfig, M as MemoryVocabulary, x as ResolvedVocabulary, C as CreateEntityInput, y as ValidationResult, U as UpdateEntityInput, z as CreateRelationshipInput, A as EntityTypeDefinition, F as VocabularyProposal, H as VocabularyProposalResult, J as ProvenanceContext, K as Provenance, E as Entity, D as DetailLevel, a as EntitySummary, b as EntityBrief, L as FindEntitiesQuery, e as PaginatedResult, N as DeleteEntitiesResult, O as ReembedResult, Q as Relationship, T as RemoveRelationshipsResult, P as PropertyFilter, R as RelationshipSummary, W as GraphResult, X as ExploreOptions, Y as Neighborhood, Z as PathOptions, _ as PathResult, $ as ConceptSearchOptions, a0 as ScoredEntity, a1 as TimelineOptions, a2 as TimelineResult, i as RepositoryStats, a3 as ValidateEntitiesOptions, a4 as EntityValidationPage, a5 as ValidateRelationshipsOptions, a6 as RelationshipValidationPage, a7 as RepositoryConfig, c as StoredRepository, d as RepositoryFilter, a8 as RepositorySummary, g as RepositoryUpdate, a9 as ExportOptions, aa as ExportArchive, ab as ImportOptions, ac as ImportResult, ad as ExportStreamItem, ae as ImportStreamHeader, I as ImportChunk, k as StoredEntity, S as StorageRepositoryConfig, f as StoredRepositorySummary, h as DeleteProgressCallback, j as PaginationOptions, V as VocabularyChangeRecord, l as StoredEntityUpdate, m as StorageFindQuery, n as StoredRelationship, o as RelationshipQueryOptions, p as StorageExploreOptions, q as StorageNeighborhood, r as StoragePathOptions, s as StoragePathResult, t as StorageTimelineOptions, u as StorageTimelineResult, v as ExportChunk, B as BulkImportOptions, w as BulkImportResult, af as SearchOptions, ag as SearchHit } from './portability-fa5sVgsP.cjs';
2
+ export { ah as EnrichedRelationship, ai as EntityMap, aj as EntityTypeInput, ak as EntityValidationIssue, al as ExportLegalMetadata, am as ExportManifest, an as ExportPipelineMetadata, ao as GetEntitiesOptions, ap as GetEntityOptions, aq as GovernanceMode, ar as ImportWarning, as as NeighborhoodCenter, at as NeighborhoodGroup, au as NeighborhoodLayer, av as Path, aw as PropertySchema, ax as PropertyType, ay as ProvenanceFilter, az as RelationshipDirection, aA as RelationshipTypeDefinition, aB as RelationshipTypeInput, aC as RelationshipValidationIssue, aD as RepositoryMetadata, aE as StorageNeighborhoodGroup, aF as StorageNeighborhoodLayer, aG as StoragePath, aH as StorageTimelineEvent, aI as TimelineEntityRef, aJ as TimelineEvent, aK as TimelineRelationshipDetail, aL as VocabularyInput } from './portability-fa5sVgsP.cjs';
3
3
  import { DeepMemoryEventType, EventHandler, Unsubscribe, DeepMemoryEvent, HookResult, EventPayload } from './types/index.cjs';
4
- import { T as TraversalSpec, a as TraversalResult } from './traversal-Llalk03r.cjs';
5
- export { Q as QueryMetadata, b as TraversalAggregation, c as TraversalPath, d as TraversalProjection, e as TraversalRelationship, f as TraversalReturnMode, g as TraversalStart, h as TraversalStep } from './traversal-Llalk03r.cjs';
6
- import { S as StorageProvider, E as EnsureSchemaResult } from './StorageProvider-CBhwqavV.cjs';
7
- import { EmbeddingProvider, SearchProvider, GraphTraversalProvider, LockProvider, SearchableEntity } from './providers/index.cjs';
4
+ import { T as TraversalSpec, a as TraversalResult } from './traversal-CXqN780S.cjs';
5
+ export { Q as QueryMetadata, b as TraversalAggregation, c as TraversalPath, d as TraversalProjection, e as TraversalRelationship, f as TraversalReturnMode, g as TraversalStart, h as TraversalStep } from './traversal-CXqN780S.cjs';
6
+ import { S as StorageProvider, E as EnsureSchemaResult } from './StorageProvider-CX4mKNph.cjs';
7
+ import { EmbeddingProvider, SearchProvider, EmbeddingProviderFactory, GraphTraversalProvider, LockProvider, SearchableEntity } from './providers/index.cjs';
8
8
  export { GraphTraversalCapabilities, LockHandle, LockOptions } from './providers/index.cjs';
9
9
 
10
10
  /** Error codes for all Deep Memory errors */
11
- type DeepMemoryErrorCode = 'INVALID_INPUT' | 'ENTITY_NOT_FOUND' | 'ENTITY_ALREADY_EXISTS' | 'RELATIONSHIP_NOT_FOUND' | 'RELATIONSHIP_ALREADY_EXISTS' | 'REPOSITORY_NOT_FOUND' | 'REPOSITORY_ALREADY_EXISTS' | 'VOCABULARY_VALIDATION_FAILED' | 'RELATIONSHIP_CONSTRAINT_FAILED' | 'GOVERNANCE_DENIED' | 'OPERATION_CANCELLED' | 'EMBEDDING_PROVIDER_REQUIRED' | 'IMPORT_ERROR' | 'EXPORT_ERROR' | 'PROVIDER_ERROR' | 'GRAPH_TRAVERSAL_PROVIDER_REQUIRED' | 'TRAVERSAL_VALIDATION_FAILED' | 'TRAVERSAL_VOCABULARY_ERROR' | 'TRAVERSAL_TIMEOUT';
11
+ type DeepMemoryErrorCode = 'INVALID_INPUT' | 'ENTITY_NOT_FOUND' | 'ENTITY_ALREADY_EXISTS' | 'RELATIONSHIP_NOT_FOUND' | 'RELATIONSHIP_ALREADY_EXISTS' | 'REPOSITORY_NOT_FOUND' | 'REPOSITORY_ALREADY_EXISTS' | 'VOCABULARY_VALIDATION_FAILED' | 'RELATIONSHIP_CONSTRAINT_FAILED' | 'SELF_REFERENTIAL_RELATIONSHIP' | 'GOVERNANCE_DENIED' | 'OPERATION_CANCELLED' | 'EMBEDDING_PROVIDER_REQUIRED' | 'IMPORT_ERROR' | 'EXPORT_ERROR' | 'PROVIDER_ERROR' | 'GRAPH_TRAVERSAL_PROVIDER_REQUIRED' | 'TRAVERSAL_VALIDATION_FAILED' | 'TRAVERSAL_VOCABULARY_ERROR' | 'TRAVERSAL_TIMEOUT';
12
12
  /** Base error class for all Deep Memory errors */
13
13
  declare class DeepMemoryError extends Error {
14
14
  readonly code: DeepMemoryErrorCode;
@@ -71,6 +71,12 @@ declare class RelationshipConstraintError extends DeepMemoryError {
71
71
  readonly targetType?: string;
72
72
  constructor(relationshipType: string, message: string, sourceType?: string, targetType?: string);
73
73
  }
74
+ /** Relationship source and target entity are the same — self-references are not permitted */
75
+ declare class SelfReferentialRelationshipError extends DeepMemoryError {
76
+ readonly entityId: string;
77
+ readonly relationshipType: string;
78
+ constructor(entityId: string, relationshipType: string);
79
+ }
74
80
  /** Governance rules denied the operation */
75
81
  declare class GovernanceDeniedError extends DeepMemoryError {
76
82
  readonly governanceMode: string;
@@ -118,18 +124,6 @@ declare class TraversalTimeoutError extends DeepMemoryError {
118
124
  constructor(timeoutMs: number);
119
125
  }
120
126
 
121
- /** A single validation error with optional suggestion */
122
- interface ValidationError {
123
- field: string;
124
- message: string;
125
- suggestion?: string;
126
- }
127
- /** Result of a validation check */
128
- interface ValidationResult {
129
- valid: boolean;
130
- errors: ValidationError[];
131
- }
132
-
133
127
  interface VocabularyEngineConfig {
134
128
  repositoryId: string;
135
129
  storageProvider: StorageProvider;
@@ -230,7 +224,13 @@ interface MemoryRepositoryConfig {
230
224
  repositoryId: string;
231
225
  storage: StorageProvider;
232
226
  search?: SearchProvider;
227
+ /** Embedding provider configured for this repository's model + dimensions */
233
228
  embedding?: EmbeddingProvider;
229
+ /**
230
+ * Factory for producing embedding providers with different model/dimensions.
231
+ * Required only if reembedAll will be called with a new model or dimensions.
232
+ */
233
+ embeddingFactory?: EmbeddingProviderFactory;
234
234
  graphTraversal?: GraphTraversalProvider;
235
235
  vocabularyEngine: VocabularyEngine;
236
236
  provenanceTracker: ProvenanceTracker;
@@ -247,6 +247,8 @@ declare class MemoryRepository {
247
247
  private readonly relationshipManager;
248
248
  private readonly graphTraversal;
249
249
  private readonly searchOrchestrator;
250
+ private readonly embeddingFactory?;
251
+ private embedding?;
250
252
  constructor(config: MemoryRepositoryConfig);
251
253
  getVocabulary(): Promise<ResolvedVocabulary>;
252
254
  proposeVocabularyChange(proposal: VocabularyProposal): Promise<VocabularyProposalResult>;
@@ -258,15 +260,22 @@ declare class MemoryRepository {
258
260
  getBySlug(slug: string, detailLevel?: DetailLevel): Promise<Entity | EntitySummary | EntityBrief | null>;
259
261
  getEntities(entityIds: string[], detailLevel?: 'brief' | 'summary'): Promise<Map<string, EntitySummary | EntityBrief>>;
260
262
  findEntities(query: FindEntitiesQuery): Promise<PaginatedResult<Entity | EntitySummary | EntityBrief>>;
261
- deleteEntity(entityId: string): Promise<void>;
263
+ deleteEntities(ids: string[]): Promise<DeleteEntitiesResult>;
262
264
  /** Re-embed specific entities using the current EmbeddingProvider */
263
265
  reembedEntities(entityIds: string[]): Promise<ReembedResult>;
264
266
  /**
265
- * Re-embed all entities in the repository using the current EmbeddingProvider.
267
+ * Re-embed all entities in the repository. If `model` or `dimensions` is provided,
268
+ * the repository's embedding configuration is updated to the new values before
269
+ * re-embedding, so all subsequent entity writes use the new model/dimensionality.
270
+ *
266
271
  * Processes in batches with optional rate limiting. Emits reembed:* events for progress tracking.
267
272
  * Updates repository metadata with the new model ID and dimensions on completion.
268
273
  */
269
274
  reembedAll(options?: {
275
+ /** New embedding model to switch to. Requires an embeddingFactory on DeepMemory. */
276
+ model?: string;
277
+ /** New embedding dimensionality to switch to. Requires an embeddingFactory on DeepMemory. */
278
+ dimensions?: number;
270
279
  batchSize?: number;
271
280
  /** Max retries per batch on embedding failure (default 3) */
272
281
  maxRetries?: number;
@@ -276,7 +285,7 @@ declare class MemoryRepository {
276
285
  delayBetweenBatchesMs?: number;
277
286
  }): Promise<ReembedResult>;
278
287
  createRelationships(inputs: CreateRelationshipInput[]): Promise<Relationship[]>;
279
- removeRelationship(relationshipId: string): Promise<void>;
288
+ removeRelationships(ids: string[]): Promise<RemoveRelationshipsResult>;
280
289
  getRelationships(entityId: string, options?: {
281
290
  relationshipTypes?: string[];
282
291
  direction?: 'outbound' | 'inbound' | 'both';
@@ -299,6 +308,19 @@ declare class MemoryRepository {
299
308
  searchByConcept(query: string, options?: ConceptSearchOptions): Promise<PaginatedResult<ScoredEntity>>;
300
309
  getTimeline(entityId: string, options?: TimelineOptions): Promise<TimelineResult>;
301
310
  getStats(): Promise<RepositoryStats>;
311
+ /**
312
+ * Audit a window of entities against the current vocabulary. Returns a single
313
+ * page; callers loop until `done` is true. Paging is over scanned entities,
314
+ * not issues. Does not mutate anything.
315
+ */
316
+ validateEntities(options?: ValidateEntitiesOptions): Promise<EntityValidationPage>;
317
+ /**
318
+ * Audit a window of relationships against the current vocabulary. Returns a
319
+ * single page; callers loop until `done` is true. The full entity set is
320
+ * loaded once per call to resolve orphan and type-mismatch checks, then
321
+ * offset/take is applied to the relationship stream. Does not mutate anything.
322
+ */
323
+ validateRelationships(options?: ValidateRelationshipsOptions): Promise<RelationshipValidationPage>;
302
324
  /** Delete all entities and relationships in this repository, preserving the repository and vocabulary */
303
325
  deleteAllContents(): Promise<{
304
326
  deletedEntities: number;
@@ -323,8 +345,17 @@ interface DeepMemoryConfig {
323
345
  storage: StorageProvider;
324
346
  /** Optional: search provider for full-text search */
325
347
  search?: SearchProvider;
326
- /** Optional: embedding provider for semantic search */
327
- embedding?: EmbeddingProvider;
348
+ /**
349
+ * Optional: factory that produces an EmbeddingProvider configured for a specific
350
+ * model + dimensionality. Called once per repository open/create using the repo's
351
+ * stored embedding metadata, so different repositories can use different models
352
+ * and embedding dimensions without any per-mutation lookups.
353
+ */
354
+ embeddingFactory?: EmbeddingProviderFactory;
355
+ /** Default embedding model for new repositories that don't specify one in metadata */
356
+ defaultEmbeddingModel?: string;
357
+ /** Default embedding dimensions for new repositories that don't specify one in metadata */
358
+ defaultEmbeddingDimensions?: number;
328
359
  /** Optional: lock provider for distributed locking */
329
360
  lock?: LockProvider;
330
361
  /** Optional: graph traversal provider for native multi-hop queries */
@@ -335,7 +366,9 @@ interface DeepMemoryConfig {
335
366
  declare class DeepMemory {
336
367
  private readonly storage;
337
368
  private readonly search?;
338
- private readonly embedding?;
369
+ private readonly embeddingFactory?;
370
+ private readonly defaultEmbeddingModel?;
371
+ private readonly defaultEmbeddingDimensions?;
339
372
  /** Reserved for future distributed locking support */
340
373
  readonly lock?: LockProvider;
341
374
  private readonly graphTraversalProvider?;
@@ -343,6 +376,11 @@ declare class DeepMemory {
343
376
  private readonly globalEventBus;
344
377
  private initialized;
345
378
  constructor(config: DeepMemoryConfig);
379
+ /**
380
+ * Build an embedding provider for a repository given its stored model + dimensions.
381
+ * Returns undefined when no factory is configured or when model/dimensions are missing.
382
+ */
383
+ private buildEmbeddingForRepository;
346
384
  /** Initialize the storage provider and optional providers (call once before use) */
347
385
  private ensureInitialized;
348
386
  /** Create or migrate the storage schema. Call once at deployment / startup, not per-request. */
@@ -352,6 +390,8 @@ declare class DeepMemory {
352
390
  createRepository(config: RepositoryConfig): Promise<MemoryRepository>;
353
391
  /** Open an existing repository */
354
392
  openRepository(repositoryId: string): Promise<MemoryRepository>;
393
+ /** Get the full stored record for a single repository (including legal, owner, metadata, governance) */
394
+ getRepository(repositoryId: string): Promise<StoredRepository>;
355
395
  /** List all repositories */
356
396
  listRepositories(filter?: RepositoryFilter): Promise<PaginatedResult<RepositorySummary>>;
357
397
  /** Update repository metadata and settings */
@@ -386,6 +426,15 @@ declare class DeepMemory {
386
426
  dispose(): Promise<void>;
387
427
  }
388
428
 
429
+ declare class RepositoryValidator {
430
+ private readonly repositoryId;
431
+ private readonly storage;
432
+ private readonly vocabularyEngine;
433
+ constructor(repositoryId: string, storage: StorageProvider, vocabularyEngine: VocabularyEngine);
434
+ validateEntities(options?: ValidateEntitiesOptions): Promise<EntityValidationPage>;
435
+ validateRelationships(options?: ValidateRelationshipsOptions): Promise<RelationshipValidationPage>;
436
+ }
437
+
389
438
  /**
390
439
  * Evaluate whether a set of properties matches all given filters.
391
440
  * All filters are AND'd — every filter must match for the result to be true.
@@ -452,7 +501,15 @@ declare class InMemoryStorageProvider implements StorageProvider {
452
501
  createRelationship(repositoryId: string, relationship: StoredRelationship): Promise<StoredRelationship>;
453
502
  getRelationship(repositoryId: string, relationshipId: string): Promise<StoredRelationship | null>;
454
503
  getEntityRelationships(repositoryId: string, entityId: string, options?: RelationshipQueryOptions): Promise<PaginatedResult<StoredRelationship>>;
504
+ deleteEntities(repositoryId: string, ids: string[]): Promise<{
505
+ deleted: string[];
506
+ notFound: string[];
507
+ }>;
455
508
  deleteRelationship(repositoryId: string, relationshipId: string): Promise<void>;
509
+ deleteRelationships(repositoryId: string, ids: string[]): Promise<{
510
+ deleted: string[];
511
+ notFound: string[];
512
+ }>;
456
513
  deleteRelationshipsByType(repositoryId: string, relationshipType: string): Promise<{
457
514
  deletedRelationships: number;
458
515
  }>;
@@ -479,4 +536,4 @@ declare class NoOpEmbeddingProvider implements EmbeddingProvider {
479
536
  modelId(): string;
480
537
  }
481
538
 
482
- export { BulkImportOptions, BulkImportResult, type CompiledQuery, ConceptSearchOptions, CreateEntityInput, CreateRelationshipInput, CypherCompiler, DeepMemory, type DeepMemoryConfig, DeepMemoryError, type DeepMemoryErrorCode, DeepMemoryEvent, DeepMemoryEventType, DeleteProgressCallback, DetailLevel, DuplicateEntityError, DuplicateRelationshipError, DuplicateRepositoryError, EmbeddingProvider, EmbeddingProviderRequiredError, EnsureSchemaResult, Entity, EntityBrief, EntityNotFoundError, EntitySummary, EntityTypeDefinition, EventHandler, EventPayload, ExploreOptions, ExportArchive, ExportChunk, ExportError, ExportOptions, ExportStreamItem, FindEntitiesQuery, GovernanceConfig, GovernanceDeniedError, GraphResult, GraphTraversalProvider, GraphTraversalProviderRequiredError, GremlinCompiler, HookResult, ImportChunk, ImportError, ImportOptions, ImportResult, ImportStreamHeader, InMemorySearchProvider, InMemoryStorageProvider, InvalidInputError, LockProvider, MemoryRepository, MemoryVocabulary, Neighborhood, NoOpEmbeddingProvider, OperationCancelledError, PaginatedResult, PaginationOptions, PathOptions, PathResult, PropertyFilter, Provenance, ProvenanceContext, ProviderError, ReembedResult, Relationship, RelationshipConstraintError, RelationshipNotFoundError, RelationshipQueryOptions, RelationshipSummary, RepositoryConfig, RepositoryFilter, RepositoryNotFoundError, RepositoryStats, RepositorySummary, RepositoryUpdate, ResolvedVocabulary, ScoredEntity, SearchHit, SearchOptions, SearchProvider, SearchableEntity, StorageExploreOptions, StorageFindQuery, StorageNeighborhood, StoragePathOptions, StoragePathResult, StorageProvider, StorageRepositoryConfig, StorageTimelineOptions, StorageTimelineResult, StoredEntity, StoredEntityUpdate, StoredRelationship, StoredRepository, StoredRepositorySummary, TimelineOptions, TimelineResult, type TraversalCompiler, TraversalResult, TraversalSpec, TraversalTimeoutError, TraversalValidationError, TraversalVocabularyError, Unsubscribe, UpdateEntityInput, VocabularyChangeRecord, VocabularyProposal, VocabularyProposalResult, VocabularyValidationError, generateId, isValidUuid, matchesPropertyFilters, projectEntity };
539
+ export { BulkImportOptions, BulkImportResult, type CompiledQuery, ConceptSearchOptions, CreateEntityInput, CreateRelationshipInput, CypherCompiler, DeepMemory, type DeepMemoryConfig, DeepMemoryError, type DeepMemoryErrorCode, DeepMemoryEvent, DeepMemoryEventType, DeleteEntitiesResult, DeleteProgressCallback, DetailLevel, DuplicateEntityError, DuplicateRelationshipError, DuplicateRepositoryError, EmbeddingProvider, EmbeddingProviderFactory, EmbeddingProviderRequiredError, EnsureSchemaResult, Entity, EntityBrief, EntityNotFoundError, EntitySummary, EntityTypeDefinition, EntityValidationPage, EventHandler, EventPayload, ExploreOptions, ExportArchive, ExportChunk, ExportError, ExportOptions, ExportStreamItem, FindEntitiesQuery, GovernanceConfig, GovernanceDeniedError, GraphResult, GraphTraversalProvider, GraphTraversalProviderRequiredError, GremlinCompiler, HookResult, ImportChunk, ImportError, ImportOptions, ImportResult, ImportStreamHeader, InMemorySearchProvider, InMemoryStorageProvider, InvalidInputError, LockProvider, MemoryRepository, MemoryVocabulary, Neighborhood, NoOpEmbeddingProvider, OperationCancelledError, PaginatedResult, PaginationOptions, PathOptions, PathResult, PropertyFilter, Provenance, ProvenanceContext, ProviderError, ReembedResult, Relationship, RelationshipConstraintError, RelationshipNotFoundError, RelationshipQueryOptions, RelationshipSummary, RelationshipValidationPage, RemoveRelationshipsResult, RepositoryConfig, RepositoryFilter, RepositoryNotFoundError, RepositoryStats, RepositorySummary, RepositoryUpdate, RepositoryValidator, ResolvedVocabulary, ScoredEntity, SearchHit, SearchOptions, SearchProvider, SearchableEntity, SelfReferentialRelationshipError, StorageExploreOptions, StorageFindQuery, StorageNeighborhood, StoragePathOptions, StoragePathResult, StorageProvider, StorageRepositoryConfig, StorageTimelineOptions, StorageTimelineResult, StoredEntity, StoredEntityUpdate, StoredRelationship, StoredRepository, StoredRepositorySummary, TimelineOptions, TimelineResult, type TraversalCompiler, TraversalResult, TraversalSpec, TraversalTimeoutError, TraversalValidationError, TraversalVocabularyError, Unsubscribe, UpdateEntityInput, ValidateEntitiesOptions, ValidateRelationshipsOptions, VocabularyChangeRecord, VocabularyProposal, VocabularyProposalResult, VocabularyValidationError, generateId, isValidUuid, matchesPropertyFilters, projectEntity };
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { G as GovernanceConfig, M as MemoryVocabulary, x as ResolvedVocabulary, C as CreateEntityInput, U as UpdateEntityInput, y as CreateRelationshipInput, z as EntityTypeDefinition, A as VocabularyProposal, F as VocabularyProposalResult, H as ProvenanceContext, J as Provenance, E as Entity, D as DetailLevel, a as EntitySummary, b as EntityBrief, K as FindEntitiesQuery, e as PaginatedResult, L as ReembedResult, N as Relationship, P as PropertyFilter, R as RelationshipSummary, O as GraphResult, Q as ExploreOptions, T as Neighborhood, W as PathOptions, X as PathResult, Y as ConceptSearchOptions, Z as ScoredEntity, _ as TimelineOptions, $ as TimelineResult, i as RepositoryStats, a0 as RepositoryConfig, d as RepositoryFilter, a1 as RepositorySummary, g as RepositoryUpdate, c as StoredRepository, a2 as ExportOptions, a3 as ExportArchive, a4 as ImportOptions, a5 as ImportResult, a6 as ExportStreamItem, a7 as ImportStreamHeader, I as ImportChunk, k as StoredEntity, S as StorageRepositoryConfig, f as StoredRepositorySummary, h as DeleteProgressCallback, j as PaginationOptions, V as VocabularyChangeRecord, l as StoredEntityUpdate, m as StorageFindQuery, n as StoredRelationship, o as RelationshipQueryOptions, p as StorageExploreOptions, q as StorageNeighborhood, r as StoragePathOptions, s as StoragePathResult, t as StorageTimelineOptions, u as StorageTimelineResult, v as ExportChunk, B as BulkImportOptions, w as BulkImportResult, a8 as SearchOptions, a9 as SearchHit } from './portability-B-8J4nQQ.js';
2
- export { aa as EnrichedRelationship, ab as EntityMap, ac as EntityTypeInput, ad as ExportLegalMetadata, ae as ExportManifest, af as ExportPipelineMetadata, ag as GetEntitiesOptions, ah as GetEntityOptions, ai as GovernanceMode, aj as ImportWarning, ak as NeighborhoodCenter, al as NeighborhoodGroup, am as NeighborhoodLayer, an as Path, ao as PropertySchema, ap as PropertyType, aq as ProvenanceFilter, ar as RelationshipDirection, as as RelationshipTypeDefinition, at as RelationshipTypeInput, au as RepositoryMetadata, av as StorageNeighborhoodGroup, aw as StorageNeighborhoodLayer, ax as StoragePath, ay as StorageTimelineEvent, az as TimelineEntityRef, aA as TimelineEvent, aB as TimelineRelationshipDetail, aC as VocabularyInput } from './portability-B-8J4nQQ.js';
1
+ import { G as GovernanceConfig, M as MemoryVocabulary, x as ResolvedVocabulary, C as CreateEntityInput, y as ValidationResult, U as UpdateEntityInput, z as CreateRelationshipInput, A as EntityTypeDefinition, F as VocabularyProposal, H as VocabularyProposalResult, J as ProvenanceContext, K as Provenance, E as Entity, D as DetailLevel, a as EntitySummary, b as EntityBrief, L as FindEntitiesQuery, e as PaginatedResult, N as DeleteEntitiesResult, O as ReembedResult, Q as Relationship, T as RemoveRelationshipsResult, P as PropertyFilter, R as RelationshipSummary, W as GraphResult, X as ExploreOptions, Y as Neighborhood, Z as PathOptions, _ as PathResult, $ as ConceptSearchOptions, a0 as ScoredEntity, a1 as TimelineOptions, a2 as TimelineResult, i as RepositoryStats, a3 as ValidateEntitiesOptions, a4 as EntityValidationPage, a5 as ValidateRelationshipsOptions, a6 as RelationshipValidationPage, a7 as RepositoryConfig, c as StoredRepository, d as RepositoryFilter, a8 as RepositorySummary, g as RepositoryUpdate, a9 as ExportOptions, aa as ExportArchive, ab as ImportOptions, ac as ImportResult, ad as ExportStreamItem, ae as ImportStreamHeader, I as ImportChunk, k as StoredEntity, S as StorageRepositoryConfig, f as StoredRepositorySummary, h as DeleteProgressCallback, j as PaginationOptions, V as VocabularyChangeRecord, l as StoredEntityUpdate, m as StorageFindQuery, n as StoredRelationship, o as RelationshipQueryOptions, p as StorageExploreOptions, q as StorageNeighborhood, r as StoragePathOptions, s as StoragePathResult, t as StorageTimelineOptions, u as StorageTimelineResult, v as ExportChunk, B as BulkImportOptions, w as BulkImportResult, af as SearchOptions, ag as SearchHit } from './portability-fa5sVgsP.js';
2
+ export { ah as EnrichedRelationship, ai as EntityMap, aj as EntityTypeInput, ak as EntityValidationIssue, al as ExportLegalMetadata, am as ExportManifest, an as ExportPipelineMetadata, ao as GetEntitiesOptions, ap as GetEntityOptions, aq as GovernanceMode, ar as ImportWarning, as as NeighborhoodCenter, at as NeighborhoodGroup, au as NeighborhoodLayer, av as Path, aw as PropertySchema, ax as PropertyType, ay as ProvenanceFilter, az as RelationshipDirection, aA as RelationshipTypeDefinition, aB as RelationshipTypeInput, aC as RelationshipValidationIssue, aD as RepositoryMetadata, aE as StorageNeighborhoodGroup, aF as StorageNeighborhoodLayer, aG as StoragePath, aH as StorageTimelineEvent, aI as TimelineEntityRef, aJ as TimelineEvent, aK as TimelineRelationshipDetail, aL as VocabularyInput } from './portability-fa5sVgsP.js';
3
3
  import { DeepMemoryEventType, EventHandler, Unsubscribe, DeepMemoryEvent, HookResult, EventPayload } from './types/index.js';
4
- import { T as TraversalSpec, a as TraversalResult } from './traversal-BdmDLMxV.js';
5
- export { Q as QueryMetadata, b as TraversalAggregation, c as TraversalPath, d as TraversalProjection, e as TraversalRelationship, f as TraversalReturnMode, g as TraversalStart, h as TraversalStep } from './traversal-BdmDLMxV.js';
6
- import { S as StorageProvider, E as EnsureSchemaResult } from './StorageProvider-ynfpc5wz.js';
7
- import { EmbeddingProvider, SearchProvider, GraphTraversalProvider, LockProvider, SearchableEntity } from './providers/index.js';
4
+ import { T as TraversalSpec, a as TraversalResult } from './traversal-DpSdLzxn.js';
5
+ export { Q as QueryMetadata, b as TraversalAggregation, c as TraversalPath, d as TraversalProjection, e as TraversalRelationship, f as TraversalReturnMode, g as TraversalStart, h as TraversalStep } from './traversal-DpSdLzxn.js';
6
+ import { S as StorageProvider, E as EnsureSchemaResult } from './StorageProvider-CrIcN06Q.js';
7
+ import { EmbeddingProvider, SearchProvider, EmbeddingProviderFactory, GraphTraversalProvider, LockProvider, SearchableEntity } from './providers/index.js';
8
8
  export { GraphTraversalCapabilities, LockHandle, LockOptions } from './providers/index.js';
9
9
 
10
10
  /** Error codes for all Deep Memory errors */
11
- type DeepMemoryErrorCode = 'INVALID_INPUT' | 'ENTITY_NOT_FOUND' | 'ENTITY_ALREADY_EXISTS' | 'RELATIONSHIP_NOT_FOUND' | 'RELATIONSHIP_ALREADY_EXISTS' | 'REPOSITORY_NOT_FOUND' | 'REPOSITORY_ALREADY_EXISTS' | 'VOCABULARY_VALIDATION_FAILED' | 'RELATIONSHIP_CONSTRAINT_FAILED' | 'GOVERNANCE_DENIED' | 'OPERATION_CANCELLED' | 'EMBEDDING_PROVIDER_REQUIRED' | 'IMPORT_ERROR' | 'EXPORT_ERROR' | 'PROVIDER_ERROR' | 'GRAPH_TRAVERSAL_PROVIDER_REQUIRED' | 'TRAVERSAL_VALIDATION_FAILED' | 'TRAVERSAL_VOCABULARY_ERROR' | 'TRAVERSAL_TIMEOUT';
11
+ type DeepMemoryErrorCode = 'INVALID_INPUT' | 'ENTITY_NOT_FOUND' | 'ENTITY_ALREADY_EXISTS' | 'RELATIONSHIP_NOT_FOUND' | 'RELATIONSHIP_ALREADY_EXISTS' | 'REPOSITORY_NOT_FOUND' | 'REPOSITORY_ALREADY_EXISTS' | 'VOCABULARY_VALIDATION_FAILED' | 'RELATIONSHIP_CONSTRAINT_FAILED' | 'SELF_REFERENTIAL_RELATIONSHIP' | 'GOVERNANCE_DENIED' | 'OPERATION_CANCELLED' | 'EMBEDDING_PROVIDER_REQUIRED' | 'IMPORT_ERROR' | 'EXPORT_ERROR' | 'PROVIDER_ERROR' | 'GRAPH_TRAVERSAL_PROVIDER_REQUIRED' | 'TRAVERSAL_VALIDATION_FAILED' | 'TRAVERSAL_VOCABULARY_ERROR' | 'TRAVERSAL_TIMEOUT';
12
12
  /** Base error class for all Deep Memory errors */
13
13
  declare class DeepMemoryError extends Error {
14
14
  readonly code: DeepMemoryErrorCode;
@@ -71,6 +71,12 @@ declare class RelationshipConstraintError extends DeepMemoryError {
71
71
  readonly targetType?: string;
72
72
  constructor(relationshipType: string, message: string, sourceType?: string, targetType?: string);
73
73
  }
74
+ /** Relationship source and target entity are the same — self-references are not permitted */
75
+ declare class SelfReferentialRelationshipError extends DeepMemoryError {
76
+ readonly entityId: string;
77
+ readonly relationshipType: string;
78
+ constructor(entityId: string, relationshipType: string);
79
+ }
74
80
  /** Governance rules denied the operation */
75
81
  declare class GovernanceDeniedError extends DeepMemoryError {
76
82
  readonly governanceMode: string;
@@ -118,18 +124,6 @@ declare class TraversalTimeoutError extends DeepMemoryError {
118
124
  constructor(timeoutMs: number);
119
125
  }
120
126
 
121
- /** A single validation error with optional suggestion */
122
- interface ValidationError {
123
- field: string;
124
- message: string;
125
- suggestion?: string;
126
- }
127
- /** Result of a validation check */
128
- interface ValidationResult {
129
- valid: boolean;
130
- errors: ValidationError[];
131
- }
132
-
133
127
  interface VocabularyEngineConfig {
134
128
  repositoryId: string;
135
129
  storageProvider: StorageProvider;
@@ -230,7 +224,13 @@ interface MemoryRepositoryConfig {
230
224
  repositoryId: string;
231
225
  storage: StorageProvider;
232
226
  search?: SearchProvider;
227
+ /** Embedding provider configured for this repository's model + dimensions */
233
228
  embedding?: EmbeddingProvider;
229
+ /**
230
+ * Factory for producing embedding providers with different model/dimensions.
231
+ * Required only if reembedAll will be called with a new model or dimensions.
232
+ */
233
+ embeddingFactory?: EmbeddingProviderFactory;
234
234
  graphTraversal?: GraphTraversalProvider;
235
235
  vocabularyEngine: VocabularyEngine;
236
236
  provenanceTracker: ProvenanceTracker;
@@ -247,6 +247,8 @@ declare class MemoryRepository {
247
247
  private readonly relationshipManager;
248
248
  private readonly graphTraversal;
249
249
  private readonly searchOrchestrator;
250
+ private readonly embeddingFactory?;
251
+ private embedding?;
250
252
  constructor(config: MemoryRepositoryConfig);
251
253
  getVocabulary(): Promise<ResolvedVocabulary>;
252
254
  proposeVocabularyChange(proposal: VocabularyProposal): Promise<VocabularyProposalResult>;
@@ -258,15 +260,22 @@ declare class MemoryRepository {
258
260
  getBySlug(slug: string, detailLevel?: DetailLevel): Promise<Entity | EntitySummary | EntityBrief | null>;
259
261
  getEntities(entityIds: string[], detailLevel?: 'brief' | 'summary'): Promise<Map<string, EntitySummary | EntityBrief>>;
260
262
  findEntities(query: FindEntitiesQuery): Promise<PaginatedResult<Entity | EntitySummary | EntityBrief>>;
261
- deleteEntity(entityId: string): Promise<void>;
263
+ deleteEntities(ids: string[]): Promise<DeleteEntitiesResult>;
262
264
  /** Re-embed specific entities using the current EmbeddingProvider */
263
265
  reembedEntities(entityIds: string[]): Promise<ReembedResult>;
264
266
  /**
265
- * Re-embed all entities in the repository using the current EmbeddingProvider.
267
+ * Re-embed all entities in the repository. If `model` or `dimensions` is provided,
268
+ * the repository's embedding configuration is updated to the new values before
269
+ * re-embedding, so all subsequent entity writes use the new model/dimensionality.
270
+ *
266
271
  * Processes in batches with optional rate limiting. Emits reembed:* events for progress tracking.
267
272
  * Updates repository metadata with the new model ID and dimensions on completion.
268
273
  */
269
274
  reembedAll(options?: {
275
+ /** New embedding model to switch to. Requires an embeddingFactory on DeepMemory. */
276
+ model?: string;
277
+ /** New embedding dimensionality to switch to. Requires an embeddingFactory on DeepMemory. */
278
+ dimensions?: number;
270
279
  batchSize?: number;
271
280
  /** Max retries per batch on embedding failure (default 3) */
272
281
  maxRetries?: number;
@@ -276,7 +285,7 @@ declare class MemoryRepository {
276
285
  delayBetweenBatchesMs?: number;
277
286
  }): Promise<ReembedResult>;
278
287
  createRelationships(inputs: CreateRelationshipInput[]): Promise<Relationship[]>;
279
- removeRelationship(relationshipId: string): Promise<void>;
288
+ removeRelationships(ids: string[]): Promise<RemoveRelationshipsResult>;
280
289
  getRelationships(entityId: string, options?: {
281
290
  relationshipTypes?: string[];
282
291
  direction?: 'outbound' | 'inbound' | 'both';
@@ -299,6 +308,19 @@ declare class MemoryRepository {
299
308
  searchByConcept(query: string, options?: ConceptSearchOptions): Promise<PaginatedResult<ScoredEntity>>;
300
309
  getTimeline(entityId: string, options?: TimelineOptions): Promise<TimelineResult>;
301
310
  getStats(): Promise<RepositoryStats>;
311
+ /**
312
+ * Audit a window of entities against the current vocabulary. Returns a single
313
+ * page; callers loop until `done` is true. Paging is over scanned entities,
314
+ * not issues. Does not mutate anything.
315
+ */
316
+ validateEntities(options?: ValidateEntitiesOptions): Promise<EntityValidationPage>;
317
+ /**
318
+ * Audit a window of relationships against the current vocabulary. Returns a
319
+ * single page; callers loop until `done` is true. The full entity set is
320
+ * loaded once per call to resolve orphan and type-mismatch checks, then
321
+ * offset/take is applied to the relationship stream. Does not mutate anything.
322
+ */
323
+ validateRelationships(options?: ValidateRelationshipsOptions): Promise<RelationshipValidationPage>;
302
324
  /** Delete all entities and relationships in this repository, preserving the repository and vocabulary */
303
325
  deleteAllContents(): Promise<{
304
326
  deletedEntities: number;
@@ -323,8 +345,17 @@ interface DeepMemoryConfig {
323
345
  storage: StorageProvider;
324
346
  /** Optional: search provider for full-text search */
325
347
  search?: SearchProvider;
326
- /** Optional: embedding provider for semantic search */
327
- embedding?: EmbeddingProvider;
348
+ /**
349
+ * Optional: factory that produces an EmbeddingProvider configured for a specific
350
+ * model + dimensionality. Called once per repository open/create using the repo's
351
+ * stored embedding metadata, so different repositories can use different models
352
+ * and embedding dimensions without any per-mutation lookups.
353
+ */
354
+ embeddingFactory?: EmbeddingProviderFactory;
355
+ /** Default embedding model for new repositories that don't specify one in metadata */
356
+ defaultEmbeddingModel?: string;
357
+ /** Default embedding dimensions for new repositories that don't specify one in metadata */
358
+ defaultEmbeddingDimensions?: number;
328
359
  /** Optional: lock provider for distributed locking */
329
360
  lock?: LockProvider;
330
361
  /** Optional: graph traversal provider for native multi-hop queries */
@@ -335,7 +366,9 @@ interface DeepMemoryConfig {
335
366
  declare class DeepMemory {
336
367
  private readonly storage;
337
368
  private readonly search?;
338
- private readonly embedding?;
369
+ private readonly embeddingFactory?;
370
+ private readonly defaultEmbeddingModel?;
371
+ private readonly defaultEmbeddingDimensions?;
339
372
  /** Reserved for future distributed locking support */
340
373
  readonly lock?: LockProvider;
341
374
  private readonly graphTraversalProvider?;
@@ -343,6 +376,11 @@ declare class DeepMemory {
343
376
  private readonly globalEventBus;
344
377
  private initialized;
345
378
  constructor(config: DeepMemoryConfig);
379
+ /**
380
+ * Build an embedding provider for a repository given its stored model + dimensions.
381
+ * Returns undefined when no factory is configured or when model/dimensions are missing.
382
+ */
383
+ private buildEmbeddingForRepository;
346
384
  /** Initialize the storage provider and optional providers (call once before use) */
347
385
  private ensureInitialized;
348
386
  /** Create or migrate the storage schema. Call once at deployment / startup, not per-request. */
@@ -352,6 +390,8 @@ declare class DeepMemory {
352
390
  createRepository(config: RepositoryConfig): Promise<MemoryRepository>;
353
391
  /** Open an existing repository */
354
392
  openRepository(repositoryId: string): Promise<MemoryRepository>;
393
+ /** Get the full stored record for a single repository (including legal, owner, metadata, governance) */
394
+ getRepository(repositoryId: string): Promise<StoredRepository>;
355
395
  /** List all repositories */
356
396
  listRepositories(filter?: RepositoryFilter): Promise<PaginatedResult<RepositorySummary>>;
357
397
  /** Update repository metadata and settings */
@@ -386,6 +426,15 @@ declare class DeepMemory {
386
426
  dispose(): Promise<void>;
387
427
  }
388
428
 
429
+ declare class RepositoryValidator {
430
+ private readonly repositoryId;
431
+ private readonly storage;
432
+ private readonly vocabularyEngine;
433
+ constructor(repositoryId: string, storage: StorageProvider, vocabularyEngine: VocabularyEngine);
434
+ validateEntities(options?: ValidateEntitiesOptions): Promise<EntityValidationPage>;
435
+ validateRelationships(options?: ValidateRelationshipsOptions): Promise<RelationshipValidationPage>;
436
+ }
437
+
389
438
  /**
390
439
  * Evaluate whether a set of properties matches all given filters.
391
440
  * All filters are AND'd — every filter must match for the result to be true.
@@ -452,7 +501,15 @@ declare class InMemoryStorageProvider implements StorageProvider {
452
501
  createRelationship(repositoryId: string, relationship: StoredRelationship): Promise<StoredRelationship>;
453
502
  getRelationship(repositoryId: string, relationshipId: string): Promise<StoredRelationship | null>;
454
503
  getEntityRelationships(repositoryId: string, entityId: string, options?: RelationshipQueryOptions): Promise<PaginatedResult<StoredRelationship>>;
504
+ deleteEntities(repositoryId: string, ids: string[]): Promise<{
505
+ deleted: string[];
506
+ notFound: string[];
507
+ }>;
455
508
  deleteRelationship(repositoryId: string, relationshipId: string): Promise<void>;
509
+ deleteRelationships(repositoryId: string, ids: string[]): Promise<{
510
+ deleted: string[];
511
+ notFound: string[];
512
+ }>;
456
513
  deleteRelationshipsByType(repositoryId: string, relationshipType: string): Promise<{
457
514
  deletedRelationships: number;
458
515
  }>;
@@ -479,4 +536,4 @@ declare class NoOpEmbeddingProvider implements EmbeddingProvider {
479
536
  modelId(): string;
480
537
  }
481
538
 
482
- export { BulkImportOptions, BulkImportResult, type CompiledQuery, ConceptSearchOptions, CreateEntityInput, CreateRelationshipInput, CypherCompiler, DeepMemory, type DeepMemoryConfig, DeepMemoryError, type DeepMemoryErrorCode, DeepMemoryEvent, DeepMemoryEventType, DeleteProgressCallback, DetailLevel, DuplicateEntityError, DuplicateRelationshipError, DuplicateRepositoryError, EmbeddingProvider, EmbeddingProviderRequiredError, EnsureSchemaResult, Entity, EntityBrief, EntityNotFoundError, EntitySummary, EntityTypeDefinition, EventHandler, EventPayload, ExploreOptions, ExportArchive, ExportChunk, ExportError, ExportOptions, ExportStreamItem, FindEntitiesQuery, GovernanceConfig, GovernanceDeniedError, GraphResult, GraphTraversalProvider, GraphTraversalProviderRequiredError, GremlinCompiler, HookResult, ImportChunk, ImportError, ImportOptions, ImportResult, ImportStreamHeader, InMemorySearchProvider, InMemoryStorageProvider, InvalidInputError, LockProvider, MemoryRepository, MemoryVocabulary, Neighborhood, NoOpEmbeddingProvider, OperationCancelledError, PaginatedResult, PaginationOptions, PathOptions, PathResult, PropertyFilter, Provenance, ProvenanceContext, ProviderError, ReembedResult, Relationship, RelationshipConstraintError, RelationshipNotFoundError, RelationshipQueryOptions, RelationshipSummary, RepositoryConfig, RepositoryFilter, RepositoryNotFoundError, RepositoryStats, RepositorySummary, RepositoryUpdate, ResolvedVocabulary, ScoredEntity, SearchHit, SearchOptions, SearchProvider, SearchableEntity, StorageExploreOptions, StorageFindQuery, StorageNeighborhood, StoragePathOptions, StoragePathResult, StorageProvider, StorageRepositoryConfig, StorageTimelineOptions, StorageTimelineResult, StoredEntity, StoredEntityUpdate, StoredRelationship, StoredRepository, StoredRepositorySummary, TimelineOptions, TimelineResult, type TraversalCompiler, TraversalResult, TraversalSpec, TraversalTimeoutError, TraversalValidationError, TraversalVocabularyError, Unsubscribe, UpdateEntityInput, VocabularyChangeRecord, VocabularyProposal, VocabularyProposalResult, VocabularyValidationError, generateId, isValidUuid, matchesPropertyFilters, projectEntity };
539
+ export { BulkImportOptions, BulkImportResult, type CompiledQuery, ConceptSearchOptions, CreateEntityInput, CreateRelationshipInput, CypherCompiler, DeepMemory, type DeepMemoryConfig, DeepMemoryError, type DeepMemoryErrorCode, DeepMemoryEvent, DeepMemoryEventType, DeleteEntitiesResult, DeleteProgressCallback, DetailLevel, DuplicateEntityError, DuplicateRelationshipError, DuplicateRepositoryError, EmbeddingProvider, EmbeddingProviderFactory, EmbeddingProviderRequiredError, EnsureSchemaResult, Entity, EntityBrief, EntityNotFoundError, EntitySummary, EntityTypeDefinition, EntityValidationPage, EventHandler, EventPayload, ExploreOptions, ExportArchive, ExportChunk, ExportError, ExportOptions, ExportStreamItem, FindEntitiesQuery, GovernanceConfig, GovernanceDeniedError, GraphResult, GraphTraversalProvider, GraphTraversalProviderRequiredError, GremlinCompiler, HookResult, ImportChunk, ImportError, ImportOptions, ImportResult, ImportStreamHeader, InMemorySearchProvider, InMemoryStorageProvider, InvalidInputError, LockProvider, MemoryRepository, MemoryVocabulary, Neighborhood, NoOpEmbeddingProvider, OperationCancelledError, PaginatedResult, PaginationOptions, PathOptions, PathResult, PropertyFilter, Provenance, ProvenanceContext, ProviderError, ReembedResult, Relationship, RelationshipConstraintError, RelationshipNotFoundError, RelationshipQueryOptions, RelationshipSummary, RelationshipValidationPage, RemoveRelationshipsResult, RepositoryConfig, RepositoryFilter, RepositoryNotFoundError, RepositoryStats, RepositorySummary, RepositoryUpdate, RepositoryValidator, ResolvedVocabulary, ScoredEntity, SearchHit, SearchOptions, SearchProvider, SearchableEntity, SelfReferentialRelationshipError, StorageExploreOptions, StorageFindQuery, StorageNeighborhood, StoragePathOptions, StoragePathResult, StorageProvider, StorageRepositoryConfig, StorageTimelineOptions, StorageTimelineResult, StoredEntity, StoredEntityUpdate, StoredRelationship, StoredRepository, StoredRepositorySummary, TimelineOptions, TimelineResult, type TraversalCompiler, TraversalResult, TraversalSpec, TraversalTimeoutError, TraversalValidationError, TraversalVocabularyError, Unsubscribe, UpdateEntityInput, ValidateEntitiesOptions, ValidateRelationshipsOptions, VocabularyChangeRecord, VocabularyProposal, VocabularyProposalResult, VocabularyValidationError, generateId, isValidUuid, matchesPropertyFilters, projectEntity };