Initial commit: Brainy - Multi-Dimensional AI Database

Open source vector database with HNSW indexing, graph relationships,
and metadata facets. Features CLI with professional augmentation registry
integration for discovering extensions and capabilities.
This commit is contained in:
David Snelling 2025-08-18 17:35:06 -07:00
commit f8c45f2d8d
448 changed files with 103294 additions and 0 deletions

118
dist/examples/basicUsage.js vendored Normal file
View file

@ -0,0 +1,118 @@
/**
* Basic usage example for the Soulcraft Brainy database
*/
import { BrainyData } from '../brainyData.js';
// Example data - word embeddings
const wordEmbeddings = {
cat: [0.2, 0.3, 0.4, 0.1],
dog: [0.3, 0.2, 0.4, 0.2],
fish: [0.1, 0.1, 0.8, 0.2],
bird: [0.1, 0.4, 0.2, 0.5],
tiger: [0.3, 0.4, 0.3, 0.1],
lion: [0.4, 0.3, 0.2, 0.1],
shark: [0.2, 0.1, 0.7, 0.3],
eagle: [0.2, 0.5, 0.1, 0.4]
};
// Example metadata
const metadata = {
cat: { type: 'mammal', domesticated: true },
dog: { type: 'mammal', domesticated: true },
fish: { type: 'fish', domesticated: false },
bird: { type: 'bird', domesticated: false },
tiger: { type: 'mammal', domesticated: false },
lion: { type: 'mammal', domesticated: false },
shark: { type: 'fish', domesticated: false },
eagle: { type: 'bird', domesticated: false }
};
/**
* Run the example
*/
async function runExample() {
console.log('Initializing vector database...');
// Create a new vector database
const db = new BrainyData();
await db.init();
console.log('Adding vectors to the database...');
// Add vectors to the database
const ids = {};
for (const [word, vector] of Object.entries(wordEmbeddings)) {
ids[word] = await db.add(vector, metadata[word]);
console.log(`Added "${word}" with ID: ${ids[word]}`);
}
console.log('\nDatabase size:', db.size());
// Search for similar vectors
console.log('\nSearching for vectors similar to "cat"...');
const catResults = await db.search(wordEmbeddings['cat'], 3);
console.log('Results:');
for (const result of catResults) {
const word = Object.entries(ids).find(([_, id]) => id === result.id)?.[0] || 'unknown';
console.log(`- ${word} (score: ${result.score.toFixed(4)}, metadata:`, result.metadata, ')');
}
// Search for similar vectors
console.log('\nSearching for vectors similar to "fish"...');
const fishResults = await db.search(wordEmbeddings['fish'], 3);
console.log('Results:');
for (const result of fishResults) {
const word = Object.entries(ids).find(([_, id]) => id === result.id)?.[0] || 'unknown';
console.log(`- ${word} (score: ${result.score.toFixed(4)}, metadata:`, result.metadata, ')');
}
// Update metadata
console.log('\nUpdating metadata for "bird"...');
await db.updateMetadata(ids['bird'], {
...metadata['bird'],
notes: 'Can fly'
});
// Get the updated document
const birdDoc = await db.get(ids['bird']);
console.log('Updated bird document:', birdDoc);
// Delete a vector
console.log('\nDeleting "shark"...');
await db.delete(ids['shark']);
console.log('Database size after deletion:', db.size());
// Search again to verify shark is gone
console.log('\nSearching for vectors similar to "fish" after deletion...');
const fishResultsAfterDeletion = await db.search(wordEmbeddings['fish'], 3);
console.log('Results:');
for (const result of fishResultsAfterDeletion) {
const word = Object.entries(ids).find(([_, id]) => id === result.id)?.[0] || 'unknown';
console.log(`- ${word} (score: ${result.score.toFixed(4)}, metadata:`, result.metadata, ')');
}
console.log('\nExample completed successfully!');
}
// Check if we're in a browser or Node.js environment
if (typeof window !== 'undefined') {
// Browser environment
document.addEventListener('DOMContentLoaded', () => {
const button = document.createElement('button');
button.textContent = 'Run BrainyData Example';
button.addEventListener('click', async () => {
const output = document.createElement('pre');
document.body.appendChild(output);
// Redirect console.log to the output element
const originalLog = console.log;
console.log = (...args) => {
originalLog(...args);
output.textContent +=
args
.map((arg) => typeof arg === 'object' ? JSON.stringify(arg, null, 2) : arg)
.join(' ') + '\n';
};
try {
await runExample();
}
catch (error) {
console.error('Error running example:', error);
}
// Restore console.log
console.log = originalLog;
});
document.body.appendChild(button);
});
}
else {
// Node.js environment
runExample().catch((error) => {
console.error('Error running example:', error);
});
}
//# sourceMappingURL=basicUsage.js.map