@soulcraft/brainy 2.10.1 → 2.12.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.
Files changed (42) hide show
  1. package/README.md +10 -10
  2. package/dist/augmentations/apiServerAugmentation.js +2 -2
  3. package/dist/augmentations/display/fieldPatterns.d.ts +1 -1
  4. package/dist/augmentations/display/fieldPatterns.js +1 -1
  5. package/dist/augmentations/display/intelligentComputation.d.ts +2 -2
  6. package/dist/augmentations/display/intelligentComputation.js +4 -4
  7. package/dist/augmentations/display/types.d.ts +1 -1
  8. package/dist/augmentations/neuralImport.js +4 -4
  9. package/dist/augmentations/synapseAugmentation.js +3 -3
  10. package/dist/augmentations/typeMatching/brainyTypes.d.ts +83 -0
  11. package/dist/augmentations/typeMatching/brainyTypes.js +425 -0
  12. package/dist/augmentations/universalDisplayAugmentation.d.ts +1 -1
  13. package/dist/augmentations/universalDisplayAugmentation.js +1 -1
  14. package/dist/brainyData.d.ts +20 -41
  15. package/dist/brainyData.js +1467 -1430
  16. package/dist/chat/BrainyChat.js +11 -11
  17. package/dist/examples/basicUsage.js +4 -1
  18. package/dist/importManager.js +2 -2
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.js +5 -1
  21. package/dist/neural/embeddedPatterns.d.ts +1 -1
  22. package/dist/neural/embeddedPatterns.js +2 -2
  23. package/dist/neural/improvedNeuralAPI.d.ts +346 -0
  24. package/dist/neural/improvedNeuralAPI.js +2439 -0
  25. package/dist/neural/types.d.ts +267 -0
  26. package/dist/neural/types.js +24 -0
  27. package/dist/storage/adapters/fileSystemStorage.d.ts +2 -2
  28. package/dist/storage/adapters/fileSystemStorage.js +2 -2
  29. package/dist/storage/adapters/memoryStorage.d.ts +4 -4
  30. package/dist/storage/adapters/memoryStorage.js +4 -4
  31. package/dist/storage/adapters/opfsStorage.d.ts +2 -2
  32. package/dist/storage/adapters/opfsStorage.js +2 -2
  33. package/dist/storage/adapters/s3CompatibleStorage.d.ts +2 -2
  34. package/dist/storage/adapters/s3CompatibleStorage.js +2 -2
  35. package/dist/storage/baseStorage.d.ts +12 -2
  36. package/dist/storage/baseStorage.js +32 -0
  37. package/dist/types/brainyDataInterface.d.ts +2 -5
  38. package/dist/utils/brainyTypes.d.ts +217 -0
  39. package/dist/utils/brainyTypes.js +261 -0
  40. package/dist/utils/typeValidation.d.ts +25 -0
  41. package/dist/utils/typeValidation.js +127 -0
  42. package/package.json +1 -1
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Neural API Type Definitions
3
+ * Comprehensive interfaces for clustering, similarity, and analysis
4
+ */
5
+ export interface Vector {
6
+ [index: number]: number;
7
+ length: number;
8
+ }
9
+ export interface SemanticCluster {
10
+ id: string;
11
+ centroid: Vector;
12
+ members: string[];
13
+ size: number;
14
+ confidence: number;
15
+ label?: string;
16
+ metadata?: Record<string, any>;
17
+ cohesion?: number;
18
+ level?: number;
19
+ }
20
+ export interface DomainCluster extends SemanticCluster {
21
+ domain: string;
22
+ domainConfidence: number;
23
+ crossDomainMembers?: string[];
24
+ }
25
+ export interface TemporalCluster extends SemanticCluster {
26
+ timeWindow: TimeWindow;
27
+ trend?: 'increasing' | 'decreasing' | 'stable';
28
+ temporal: {
29
+ startTime: Date;
30
+ endTime: Date;
31
+ peakTime?: Date;
32
+ frequency?: number;
33
+ };
34
+ }
35
+ export interface ExplainableCluster extends SemanticCluster {
36
+ explanation: {
37
+ primaryFeatures: string[];
38
+ commonTerms: string[];
39
+ reasoning: string;
40
+ confidence: number;
41
+ };
42
+ subClusters?: ExplainableCluster[];
43
+ }
44
+ export interface ConfidentCluster extends SemanticCluster {
45
+ minConfidence: number;
46
+ uncertainMembers: string[];
47
+ certainMembers: string[];
48
+ }
49
+ export interface BaseClusteringOptions {
50
+ maxClusters?: number;
51
+ minClusterSize?: number;
52
+ threshold?: number;
53
+ cacheResults?: boolean;
54
+ }
55
+ export interface ClusteringOptions extends BaseClusteringOptions {
56
+ algorithm?: 'auto' | 'hierarchical' | 'kmeans' | 'dbscan' | 'sample' | 'semantic' | 'graph' | 'multimodal';
57
+ sampleSize?: number;
58
+ strategy?: 'random' | 'diverse' | 'recent' | 'important';
59
+ memoryLimit?: string;
60
+ includeOutliers?: boolean;
61
+ maxIterations?: number;
62
+ tolerance?: number;
63
+ }
64
+ export interface DomainClusteringOptions extends BaseClusteringOptions {
65
+ domainField?: string;
66
+ crossDomainThreshold?: number;
67
+ preserveDomainBoundaries?: boolean;
68
+ }
69
+ export interface TemporalClusteringOptions extends BaseClusteringOptions {
70
+ timeField: string;
71
+ windows: TimeWindow[];
72
+ overlapStrategy?: 'merge' | 'separate' | 'hierarchical';
73
+ trendAnalysis?: boolean;
74
+ }
75
+ export interface StreamClusteringOptions extends BaseClusteringOptions {
76
+ batchSize?: number;
77
+ updateInterval?: number;
78
+ adaptiveThreshold?: boolean;
79
+ decayFactor?: number;
80
+ }
81
+ export interface SimilarityOptions {
82
+ detailed?: boolean;
83
+ metric?: 'cosine' | 'euclidean' | 'manhattan' | 'jaccard';
84
+ normalized?: boolean;
85
+ }
86
+ export interface SimilarityResult {
87
+ score: number;
88
+ confidence: number;
89
+ explanation?: string;
90
+ metric?: string;
91
+ }
92
+ export interface NeighborOptions {
93
+ limit?: number;
94
+ radius?: number;
95
+ minSimilarity?: number;
96
+ includeMetadata?: boolean;
97
+ sortBy?: 'similarity' | 'importance' | 'recency';
98
+ }
99
+ export interface Neighbor {
100
+ id: string;
101
+ similarity: number;
102
+ data?: any;
103
+ metadata?: Record<string, any>;
104
+ distance?: number;
105
+ }
106
+ export interface NeighborsResult {
107
+ neighbors: Neighbor[];
108
+ queryId: string;
109
+ totalFound: number;
110
+ averageSimilarity: number;
111
+ }
112
+ export interface SemanticHierarchy {
113
+ self: {
114
+ id: string;
115
+ vector?: Vector;
116
+ metadata?: any;
117
+ };
118
+ parent?: {
119
+ id: string;
120
+ similarity: number;
121
+ };
122
+ children?: Array<{
123
+ id: string;
124
+ similarity: number;
125
+ }>;
126
+ siblings?: Array<{
127
+ id: string;
128
+ similarity: number;
129
+ }>;
130
+ level?: number;
131
+ depth?: number;
132
+ }
133
+ export interface HierarchyOptions {
134
+ maxDepth?: number;
135
+ minSimilarity?: number;
136
+ includeMetadata?: boolean;
137
+ buildStrategy?: 'similarity' | 'metadata' | 'mixed';
138
+ }
139
+ export interface VisualizationOptions {
140
+ maxNodes?: number;
141
+ dimensions?: 2 | 3;
142
+ algorithm?: 'force' | 'spring' | 'circular' | 'hierarchical';
143
+ includeEdges?: boolean;
144
+ clusterColors?: boolean;
145
+ nodeSize?: 'uniform' | 'importance' | 'connections';
146
+ }
147
+ export interface VisualizationNode {
148
+ id: string;
149
+ x: number;
150
+ y: number;
151
+ z?: number;
152
+ cluster?: string;
153
+ size?: number;
154
+ color?: string;
155
+ metadata?: Record<string, any>;
156
+ }
157
+ export interface VisualizationEdge {
158
+ source: string;
159
+ target: string;
160
+ weight: number;
161
+ color?: string;
162
+ type?: string;
163
+ }
164
+ export interface VisualizationResult {
165
+ nodes: VisualizationNode[];
166
+ edges: VisualizationEdge[];
167
+ clusters?: Array<{
168
+ id: string;
169
+ color: string;
170
+ size: number;
171
+ label?: string;
172
+ }>;
173
+ metadata: {
174
+ algorithm: string;
175
+ dimensions: number;
176
+ totalNodes: number;
177
+ totalEdges: number;
178
+ generatedAt: Date;
179
+ };
180
+ }
181
+ export interface TimeWindow {
182
+ start: Date;
183
+ end: Date;
184
+ label?: string;
185
+ weight?: number;
186
+ }
187
+ export interface ClusterFeedback {
188
+ clusterId: string;
189
+ action: 'merge' | 'split' | 'relabel' | 'adjust';
190
+ parameters?: Record<string, any>;
191
+ confidence?: number;
192
+ }
193
+ export interface OutlierOptions {
194
+ threshold?: number;
195
+ method?: 'isolation' | 'statistical' | 'cluster-based';
196
+ minNeighbors?: number;
197
+ includeReasons?: boolean;
198
+ }
199
+ export interface Outlier {
200
+ id: string;
201
+ score: number;
202
+ reasons?: string[];
203
+ nearestNeighbors?: Neighbor[];
204
+ metadata?: Record<string, any>;
205
+ }
206
+ export interface PerformanceMetrics {
207
+ executionTime: number;
208
+ memoryUsed: number;
209
+ itemsProcessed: number;
210
+ cacheHits: number;
211
+ cacheMisses: number;
212
+ algorithm: string;
213
+ }
214
+ export interface ClusteringResult<T = SemanticCluster> {
215
+ clusters: T[];
216
+ metrics: PerformanceMetrics;
217
+ metadata: {
218
+ totalItems: number;
219
+ clustersFound: number;
220
+ averageClusterSize: number;
221
+ silhouetteScore?: number;
222
+ timestamp: Date;
223
+ semanticTypes?: number;
224
+ hnswLevel?: number;
225
+ kValue?: number;
226
+ hasConverged?: boolean;
227
+ outlierCount?: number;
228
+ eps?: number;
229
+ minPts?: number;
230
+ averageModularity?: number;
231
+ fusionMethod?: string;
232
+ componentAlgorithms?: string[];
233
+ sampleSize?: number;
234
+ samplingStrategy?: string;
235
+ };
236
+ }
237
+ export interface StreamingBatch<T = SemanticCluster> {
238
+ clusters: T[];
239
+ batchNumber: number;
240
+ isComplete: boolean;
241
+ progress: {
242
+ processed: number;
243
+ total: number;
244
+ percentage: number;
245
+ };
246
+ metrics: PerformanceMetrics;
247
+ }
248
+ export declare class NeuralAPIError extends Error {
249
+ code: string;
250
+ context?: Record<string, any> | undefined;
251
+ constructor(message: string, code: string, context?: Record<string, any> | undefined);
252
+ }
253
+ export declare class ClusteringError extends NeuralAPIError {
254
+ constructor(message: string, context?: Record<string, any>);
255
+ }
256
+ export declare class SimilarityError extends NeuralAPIError {
257
+ constructor(message: string, context?: Record<string, any>);
258
+ }
259
+ export interface NeuralAPIConfig {
260
+ cacheSize?: number;
261
+ defaultAlgorithm?: string;
262
+ similarityMetric?: 'cosine' | 'euclidean' | 'manhattan';
263
+ performanceTracking?: boolean;
264
+ maxMemoryUsage?: string;
265
+ parallelProcessing?: boolean;
266
+ streamingBatchSize?: number;
267
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Neural API Type Definitions
3
+ * Comprehensive interfaces for clustering, similarity, and analysis
4
+ */
5
+ // ===== ERROR TYPES =====
6
+ export class NeuralAPIError extends Error {
7
+ constructor(message, code, context) {
8
+ super(message);
9
+ this.code = code;
10
+ this.context = context;
11
+ this.name = 'NeuralAPIError';
12
+ }
13
+ }
14
+ export class ClusteringError extends NeuralAPIError {
15
+ constructor(message, context) {
16
+ super(message, 'CLUSTERING_ERROR', context);
17
+ }
18
+ }
19
+ export class SimilarityError extends NeuralAPIError {
20
+ constructor(message, context) {
21
+ super(message, 'SIMILARITY_ERROR', context);
22
+ }
23
+ }
24
+ //# sourceMappingURL=types.js.map
@@ -105,7 +105,7 @@ export declare class FileSystemStorage extends BaseStorage {
105
105
  /**
106
106
  * Save noun metadata to storage
107
107
  */
108
- saveNounMetadata(id: string, metadata: any): Promise<void>;
108
+ protected saveNounMetadata_internal(id: string, metadata: any): Promise<void>;
109
109
  /**
110
110
  * Get noun metadata from storage
111
111
  */
@@ -113,7 +113,7 @@ export declare class FileSystemStorage extends BaseStorage {
113
113
  /**
114
114
  * Save verb metadata to storage
115
115
  */
116
- saveVerbMetadata(id: string, metadata: any): Promise<void>;
116
+ protected saveVerbMetadata_internal(id: string, metadata: any): Promise<void>;
117
117
  /**
118
118
  * Get verb metadata from storage
119
119
  */
@@ -433,7 +433,7 @@ export class FileSystemStorage extends BaseStorage {
433
433
  /**
434
434
  * Save noun metadata to storage
435
435
  */
436
- async saveNounMetadata(id, metadata) {
436
+ async saveNounMetadata_internal(id, metadata) {
437
437
  await this.ensureInitialized();
438
438
  const filePath = path.join(this.nounMetadataDir, `${id}.json`);
439
439
  await fs.promises.writeFile(filePath, JSON.stringify(metadata, null, 2));
@@ -458,7 +458,7 @@ export class FileSystemStorage extends BaseStorage {
458
458
  /**
459
459
  * Save verb metadata to storage
460
460
  */
461
- async saveVerbMetadata(id, metadata) {
461
+ async saveVerbMetadata_internal(id, metadata) {
462
462
  await this.ensureInitialized();
463
463
  const filePath = path.join(this.verbMetadataDir, `${id}.json`);
464
464
  await fs.promises.writeFile(filePath, JSON.stringify(metadata, null, 2));
@@ -131,17 +131,17 @@ export declare class MemoryStorage extends BaseStorage {
131
131
  */
132
132
  getMetadataBatch(ids: string[]): Promise<Map<string, any>>;
133
133
  /**
134
- * Save noun metadata to storage
134
+ * Save noun metadata to storage (internal implementation)
135
135
  */
136
- saveNounMetadata(id: string, metadata: any): Promise<void>;
136
+ protected saveNounMetadata_internal(id: string, metadata: any): Promise<void>;
137
137
  /**
138
138
  * Get noun metadata from storage
139
139
  */
140
140
  getNounMetadata(id: string): Promise<any | null>;
141
141
  /**
142
- * Save verb metadata to storage
142
+ * Save verb metadata to storage (internal implementation)
143
143
  */
144
- saveVerbMetadata(id: string, metadata: any): Promise<void>;
144
+ protected saveVerbMetadata_internal(id: string, metadata: any): Promise<void>;
145
145
  /**
146
146
  * Get verb metadata from storage
147
147
  */
@@ -424,9 +424,9 @@ export class MemoryStorage extends BaseStorage {
424
424
  return results;
425
425
  }
426
426
  /**
427
- * Save noun metadata to storage
427
+ * Save noun metadata to storage (internal implementation)
428
428
  */
429
- async saveNounMetadata(id, metadata) {
429
+ async saveNounMetadata_internal(id, metadata) {
430
430
  this.nounMetadata.set(id, JSON.parse(JSON.stringify(metadata)));
431
431
  }
432
432
  /**
@@ -440,9 +440,9 @@ export class MemoryStorage extends BaseStorage {
440
440
  return JSON.parse(JSON.stringify(metadata));
441
441
  }
442
442
  /**
443
- * Save verb metadata to storage
443
+ * Save verb metadata to storage (internal implementation)
444
444
  */
445
- async saveVerbMetadata(id, metadata) {
445
+ async saveVerbMetadata_internal(id, metadata) {
446
446
  this.verbMetadata.set(id, JSON.parse(JSON.stringify(metadata)));
447
447
  }
448
448
  /**
@@ -144,7 +144,7 @@ export declare class OPFSStorage extends BaseStorage {
144
144
  /**
145
145
  * Save verb metadata to storage
146
146
  */
147
- saveVerbMetadata(id: string, metadata: any): Promise<void>;
147
+ protected saveVerbMetadata_internal(id: string, metadata: any): Promise<void>;
148
148
  /**
149
149
  * Get verb metadata from storage
150
150
  */
@@ -152,7 +152,7 @@ export declare class OPFSStorage extends BaseStorage {
152
152
  /**
153
153
  * Save noun metadata to storage
154
154
  */
155
- saveNounMetadata(id: string, metadata: any): Promise<void>;
155
+ protected saveNounMetadata_internal(id: string, metadata: any): Promise<void>;
156
156
  /**
157
157
  * Get noun metadata from storage
158
158
  */
@@ -540,7 +540,7 @@ export class OPFSStorage extends BaseStorage {
540
540
  /**
541
541
  * Save verb metadata to storage
542
542
  */
543
- async saveVerbMetadata(id, metadata) {
543
+ async saveVerbMetadata_internal(id, metadata) {
544
544
  await this.ensureInitialized();
545
545
  const fileName = `${id}.json`;
546
546
  const fileHandle = await this.verbMetadataDir.getFileHandle(fileName, { create: true });
@@ -570,7 +570,7 @@ export class OPFSStorage extends BaseStorage {
570
570
  /**
571
571
  * Save noun metadata to storage
572
572
  */
573
- async saveNounMetadata(id, metadata) {
573
+ async saveNounMetadata_internal(id, metadata) {
574
574
  await this.ensureInitialized();
575
575
  const fileName = `${id}.json`;
576
576
  const fileHandle = await this.nounMetadataDir.getFileHandle(fileName, { create: true });
@@ -328,7 +328,7 @@ export declare class S3CompatibleStorage extends BaseStorage {
328
328
  /**
329
329
  * Save verb metadata to storage
330
330
  */
331
- saveVerbMetadata(id: string, metadata: any): Promise<void>;
331
+ protected saveVerbMetadata_internal(id: string, metadata: any): Promise<void>;
332
332
  /**
333
333
  * Get verb metadata from storage
334
334
  */
@@ -336,7 +336,7 @@ export declare class S3CompatibleStorage extends BaseStorage {
336
336
  /**
337
337
  * Save noun metadata to storage
338
338
  */
339
- saveNounMetadata(id: string, metadata: any): Promise<void>;
339
+ protected saveNounMetadata_internal(id: string, metadata: any): Promise<void>;
340
340
  /**
341
341
  * Get multiple metadata objects in batches (CRITICAL: Prevents socket exhaustion)
342
342
  * This is the solution to the metadata reading socket exhaustion during initialization
@@ -1450,7 +1450,7 @@ export class S3CompatibleStorage extends BaseStorage {
1450
1450
  /**
1451
1451
  * Save verb metadata to storage
1452
1452
  */
1453
- async saveVerbMetadata(id, metadata) {
1453
+ async saveVerbMetadata_internal(id, metadata) {
1454
1454
  await this.ensureInitialized();
1455
1455
  try {
1456
1456
  // Import the PutObjectCommand only when needed
@@ -1523,7 +1523,7 @@ export class S3CompatibleStorage extends BaseStorage {
1523
1523
  /**
1524
1524
  * Save noun metadata to storage
1525
1525
  */
1526
- async saveNounMetadata(id, metadata) {
1526
+ async saveNounMetadata_internal(id, metadata) {
1527
1527
  await this.ensureInitialized();
1528
1528
  try {
1529
1529
  // Import the PutObjectCommand only when needed
@@ -172,7 +172,12 @@ export declare abstract class BaseStorage extends BaseStorageAdapter {
172
172
  * Save noun metadata to storage
173
173
  * This method should be implemented by each specific adapter
174
174
  */
175
- abstract saveNounMetadata(id: string, metadata: any): Promise<void>;
175
+ saveNounMetadata(id: string, metadata: any): Promise<void>;
176
+ /**
177
+ * Internal method for saving noun metadata
178
+ * This method should be implemented by each specific adapter
179
+ */
180
+ protected abstract saveNounMetadata_internal(id: string, metadata: any): Promise<void>;
176
181
  /**
177
182
  * Get noun metadata from storage
178
183
  * This method should be implemented by each specific adapter
@@ -182,7 +187,12 @@ export declare abstract class BaseStorage extends BaseStorageAdapter {
182
187
  * Save verb metadata to storage
183
188
  * This method should be implemented by each specific adapter
184
189
  */
185
- abstract saveVerbMetadata(id: string, metadata: any): Promise<void>;
190
+ saveVerbMetadata(id: string, metadata: any): Promise<void>;
191
+ /**
192
+ * Internal method for saving verb metadata
193
+ * This method should be implemented by each specific adapter
194
+ */
195
+ protected abstract saveVerbMetadata_internal(id: string, metadata: any): Promise<void>;
186
196
  /**
187
197
  * Get verb metadata from storage
188
198
  * This method should be implemented by each specific adapter
@@ -3,6 +3,7 @@
3
3
  * Provides common functionality for all storage adapters
4
4
  */
5
5
  import { BaseStorageAdapter } from './adapters/baseStorageAdapter.js';
6
+ import { validateNounType, validateVerbType } from '../utils/typeValidation.js';
6
7
  // Common directory/prefix names
7
8
  // Option A: Entity-Based Directory Structure
8
9
  export const ENTITIES_DIR = 'entities';
@@ -71,6 +72,11 @@ export class BaseStorage extends BaseStorageAdapter {
71
72
  */
72
73
  async saveNoun(noun) {
73
74
  await this.ensureInitialized();
75
+ // Validate noun type before saving - storage boundary protection
76
+ const metadata = await this.getNounMetadata(noun.id);
77
+ if (metadata?.noun) {
78
+ validateNounType(metadata.noun);
79
+ }
74
80
  return this.saveNoun_internal(noun);
75
81
  }
76
82
  /**
@@ -101,6 +107,10 @@ export class BaseStorage extends BaseStorageAdapter {
101
107
  */
102
108
  async saveVerb(verb) {
103
109
  await this.ensureInitialized();
110
+ // Validate verb type before saving - storage boundary protection
111
+ if (verb.verb) {
112
+ validateVerbType(verb.verb);
113
+ }
104
114
  // Extract the lightweight HNSWVerb data
105
115
  const hnswVerb = {
106
116
  id: verb.id,
@@ -488,6 +498,28 @@ export class BaseStorage extends BaseStorageAdapter {
488
498
  await this.ensureInitialized();
489
499
  return this.deleteVerb_internal(id);
490
500
  }
501
+ /**
502
+ * Save noun metadata to storage
503
+ * This method should be implemented by each specific adapter
504
+ */
505
+ async saveNounMetadata(id, metadata) {
506
+ // Validate noun type in metadata - storage boundary protection
507
+ if (metadata?.noun) {
508
+ validateNounType(metadata.noun);
509
+ }
510
+ return this.saveNounMetadata_internal(id, metadata);
511
+ }
512
+ /**
513
+ * Save verb metadata to storage
514
+ * This method should be implemented by each specific adapter
515
+ */
516
+ async saveVerbMetadata(id, metadata) {
517
+ // Validate verb type in metadata - storage boundary protection
518
+ if (metadata?.verb) {
519
+ validateVerbType(metadata.verb);
520
+ }
521
+ return this.saveVerbMetadata_internal(id, metadata);
522
+ }
491
523
  /**
492
524
  * Helper method to convert a Map to a plain object for serialization
493
525
  */
@@ -18,14 +18,11 @@ export interface BrainyDataInterface<T = unknown> {
18
18
  /**
19
19
  * Add a noun (entity with vector and metadata) to the database
20
20
  * @param data Text string or vector representation (will auto-embed strings)
21
+ * @param nounType Required noun type (one of 31 types)
21
22
  * @param metadata Optional metadata to associate with the noun
22
- * @param options Optional configuration including custom ID
23
23
  * @returns The ID of the added noun
24
24
  */
25
- addNoun(data: string | Vector, metadata?: T, options?: {
26
- id?: string;
27
- [key: string]: any;
28
- }): Promise<string>;
25
+ addNoun(data: string | Vector, nounType: string, metadata?: T): Promise<string>;
29
26
  /**
30
27
  * Search for text in the database
31
28
  * @param text The text to search for